From 0e76dbcf50c2b46354ddfe21dfba0fd42249d7ab Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sat, 21 Jul 2018 11:52:01 +0300 Subject: [PATCH 01/11] Added tests for issue https://github.com/javascript-obfuscator/javascript-obfuscator/issues/297 --- dist/index.cli.js | 14866 +++++++++++++++- dist/index.js | 14123 ++++++++++++++- package.json | 32 +- .../FunctionTransformer.ts | 43 +- src/node/NodeGuards.ts | 10 + test/dev/dev.ts | 8 +- .../FunctionTransformer.spec.ts | 70 +- .../identifier-names-set-object-pattern.js | 3 + .../fixtures/object-pattern-as-parameter-2.js | 1 + .../fixtures/object-pattern-as-parameter-3.js | 9 + yarn.lock | 1185 +- 11 files changed, 29712 insertions(+), 638 deletions(-) create mode 100644 test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/identifier-names-set-object-pattern.js create mode 100644 test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-3.js diff --git a/dist/index.cli.js b/dist/index.cli.js index 4d0afd8e..b44d29d2 100644 --- a/dist/index.cli.js +++ b/dist/index.cli.js @@ -21,5 +21,14869 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require("source-map-support").install(),module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=225)}([function(e,t){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("inversify")},function(e,t){e.exports=require("@babel/runtime/helpers/createClass")},function(e,t){e.exports=require("tslib")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Factory__ICalleeDataExtractor="Factory",e.Factory__IControlFlowCustomNode="Factory",e.Factory__IControlFlowReplacer="Factory",e.Factory__ICustomNode="Factory",e.Factory__ICustomNodeGroup="Factory",e.Factory__IDeadCodeInjectionCustomNode="Factory",e.Factory__IIdentifierNamesGenerator="Factory",e.Factory__IIdentifierObfuscatingReplacer="Factory",e.Factory__INodeGuard="Factory",e.Factory__INodeTransformer="Factory",e.Factory__IObfuscationResult="Factory",e.Factory__IObfuscatingReplacer="Factory",e.Factory__IPropertiesExtractor="Factory",e.Factory__TControlFlowStorage="Factory",e.IArrayUtils="IArrayUtils",e.ICalleeDataExtractor="ICalleeDataExtractor",e.ICryptUtils="ICryptUtils",e.ICustomNode="ICustomNode",e.ICustomNodeGroup="ICustomNodeGroup",e.IControlFlowReplacer="IControlFlowReplacer",e.IEscapeSequenceEncoder="IEscapeSequenceEncoder",e.IIdentifierNamesGenerator="IIdentifierNamesGenerator",e.IIdentifierObfuscatingReplacer="IIdentifierObfuscatingReplacer",e.IJavaScriptObfuscator="IJavaScriptObfuscator",e.ILogger="ILogger",e.INodeGuard="INodeGuard",e.INodeTransformer="INodeTransformer",e.IObfuscationEventEmitter="IObfuscationEventEmitter",e.IObfuscationResult="IObfuscationResult",e.IOptions="IOptions",e.IOptionsNormalizer="IOptionsNormalizer",e.IObfuscatingReplacer="IObfuscatingReplacer",e.IPropertiesExtractor="IPropertiesExtractor",e.IRandomGenerator="IRandomGenerator",e.ISourceCode="ISourceCode",e.ISourceMapCorrector="ISourceMapCorrector",e.IStackTraceAnalyzer="IStackTraceAnalyzer",e.ITransformersRunner="ITransformersRunner",e.Newable__ICustomNode="Newable",e.Newable__TControlFlowStorage="Newable",e.TCustomNodeGroupStorage="TCustomNodeGroupStorage",e.TInputOptions="TInputOptions",e.TStringArrayStorage="TStringArrayStorage"}(t.ServiceIdentifiers||(t.ServiceIdentifiers={}))},function(e,t){e.exports=require("@babel/runtime/helpers/inherits")},function(e,t){e.exports=require("@babel/runtime/helpers/getPrototypeOf")},function(e,t){e.exports=require("@babel/runtime/helpers/possibleConstructorReturn")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(23),s=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"isArrayPatternNode",value:function(e){return e.type===i.NodeType.ArrayPattern}},{key:"isArrowFunctionExpressionNode",value:function(e){return e.type===i.NodeType.ArrowFunctionExpression}},{key:"isAssignmentExpressionNode",value:function(e){return e.type===i.NodeType.AssignmentExpression}},{key:"isAssignmentPatternNode",value:function(e){return e.type===i.NodeType.AssignmentPattern}},{key:"isAwaitExpressionNode",value:function(e){return e.type===i.NodeType.AwaitExpression}},{key:"isBlockStatementNode",value:function(e){return e.type===i.NodeType.BlockStatement}},{key:"isBreakStatementNode",value:function(e){return e.type===i.NodeType.BreakStatement}},{key:"isCallExpressionNode",value:function(e){return e.type===i.NodeType.CallExpression}},{key:"isCatchClauseNode",value:function(e){return e.type===i.NodeType.CatchClause}},{key:"isClassDeclarationNode",value:function(e){return e.type===i.NodeType.ClassDeclaration}},{key:"isContinueStatementNode",value:function(e){return e.type===i.NodeType.ContinueStatement}},{key:"isExportNamedDeclarationNode",value:function(e){return e.type===i.NodeType.ExportNamedDeclaration}},{key:"isExpressionStatementNode",value:function(e){return e.type===i.NodeType.ExpressionStatement}},{key:"isFunctionDeclarationNode",value:function(e){return e.type===i.NodeType.FunctionDeclaration}},{key:"isFunctionExpressionNode",value:function(e){return e.type===i.NodeType.FunctionExpression}},{key:"isIdentifierNode",value:function(e){return e.type===i.NodeType.Identifier}},{key:"isIfStatementNode",value:function(e){return e.type===i.NodeType.IfStatement}},{key:"isImportDeclarationNode",value:function(e){return e.type===i.NodeType.ImportDeclaration}},{key:"isImportDefaultSpecifierNode",value:function(e){return e.type===i.NodeType.ImportDefaultSpecifier}},{key:"isImportNamespaceSpecifierNode",value:function(e){return e.type===i.NodeType.ImportNamespaceSpecifier}},{key:"isImportSpecifierNode",value:function(e){return e.type===i.NodeType.ImportSpecifier}},{key:"isLabelIdentifierNode",value:function(t,r){var n=e.isLabeledStatementNode(r)&&r.label===t,o=e.isContinueStatementNode(r)&&r.label===t,a=e.isBreakStatementNode(r)&&r.label===t;return n||o||a}},{key:"isLabeledStatementNode",value:function(e){return e.type===i.NodeType.LabeledStatement}},{key:"isLiteralNode",value:function(e){return e.type===i.NodeType.Literal}},{key:"isMemberExpressionNode",value:function(e){return e.type===i.NodeType.MemberExpression}},{key:"isMethodDefinitionNode",value:function(e){return e.type===i.NodeType.MethodDefinition}},{key:"isNode",value:function(e){return e&&void 0!==!e.type}},{key:"isNodeHasBlockScope",value:function(t,r){return e.isProgramNode(t)||e.isBlockStatementNode(t)&&e.nodesWithBlockScope.includes(r.type)}},{key:"isNodeHasScope",value:function(t){return e.isProgramNode(t)||e.isBlockStatementNode(t)||e.isSwitchCaseNode(t)}},{key:"isNodeWithComments",value:function(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}},{key:"isObjectPatternNode",value:function(e){return e.type===i.NodeType.ObjectPattern}},{key:"isObjectExpressionNode",value:function(e){return e.type===i.NodeType.ObjectExpression}},{key:"isProgramNode",value:function(e){return e.type===i.NodeType.Program}},{key:"isPropertyNode",value:function(e){return e.type===i.NodeType.Property}},{key:"isReplaceableIdentifierNode",value:function(t,r){if(!e.isIdentifierNode(t))return!1;var n=e.isPropertyNode(r)&&!r.computed&&r.key===t,o=e.isMemberExpressionNode(r)&&!r.computed&&r.property===t,a=e.isMethodDefinitionNode(r)&&!r.computed,i=e.isLabelIdentifierNode(t,r);return!(n||o||a||i)}},{key:"isRestElementNode",value:function(e){return e.type===i.NodeType.RestElement}},{key:"isReturnStatementNode",value:function(e){return e.type===i.NodeType.ReturnStatement}},{key:"isSuperNode",value:function(e){return e.type===i.NodeType.Super}},{key:"isSwitchCaseNode",value:function(e){return e.type===i.NodeType.SwitchCase}},{key:"isTaggedTemplateExpressionNode",value:function(e){return e.type===i.NodeType.TaggedTemplateExpression}},{key:"isTemplateLiteralNode",value:function(e){return e.type===i.NodeType.TemplateLiteral}},{key:"isUnaryExpressionNode",value:function(e){return e.type===i.NodeType.UnaryExpression}},{key:"isUseStrictOperator",value:function(e){return e.type===i.NodeType.ExpressionStatement&&"use strict"===e.directive}},{key:"isVariableDeclarationNode",value:function(e){return e.type===i.NodeType.VariableDeclaration}},{key:"isVariableDeclaratorNode",value:function(e){return e.type===i.NodeType.VariableDeclarator}},{key:"isWhileStatementNode",value:function(e){return e.type===i.NodeType.WhileStatement}}]),e}();s.nodesWithBlockScope=[i.NodeType.ArrowFunctionExpression,i.NodeType.FunctionDeclaration,i.NodeType.FunctionExpression,i.NodeType.MethodDefinition],t.NodeGuards=s},function(e,t,r){"use strict";var n=r(0),o=n(r(64)),a=n(r(35)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c=r(4),d=c.__importStar(r(47)),u=c.__importStar(r(63)),l=c.__importStar(r(18)),f=r(9),p=r(19),m=function(){function e(){(0,i.default)(this,e)}return(0,s.default)(e,null,[{key:"addXVerbatimPropertyTo",value:function(e){return e["x-verbatim-property"]={content:e.raw,precedence:d.Precedence.Primary},e}},{key:"clone",value:function(t){return e.parentizeAst(e.cloneRecursive(t))}},{key:"convertCodeToStructure",value:function(t){var r=u.parse(t,{sourceType:"script"});return l.replace(r,{enter:function(t,r){return e.parentizeNode(t,r),f.NodeGuards.isLiteralNode(t)&&e.addXVerbatimPropertyTo(t),p.NodeMetadata.set(t,{ignoredNode:!1}),t}}),r.body}},{key:"convertStructureToCode",value:function(e){return e.reduce(function(e,t){return e+d.generate(t,{sourceMapWithCode:!0}).code},"")}},{key:"getBlockScopeOfNode",value:function(t){return e.getBlockScopesOfNodeRecursive(t,1)[0]}},{key:"getBlockScopesOfNode",value:function(t){return e.getBlockScopesOfNodeRecursive(t)}},{key:"getNextSiblingStatement",value:function(t){return e.getSiblingStatementByOffset(t,1)}},{key:"getPreviousSiblingStatement",value:function(t){return e.getSiblingStatementByOffset(t,-1)}},{key:"getRootStatementOfNode",value:function(t){if(f.NodeGuards.isProgramNode(t))throw new Error("Unable to find root statement for `Program` node");var r=t.parentNode;if(!r)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isNodeHasScope(r)?t:e.getRootStatementOfNode(r)}},{key:"getScopeOfNode",value:function(t){var r=t.parentNode;if(!r)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isNodeHasScope(r)?r:e.getScopeOfNode(r)}},{key:"getUnaryExpressionArgumentNode",value:function(t){return f.NodeGuards.isUnaryExpressionNode(t.argument)?e.getUnaryExpressionArgumentNode(t.argument):t.argument}},{key:"parentizeAst",value:function(t){return l.replace(t,{enter:e.parentizeNode}),t}},{key:"parentizeNode",value:function(e,t){return e.parentNode=t||e,e}},{key:"cloneRecursive",value:function(t){if(null===t)return t;var r={};return(0,a.default)(t).forEach(function(n){if("parentNode"!==n){var a,i=t[n];a=null===i||i instanceof RegExp?i:Array.isArray(i)?i.map(e.cloneRecursive):"object"===(0,o.default)(i)?e.cloneRecursive(i):i,r[n]=a}}),r}},{key:"getBlockScopesOfNodeRecursive",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(n.length>=r)return n;var a=t.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isBlockStatementNode(t)&&a===t&&n.push(t),(f.NodeGuards.isProgramNode(t)||o&&f.NodeGuards.isNodeHasBlockScope(t,a))&&n.push(t),t!==a?e.getBlockScopesOfNodeRecursive(a,r,n,++o):n}},{key:"getSiblingStatementByOffset",value:function(t,r){var n=e.getScopeOfNode(t),o=f.NodeGuards.isSwitchCaseNode(n)?n.consequent:n.body;return o[o.indexOf(t)+r]||null}}]),e}();t.NodeUtils=m},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(186)),i=n(r(185)),s=n(r(184)),c=n(r(183)),d=n(r(182)),u=n(r(181)),l=n(r(31)),f=n(r(35));Object.defineProperty(t,"__esModule",{value:!0});var p={configurable:!0,enumerable:!0},m="_initialized",g="_initializablePropertiesSet",N="_wrappedMethodsSet",v="constructor";function y(e,t,r){(0,u.default)(e,r)||(0,d.default)(e,t,r)}t.initializable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initialize",t=(0,f.default)(this)[0];return function(r,n){var u=r[e];if(!u||"function"!=typeof u)throw new Error("`".concat(e,"` method with initialization logic not ")+"found. `@".concat(t,"` decorator requires `").concat(e,"` method"));return y(m,!1,r),y(g,new l.default,r),y(N,new l.default,r),function(e,t){var r=(0,c.default)(e),n=[t,v];r.forEach(function(r){var c=(0,s.default)(g,e),d=(0,s.default)(N,e),u=n.includes(r)||c.has(r)||d.has(r);if(!u){var l=e[r];if("function"==typeof l){var f=(0,i.default)(e,r)||p,v=f.value;(0,a.default)(e,r,(0,o.default)({},f,{value:function(){if(!(0,s.default)(m,this))throw new Error("Class should be initialized with `".concat(t,"()` method"));return v.apply(this,arguments)}})),d.add(r)}}})}(r,e),function(e,t,r){var n=(0,i.default)(e,t)||p,s=n.value;(0,a.default)(e,t,(0,o.default)({},n,{value:function(){(0,d.default)(m,!0,this);var e=s.apply(this,arguments);return this[r],e}}))}(r,e,n),function(e,t){(0,s.default)(g,e).add(t);var r="_".concat(t.toString()),n=(0,i.default)(e,r)||p;return(0,a.default)(e,t,(0,o.default)({},n,{get:function(){if(void 0===this[r])throw new Error("Property `".concat(t.toString(),"` is not initialized! Initialize it first!"));return this[r]},set:function(e){this[r]=e}})),n}(r,n)}}},function(e,t){e.exports=require("@babel/runtime/core-js/object/assign")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Finalizing="Finalizing"}(t.TransformationStage||(t.TransformationStage={}))},function(e,t,r){"use strict";var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(2),i=r(5),s=function e(t,r){(0,n.default)(this,e),this.randomGenerator=t,this.options=r};s=o.__decorate([a.injectable(),o.__param(0,a.inject(i.ServiceIdentifiers.IRandomGenerator)),o.__param(1,a.inject(i.ServiceIdentifiers.IOptions)),o.__metadata("design:paramtypes",[Object,Object])],s),t.AbstractNodeTransformer=s},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=r(4).__importStar(r(47)),c=r(23),d=function(){function e(){(0,a.default)(this,e)}return(0,i.default)(e,null,[{key:"programNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}},{key:"arrayExpressionNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}},{key:"assignmentExpressionNode",value:function(e,t,r){return{type:c.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"binaryExpressionNode",value:function(e,t,r){return{type:c.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"blockStatementNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}},{key:"breakStatement",value:function(e){var t={type:c.NodeType.BreakStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"callExpressionNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{type:c.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}},{key:"continueStatement",value:function(e){var t={type:c.NodeType.ContinueStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"expressionStatementNode",value:function(e){return{type:c.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}},{key:"functionDeclarationNode",value:function(t,r,n){return{type:c.NodeType.FunctionDeclaration,id:e.identifierNode(t),params:r,body:n,generator:!1,metadata:{ignoredNode:!1}}}},{key:"functionExpressionNode",value:function(e,t){return{type:c.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}},{key:"ifStatementNode",value:function(e,t,r){return(0,o.default)({type:c.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r},{metadata:{ignoredNode:!1}})}},{key:"identifierNode",value:function(e){return{type:c.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}},{key:"literalNode",value:function(e,t){return t=void 0!==t?t:"'".concat(e,"'"),{type:c.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:s.Precedence.Primary},metadata:{ignoredNode:!1}}}},{key:"logicalExpressionNode",value:function(e,t,r){return{type:c.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"memberExpressionNode",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.MemberExpression,computed:r,object:e,property:t,metadata:{ignoredNode:!1}}}},{key:"methodDefinitionNode",value:function(e,t,r,n){return{type:c.NodeType.MethodDefinition,key:e,value:t,kind:r,computed:n,static:!1,metadata:{ignoredNode:!1}}}},{key:"objectExpressionNode",value:function(e){return{type:c.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}},{key:"propertyNode",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}},{key:"returnStatementNode",value:function(e){return{type:c.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}},{key:"switchStatementNode",value:function(e,t){return{type:c.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}},{key:"switchCaseNode",value:function(e,t){return{type:c.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}},{key:"unaryExpressionNode",value:function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:c.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}},{key:"updateExpressionNode",value:function(e,t){return{type:c.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}},{key:"variableDeclarationNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"var";return{type:c.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}},{key:"variableDeclaratorNode",value:function(e,t){return{type:c.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}},{key:"whileStatementNode",value:function(e,t){return{type:c.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}]),e}();t.NodeFactory=d},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i,s=r(4),c=r(2),d=r(5),u=r(175),l=r(174),f=i=function(){function e(t,r,n){(0,o.default)(this,e),this.cachedNode=null,this.identifierNamesGenerator=t(n),this.randomGenerator=r,this.options=n}return(0,a.default)(e,[{key:"getNode",value:function(){return this.cachedNode||(this.cachedNode=this.getNodeStructure()),this.cachedNode}},{key:"getGlobalVariableTemplate",value:function(){return this.randomGenerator.getRandomGenerator().pickone(i.globalVariableTemplateFunctions)}}]),e}();f.globalVariableTemplateFunctions=[u.GlobalVariableTemplate1(),l.GlobalVariableTemplate2()],f=i=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s.__param(1,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s.__param(2,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Function,Object,Object])],f),t.AbstractCustomNode=f},function(e,t){e.exports=require("@babel/runtime/core-js/map")},function(e,t){e.exports=require("estraverse")},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(){(0,a.default)(this,e)}return(0,i.default)(e,null,[{key:"set",value:function(e,t){e.metadata=(0,o.default)(e.metadata||{},t)}},{key:"get",value:function(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}},{key:"isIgnoredNode",value:function(t){return!0===e.get(t,"ignoredNode")}},{key:"isRenamedIdentifier",value:function(t){return!0===e.get(t,"renamedIdentifier")}},{key:"isReplacedLiteral",value:function(t){return!0===e.get(t,"replacedLiteral")}}]),e}();t.NodeMetadata=s},function(e,t){e.exports=require("string-template")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BaseIdentifierObfuscatingReplacer="BaseIdentifierObfuscatingReplacer"}(t.IdentifierObfuscatingReplacer||(t.IdentifierObfuscatingReplacer={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",e.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",e.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",e.CallExpressionFunctionNode="CallExpressionFunctionNode",e.ControlFlowStorageNode="ControlFlowStorageNode",e.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",e.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",e.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",e.StringLiteralNode="StringLiteralNode"}(t.ControlFlowCustomNode||(t.ControlFlowCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ArrayExpression="ArrayExpression",e.ArrayPattern="ArrayPattern",e.ArrowFunctionExpression="ArrowFunctionExpression",e.AssignmentExpression="AssignmentExpression",e.AssignmentPattern="AssignmentPattern",e.AwaitExpression="AwaitExpression",e.BinaryExpression="BinaryExpression",e.BlockStatement="BlockStatement",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.CatchClause="CatchClause",e.ClassDeclaration="ClassDeclaration",e.ContinueStatement="ContinueStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExpressionStatement="ExpressionStatement",e.FunctionDeclaration="FunctionDeclaration",e.FunctionExpression="FunctionExpression",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.ImportNamespaceSpecifier="ImportNamespaceSpecifier",e.ImportSpecifier="ImportSpecifier",e.LabeledStatement="LabeledStatement",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.MethodDefinition="MethodDefinition",e.ObjectExpression="ObjectExpression",e.ObjectPattern="ObjectPattern",e.Program="Program",e.Property="Property",e.RestElement="RestElement",e.ReturnStatement="ReturnStatement",e.Super="Super",e.SwitchCase="SwitchCase",e.SwitchStatement="SwitchStatement",e.TaggedTemplateExpression="TaggedTemplateExpression",e.TemplateLiteral="TemplateLiteral",e.TryStatement="TryStatement",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement"}(t.NodeType||(t.NodeType={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(210)),a=n(r(17)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c=r(2),d=r(5),u=r(209),l=r(204),f=r(196),p=r(188),m=r(135),g=r(134),N=r(131),v=r(130),y=r(117),_=r(101),h=r(91),b=r(86),S=r(80),I=r(67),C=r(77),F=r(75),O=r(74),j=r(73),k=r(72),T=function(){function e(){(0,i.default)(this,e),this.container=new c.Container}return(0,s.default)(e,[{key:"get",value:function(e){return this.container.get(e)}},{key:"getNamed",value:function(e,t){return this.container.getNamed(e,t)}},{key:"load",value:function(e,t){this.container.bind(d.ServiceIdentifiers.ISourceCode).toDynamicValue(function(){return new O.SourceCode(e)}).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.TInputOptions).toDynamicValue(function(){return t}).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.ILogger).to(I.Logger).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IJavaScriptObfuscator).to(S.JavaScriptObfuscator).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.ITransformersRunner).to(k.TransformersRunner).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IObfuscationResult).to(F.ObfuscationResult).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(function(e){return function(t,r){var n=e.container.get(d.ServiceIdentifiers.IObfuscationResult);return n.initialize(t,r),n}}),this.container.bind(d.ServiceIdentifiers.ISourceMapCorrector).to(j.SourceMapCorrector).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IObfuscationEventEmitter).to(C.ObfuscationEventEmitter).inSingletonScope(),this.container.load(u.analyzersModule),this.container.load(l.controlFlowTransformersModule),this.container.load(f.convertingTransformersModule),this.container.load(p.customNodesModule),this.container.load(m.finalizingTransformersModule),this.container.load(g.generatorsModule),this.container.load(N.nodeTransformersModule),this.container.load(v.obfuscatingTransformersModule),this.container.load(y.optionsModule),this.container.load(_.preparingTransformersModule),this.container.load(h.storagesModule),this.container.load(b.utilsModule)}},{key:"unload",value:function(){this.container.unbindAll()}}],[{key:"getFactory",value:function(e){return function(t){return function(r){return t.container.getNamed(e,r)}}}},{key:"getCacheFactory",value:function(e){return function(t){var r=new a.default;return function(n){if(r.has(n))return r.get(n);var o=t.container.getNamed(e,n);return r.set(n,o),o}}}},{key:"getConstructorFactory",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n3&&void 0!==arguments[3]?arguments[3]:0,a=t.length?e.getOptimalBlockScope(t,o):r;e.prepend(a,n)}},{key:"getOptimalBlockScope",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,o=t[r];if(n<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return n>1&&o.stackTrace.length?e.getOptimalBlockScope(o.stackTrace,0,--n):o.callee}},{key:"insertAfter",value:function(t,r,n){var o=e.getScopeStatements(t).indexOf(n);e.insertAtIndex(t,r,o+1)}},{key:"insertAtIndex",value:function(t,r,n){r=e.parentizeScopeStatementsBeforeAppend(t,r),e.setScopeStatements(t,(0,o.default)(e.getScopeStatements(t).slice(0,n)).concat((0,o.default)(r),(0,o.default)(e.getScopeStatements(t).slice(n))))}},{key:"prepend",value:function(t,r){r=e.parentizeScopeStatementsBeforeAppend(t,r),e.setScopeStatements(t,(0,o.default)(r).concat((0,o.default)(e.getScopeStatements(t))))}},{key:"getScopeStatements",value:function(e){return s.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}},{key:"parentizeScopeStatementsBeforeAppend",value:function(e,t){return t.forEach(function(t){t.parentNode=e}),t}},{key:"setScopeStatements",value:function(e,t){s.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}]),e}();t.NodeAppender=c},function(e,t){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputDisableExpressionNode="ConsoleOutputDisableExpressionNode",e.DebugProtectionFunctionCallNode="DebugProtectionFunctionCallNode",e.DebugProtectionFunctionIntervalNode="DebugProtectionFunctionIntervalNode",e.DebugProtectionFunctionNode="DebugProtectionFunctionNode",e.DomainLockNode="DomainLockNode",e.NodeCallsControllerFunctionNode="NodeCallsControllerFunctionNode",e.SelfDefendingUnicodeNode="SelfDefendingUnicodeNode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArrayNode="StringArrayNode",e.StringArrayRotateFunctionNode="StringArrayRotateFunctionNode"}(t.CustomNode||(t.CustomNode={}))},function(e,t){e.exports=require("@babel/runtime/helpers/slicedToArray")},function(e,t){e.exports=require("@babel/runtime/core-js/set")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.ClassDeclarationTransformer="ClassDeclarationTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomNodesTransformer="CustomNodesTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.CatchClauseTransformer="CatchClauseTransformer",e.FunctionDeclarationTransformer="FunctionDeclarationTransformer",e.FunctionTransformer="FunctionTransformer",e.ImportDeclarationTransformer="ImportDeclarationTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationTransformer="VariableDeclarationTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"extractDomainFrom",value:function(e){return(e.indexOf("://")>-1||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0]).split(":")[0]}}]),e}();i.hexadecimalPrefix="0x",t.Utils=i},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=function(){function e(t,r,n){(0,o.default)(this,e),this.identifierNamesGenerator=t(n),this.randomGenerator=r,this.options=n}return(0,a.default)(e,[{key:"getAppendEvent",value:function(){return this.appendEvent}},{key:"getCustomNodes",value:function(){return this.customNodes}},{key:"appendCustomNodeIfExist",value:function(e,t){var r=this.customNodes.get(e);r&&t(r)}},{key:"getRandomStackTraceIndex",value:function(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}}]),e}();d=i.__decorate([s.injectable(),i.__param(0,s.inject(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i.__param(1,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i.__param(2,s.inject(c.ServiceIdentifiers.IOptions)),i.__metadata("design:paramtypes",[Function,Object,Object])],d),t.AbstractCustomNodeGroup=d},function(e,t){e.exports=require("@babel/runtime/core-js/object/keys")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0}),r(68);var i=r(5),s=r(24),c=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"obfuscate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new s.InversifyContainerFacade;r.load(e,t);var n=r.get(i.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),n}}]),e}();c.version="0.17.0",t.JavaScriptObfuscator=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base64="base64",e.Rc4="rc4"}(t.StringArrayEncoding||(t.StringArrayEncoding={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Inline="inline",e.Separate="separate"}(t.SourceMapMode||(t.SourceMapMode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.HexadecimalIdentifierNamesGenerator="hexadecimal",e.MangledIdentifierNamesGenerator="mangled"}(t.IdentifierNamesGenerator||(t.IdentifierNamesGenerator={}))},function(e,t,r){"use strict";var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(2),i=r(5),s=function e(t){(0,n.default)(this,e),this.options=t};s=o.__decorate([a.injectable(),o.__param(0,a.inject(i.ServiceIdentifiers.IOptions)),o.__metadata("design:paramtypes",[Object])],s),t.AbstractObfuscatingReplacer=s},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"toHex",value:function(e){return e.toString(16)}},{key:"isCeil",value:function(e){return e%1==0}}]),e}();t.NumberUtils=i},function(e,t){e.exports=require("@babel/runtime/helpers/get")},function(e,t,r){"use strict";var n=r(0)(r(56));Object.defineProperty(t,"__esModule",{value:!0});var o=r(39),a=r(25),i=r(38);t.NO_ADDITIONAL_NODES_PRESET=(0,n.default)({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!1,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:a.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t){e.exports=require("@babel/runtime/core-js/get-iterator")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=function(){return"\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=s=function(){function e(t,r,n){(0,a.default)(this,e),this.replacerDataByControlFlowStorageId=new o.default,this.controlFlowCustomNodeFactory=t,this.randomGenerator=r,this.options=n}return(0,i.default)(e,[{key:"insertCustomNodeToControlFlowStorage",value:function(e,t,r,n){var o=this,a=t.getStorageId(),i=s.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,a),c=i.get(r);if(this.randomGenerator.getMathRandom()1&&void 0!==arguments[1]?arguments[1]:i.randomGeneratorPool;return this.getRandomGenerator().string({length:e,pool:t})}},{key:"getSeed",value:function(){return this.seed}}]),e}();p.randomGeneratorPool="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",s.__decorate([f.initializable(),s.__metadata("design:type",Object)],p.prototype,"randomGenerator",void 0),s.__decorate([f.initializable(),s.__metadata("design:type",Number)],p.prototype,"seed",void 0),s.__decorate([c.postConstruct(),s.__metadata("design:type",Function),s.__metadata("design:paramtypes",[]),s.__metadata("design:returntype",void 0)],p.prototype,"initialize",null),p=i=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.ISourceCode)),s.__param(1,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Object,Object])],p),t.RandomGenerator=p},function(e,t,r){"use strict";var n=r(0),o=n(r(28)),a=n(r(30)),i=n(r(44)),s=n(r(17)),c=n(r(1)),d=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=function(){function e(t,r){(0,c.default)(this,e),this.randomGenerator=t,this.options=r}return(0,d.default)(e,[{key:"initialize",value:function(){this.storage=new s.default,this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage.get(e);if(!t)throw new Error("No value found in map storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=!0,r=!1,n=void 0;try{for(var o,s=(0,i.default)(this.storage);!(t=(o=s.next()).done);t=!0){var c=(0,a.default)(o.value,2),d=c[0];if(e===c[1])return d}}catch(e){r=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(r)throw n}}return null}},{key:"getLength",value:function(){return this.storage.size}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"has",value:function(e){return this.storage.has(e)}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=new s.default((0,o.default)(this.storage).concat((0,o.default)(e.getStorage()))),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){this.storage.set(e,t)}}]),e}();u.__decorate([p.initializable(),u.__metadata("design:type",String)],m.prototype,"storageId",void 0),u.__decorate([p.initializable(),u.__metadata("design:type",s.default)],m.prototype,"storage",void 0),u.__decorate([l.postConstruct(),u.__metadata("design:type",Function),u.__metadata("design:paramtypes",[]),u.__metadata("design:returntype",void 0)],m.prototype,"initialize",null),m=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],m),t.MapStorage=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlackListNodeGuard="BlackListNodeGuard",e.ConditionalCommentNodeGuard="ConditionalCommentNodeGuard"}(t.ObfuscatingGuard||(t.ObfuscatingGuard={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BooleanLiteralObfuscatingReplacer="BooleanLiteralObfuscatingReplacer",e.NumberLiteralObfuscatingReplacer="NumberLiteralObfuscatingReplacer",e.StringLiteralObfuscatingReplacer="StringLiteralObfuscatingReplacer"}(t.LiteralObfuscatingReplacer||(t.LiteralObfuscatingReplacer={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=function(){function e(t,r){(0,o.default)(this,e),this.randomGenerator=t,this.options=r}return(0,a.default)(e,[{key:"isValidIdentifierName",value:function(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(function(t){return null!==new RegExp(t,"g").exec(e)})}}]),e}();d=i.__decorate([s.injectable(),i.__param(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i.__param(1,s.inject(c.ServiceIdentifiers.IOptions)),i.__metadata("design:paramtypes",[Object,Object])],d),t.AbstractIdentifierNamesGenerator=d},function(e,t){e.exports=require("@babel/runtime/core-js/object/freeze")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputCustomNodeGroup="ConsoleOutputCustomNodeGroup",e.DebugProtectionCustomNodeGroup="DebugProtectionCustomNodeGroup",e.DomainLockCustomNodeGroup="DomainLockCustomNodeGroup",e.SelfDefendingCustomNodeGroup="SelfDefendingCustomNodeGroup",e.StringArrayCustomNodeGroup="StringArrayCustomNodeGroup"}(t.CustomNodeGroup||(t.CustomNodeGroup={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(17)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c,d=r(4),u=r(2),l=r(5),f=r(27),p=r(15),m=r(9),g=r(10),N=c=function(){function e(t,r){(0,i.default)(this,e),this.cachedHostScopesMap=new a.default,this.cachedHostStatementsMap=new a.default,this.randomGenerator=t,this.options=r}return(0,s.default)(e,[{key:"extractPropertiesToExpressionStatements",value:function(e,t){for(var r=e.length,n=[],o=[],a=0;a [options]").version("0.17.0","-v, --version").option("-o, --output ","Output path for obfuscated code").option("--compact ","Disable one line output code compacting",m.BooleanSanitizer).option("--config ","Name of js / json config file").option("--control-flow-flattening ","Enables control flow flattening",m.BooleanSanitizer).option("--control-flow-flattening-threshold ","The probability that the control flow flattening transformation will be applied to the node",parseFloat).option("--dead-code-injection ","Enables dead code injection",m.BooleanSanitizer).option("--dead-code-injection-threshold ","The probability that the dead code injection transformation will be applied to the node",parseFloat).option("--debug-protection ","Disable browser Debug panel (can cause DevTools enabled browser freeze)",m.BooleanSanitizer).option("--debug-protection-interval ","Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)",m.BooleanSanitizer).option("--disable-console-output ","Allow console.log, console.info, console.error and console.warn messages output into browser console",m.BooleanSanitizer).option("--domain-lock (comma separated, without whitespaces)","Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)",p.ArraySanitizer).option("--exclude (comma separated, without whitespaces)","A filename or glob which indicates files to exclude from obfuscation",p.ArraySanitizer).option("--identifier-names-generator ","Sets identifier names generator. Values: hexadecimal, mangled. Default: hexadecimal",g.IdentifierNamesGeneratorSanitizer).option("--identifiers-prefix ","Sets prefix for all global identifiers.").option("--log ","Enables logging of the information to the console",m.BooleanSanitizer).option("--reserved-names (comma separated, without whitespaces)","Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)",p.ArraySanitizer).option("--rename-globals ","Allows to enable obfuscation of global variable and function names with declaration.",m.BooleanSanitizer).option("--rotate-string-array ","Disable rotation of unicode array values during obfuscation",m.BooleanSanitizer).option("--seed ","Sets seed for random generator. This is useful for creating repeatable results.",parseFloat).option("--self-defending ","Disables self-defending for obfuscated code",m.BooleanSanitizer).option("--source-map ","Enables source map generation",m.BooleanSanitizer).option("--source-map-base-url ","Sets base url to the source map import url when `--source-map-mode=separate`").option("--source-map-file-name ","Sets file name for output source map when `--source-map-mode=separate`").option("--source-map-mode ","Specify source map output mode. Values: inline, separate. Default: separate",v.SourceMapModeSanitizer).option("--string-array ","Disables gathering of all literal strings into an array and replacing every literal string with an array call",m.BooleanSanitizer).option("--string-array-encoding ","Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed. Values: true, false, base64, rc4. Default: false",y.StringArrayEncodingSanitizer).option("--string-array-threshold ","The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)",parseFloat).option("--target ","Allows to set target environment for obfuscated code. Values: browser, browser-no-eval, node. Default: browser",N.ObfuscationTargetSanitizer).option("--transform-object-keys ","Enables transformation of object keys",m.BooleanSanitizer).option("--unicode-escape-sequence ","Allows to enable/disable string conversion to unicode escape sequence",m.BooleanSanitizer).parse(this.rawArguments)}},{key:"configureHelp",value:function(){this.commands.on("--help",function(){console.log(" Examples:\n"),console.log(" %> javascript-obfuscator input_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false"),console.log(" %> javascript-obfuscator input_directory_name --compact true --self-defending false"),console.log("")})}},{key:"processSourceCodeData",value:function(e){var t=this,r=this.inputCLIOptions.output?u.normalize(this.inputCLIOptions.output):"";if(Array.isArray(e))e.forEach(function(e,n){var o=e.filePath,a=e.content,i=r?u.join(r,o):_.CLIUtils.getOutputCodePath(o);t.processSourceCode(a,i,n)});else{var n=r||_.CLIUtils.getOutputCodePath(this.inputPath);this.processSourceCode(e,n,null)}}},{key:"processSourceCode",value:function(t,r,n){var o=this.buildOptions();if(null!==n){var i=this.inputCLIOptions.identifiersPrefix||e.baseIdentifiersPrefix,s="".concat(i).concat(n);o=(0,a.default)({},o,{identifiersPrefix:s})}o.sourceMap?e.processSourceCodeWithSourceMap(t,r,o):e.processSourceCodeWithoutSourceMap(t,r,o)}}],[{key:"filterOptions",value:function(e){var t={};return(0,o.default)(e).forEach(function(r){void 0!==e[r]&&(t[r]=e[r])}),t}},{key:"processSourceCodeWithoutSourceMap",value:function(e,t,r){var n=h.JavaScriptObfuscator.obfuscate(e,r).getObfuscatedCode();_.CLIUtils.writeFile(t,n)}},{key:"processSourceCodeWithSourceMap",value:function(e,t,r){var n=_.CLIUtils.getOutputSourceMapPath(t,r.sourceMapFileName||"");r=(0,a.default)({},r,{sourceMapFileName:u.basename(n)});var o=h.JavaScriptObfuscator.obfuscate(e,r);_.CLIUtils.writeFile(t,o.getObfuscatedCode()),"separate"===r.sourceMapMode&&o.getSourceMap()&&_.CLIUtils.writeFile(n,o.getSourceMap())}}]),e}();S.encoding="utf8",S.obfuscatedFilePrefix="-obfuscated",S.baseIdentifiersPrefix="a",c.__decorate([l.initializable(),c.__metadata("design:type",Object)],S.prototype,"commands",void 0),c.__decorate([l.initializable(),c.__metadata("design:type",Object)],S.prototype,"inputCLIOptions",void 0),c.__decorate([l.initializable(),c.__metadata("design:type",String)],S.prototype,"inputPath",void 0),t.JavaScriptObfuscatorCLI=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Enter="enter",e.Leave="leave"}(t.VisitorDirection||(t.VisitorDirection={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=i.__importStar(r(18)),u=r(71),l=r(9),f=r(19),p=function(){function e(t){(0,o.default)(this,e),this.nodeTransformerFactory=t}return(0,a.default)(e,[{key:"transform",value:function(e,t,r){if(!t.length)return e;for(var n,o=[],a=[],i=t.length,s=0;s"),c="...".concat(o.substring(a,i).replace(/^\s+/,""),"...");throw new Error("Line ".concat(n.line,": ").concat(r,"\n").concat(s," ").concat(c))}}]),e}();u.colorError=d.default.red,u.nearestSymbolsCount=15,u.sourceTypes=["script","module"],t.EspreeFacade=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.TransformationStage="Transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=c.__importStar(r(47)),f=r(79),p=r(32),m=r(13),g=r(78),N=r(9),v=s=function(){function e(t,r,n,o,i){(0,a.default)(this,e),this.transformersRunner=t,this.sourceMapCorrector=r,this.randomGenerator=n,this.logger=o,this.options=i}return(0,i.default)(e,[{key:"obfuscate",value:function(e){var t=Date.now();this.logger.info(f.LoggingMessage.Version,"0.17.0"),this.logger.info(f.LoggingMessage.ObfuscationStarted),this.logger.info(f.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getSeed());var r=this.parseCode(e),n=this.transformAstTree(r),o=this.generateCode(e,n),a=(Date.now()-t)/1e3;return this.logger.success(f.LoggingMessage.ObfuscationCompleted,a),this.getObfuscationResult(o)}},{key:"parseCode",value:function(e){return g.EspreeFacade.parse(e,s.espreeParseOptions)}},{key:"transformAstTree",value:function(e){return!N.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runTransformationStage(e,m.TransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runTransformationStage(e,m.TransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runTransformationStage(e,m.TransformationStage.ControlFlowFlattening)),e=this.runTransformationStage(e,m.TransformationStage.Converting),e=this.runTransformationStage(e,m.TransformationStage.Obfuscating),e=this.runTransformationStage(e,m.TransformationStage.Finalizing)):(this.logger.warn(f.LoggingMessage.EmptySourceCode),e)}},{key:"generateCode",value:function(e,t){var r=(0,o.default)({},s.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);var n=l.generate(t,(0,o.default)({},r,{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}},{key:"getObfuscationResult",value:function(e){return this.sourceMapCorrector.correct(e.code,e.map)}},{key:"runTransformationStage",value:function(e,t){return this.logger.info(f.LoggingMessage.TransformationStage,t),this.transformersRunner.transform(e,s.transformersList,t)}}]),e}();v.espreeParseOptions={attachComment:!0,comment:!0,ecmaFeatures:{experimentalObjectRestSpread:!0},ecmaVersion:9,loc:!0,range:!0},v.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},v.transformersList=[p.NodeTransformer.BlockStatementControlFlowTransformer,p.NodeTransformer.ClassDeclarationTransformer,p.NodeTransformer.CommentsTransformer,p.NodeTransformer.CustomNodesTransformer,p.NodeTransformer.DeadCodeInjectionTransformer,p.NodeTransformer.EvalCallExpressionTransformer,p.NodeTransformer.FunctionControlFlowTransformer,p.NodeTransformer.CatchClauseTransformer,p.NodeTransformer.FunctionDeclarationTransformer,p.NodeTransformer.FunctionTransformer,p.NodeTransformer.ImportDeclarationTransformer,p.NodeTransformer.LabeledStatementTransformer,p.NodeTransformer.LiteralTransformer,p.NodeTransformer.MemberExpressionTransformer,p.NodeTransformer.MetadataTransformer,p.NodeTransformer.MethodDefinitionTransformer,p.NodeTransformer.ObfuscatingGuardsTransformer,p.NodeTransformer.ObjectExpressionKeysTransformer,p.NodeTransformer.ObjectExpressionTransformer,p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.TemplateLiteralTransformer,p.NodeTransformer.VariableDeclarationTransformer],v=s=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.ITransformersRunner)),c.__param(1,d.inject(u.ServiceIdentifiers.ISourceMapCorrector)),c.__param(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c.__param(3,d.inject(u.ServiceIdentifiers.ILogger)),c.__param(4,d.inject(u.ServiceIdentifiers.IOptions)),c.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],v),t.JavaScriptObfuscator=v},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=r(4),c=r(2),d=function(){function e(){(0,a.default)(this,e),this.stringsCache=new o.default}return(0,i.default)(e,[{key:"encode",value:function(e,t){var r="".concat(e,"-").concat(String(t));if(this.stringsCache.has(r))return this.stringsCache.get(r);var n,o,a=new RegExp("[\\s\\S]","g"),i=new RegExp("['\"\\\\\\s]"),s=new RegExp("[\\x00-\\x7F]"),c=e.replace(a,function(e){return t||i.exec(e)?(s.exec(e)?(n="\\x",o="00"):(n="\\u",o="0000"),"".concat(n).concat((o+e.charCodeAt(0).toString(16)).slice(-o.length))):e});return this.stringsCache.set(r,c),c}}]),e}();d=s.__decorate([c.injectable()],d),t.EscapeSequenceEncoder=d},function(e,t){e.exports=require("chance")},function(e,t){e.exports=require("md5")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=r(51),u=r(33),l=function(){function e(t){(0,o.default)(this,e),this.randomGenerator=t}return(0,a.default)(e,[{key:"btoa",value:function(e){var t="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode(parseInt("".concat(u.Utils.hexadecimalPrefix).concat(t)))});for(var r,n,o=0,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.charAt(0|o)||(a="=",o%1);t+=a.charAt(63&r>>8-o%1*8)){if((n=e.charCodeAt(o+=.75))>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");r=r<<8|n}return t}},{key:"hideString",value:function(e,t){var r=this,n=this.randomGenerator.getRandomGenerator().string({length:t,pool:d.RandomGenerator.randomGeneratorPool}).replace(new RegExp("[".concat(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"]"),"g"),""),o=n.split("");return this.randomGenerator.getRandomGenerator().shuffle(o),[function(e,t){for(var n=-1,o=-1,a="";n=0?t:null}},{key:"getLength",value:function(){return this.storageLength}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=(0,o.default)(this.storage).concat((0,o.default)(e.getStorage())),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}}]),e}();s.__decorate([u.initializable(),s.__metadata("design:type",Array)],l.prototype,"storage",void 0),s.__decorate([u.initializable(),s.__metadata("design:type",String)],l.prototype,"storageId",void 0),s.__decorate([c.postConstruct(),s.__metadata("design:type",Function),s.__metadata("design:paramtypes",[]),s.__metadata("design:returntype",void 0)],l.prototype,"initialize",null),l=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s.__param(1,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Object,Object])],l),t.ArrayStorage=l},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(87),g=u=function(e){function t(e,r,n,a){var c;return(0,o.default)(this,t),(c=(0,i.default)(this,(0,s.default)(t).call(this,n,a))).identifierNamesGenerator=e(a),c.arrayUtils=r,c}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){(0,c.default)((0,s.default)(t.prototype),"initialize",this).call(this);var e=this.identifierNamesGenerator.generate().slice(0,u.stringArrayNameLength),r=this.identifierNamesGenerator.generate().slice(0,u.stringArrayNameLength),n="".concat(this.options.identifiersPrefix).concat(e),o="".concat(this.options.identifiersPrefix).concat(r);this.storageId="".concat(n,"|").concat(o)}},{key:"rotateArray",value:function(e){this.storage=this.arrayUtils.rotate(this.storage,e)}},{key:"toString",value:function(){return this.storage.map(function(e){return"'".concat(e,"'")}).toString()}}]),t}(m.ArrayStorage);g.stringArrayNameLength=7,l.__decorate([f.postConstruct(),l.__metadata("design:type",Function),l.__metadata("design:paramtypes",[]),l.__metadata("design:returntype",void 0)],g.prototype,"initialize",null),g=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IArrayUtils)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object,Object])],g),t.StringArrayStorage=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(57),g=r(52),N=u=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).customNodeGroupFactory=e,a}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){var e=this;(0,c.default)((0,s.default)(t.prototype),"initialize",this).call(this),u.customNodeGroupsList.forEach(function(t){var r=e.customNodeGroupFactory(t);r&&e.storage.set(t,r)})}}]),t}(g.MapStorage);N.customNodeGroupsList=[m.CustomNodeGroup.ConsoleOutputCustomNodeGroup,m.CustomNodeGroup.DebugProtectionCustomNodeGroup,m.CustomNodeGroup.DomainLockCustomNodeGroup,m.CustomNodeGroup.SelfDefendingCustomNodeGroup,m.CustomNodeGroup.StringArrayCustomNodeGroup],l.__decorate([f.postConstruct(),l.__metadata("design:type",Function),l.__metadata("design:paramtypes",[]),l.__metadata("design:returntype",void 0)],N.prototype,"initialize",null),N=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__ICustomNodeGroup)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],N),t.CustomNodeGroupStorage=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(8)),i=n(r(7)),s=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var c=r(4),d=r(2),u=r(5),l=function(e){function t(e,r){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).call(this,e,r))}return(0,s.default)(t,e),t}(r(52).MapStorage);l=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c.__param(1,d.inject(u.ServiceIdentifiers.IOptions)),c.__metadata("design:paramtypes",[Object,Object])],l),t.ControlFlowStorage=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(5),a=r(90),i=r(89),s=r(88);t.storagesModule=new n.ContainerModule(function(e){e(o.ServiceIdentifiers.TCustomNodeGroupStorage).to(i.CustomNodeGroupStorage).inSingletonScope(),e(o.ServiceIdentifiers.TStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(o.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(a.ControlFlowStorage),e(o.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function(e){return function(){var t=new(e.container.get(o.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(o.ServiceIdentifiers.IRandomGenerator),e.container.get(o.ServiceIdentifiers.IOptions));return t.initialize(),t}})})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(10),g=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return m.NodeUtils.parentizeNode(e,t)}}]),t}(p.AbstractNodeTransformer);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],g),t.ParentificationTransformer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(53),m=r(13),g=r(14),N=r(19),v=d=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).obfuscatingGuards=d.obfuscatingGuardsList.map(e),a}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=this.obfuscatingGuards.every(function(t){return t.check(e)});return N.NodeMetadata.set(e,{ignoredNode:!r}),e}}]),t}(g.AbstractNodeTransformer);v.obfuscatingGuardsList=[p.ObfuscatingGuard.BlackListNodeGuard,p.ObfuscatingGuard.ConditionalCommentNodeGuard],v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__INodeGuard)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.ObfuscatingGuardsTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(9),g=r(19),N=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return g.NodeMetadata.set(e,{ignoredNode:!1}),m.NodeGuards.isIdentifierNode(e)&&g.NodeMetadata.set(e,{renamedIdentifier:!1}),m.NodeGuards.isLiteralNode(e)&&g.NodeMetadata.set(e,{replacedLiteral:!1}),e}}]),t}(p.AbstractNodeTransformer);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],N),t.MetadataTransformer=N},function(e,t){e.exports=require("js-string-escape")},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importDefault(r(95)),g=r(13),N=r(14),v=r(15),y=r(9),_=r(10),h=u=function(e){function t(e,r){var n;return(0,a.default)(this,t),(n=(0,s.default)(this,(0,c.default)(t).call(this,e,r))).evalRootAstHostNodeSet=new o.default,n}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case g.TransformationStage.Preparing:return{enter:function(e,r){if(r&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return t.transformNode(e,r)}};case g.TransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:function(e,r){if(r&&t.isEvalRootAstHostNode(e))return t.restoreNode(e,r)}}:null;default:return null}}},{key:"transformNode",value:function(e,t){var r=e.arguments[0];if(!r)return e;var n,o=u.extractEvalStringFromCallExpressionArgument(r);if(!o)return e;try{n=_.NodeUtils.convertCodeToStructure(o)}catch(t){return e}var a=v.NodeFactory.functionExpressionNode([],v.NodeFactory.blockStatementNode(n));return this.evalRootAstHostNodeSet.add(a),a}},{key:"restoreNode",value:function(e,t){var r=e.body.body,n=_.NodeUtils.convertStructureToCode(r);return v.NodeFactory.callExpressionNode(v.NodeFactory.identifierNode("eval"),[v.NodeFactory.literalNode(m.default(n))])}},{key:"isEvalRootAstHostNode",value:function(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}}],[{key:"extractEvalStringFromCallExpressionArgument",value:function(e){return y.NodeGuards.isLiteralNode(e)?u.extractEvalStringFromLiteralNode(e):y.NodeGuards.isTemplateLiteralNode(e)?u.extractEvalStringFromTemplateLiteralNode(e):null}},{key:"extractEvalStringFromLiteralNode",value:function(e){return"string"==typeof e.value?e.value:null}},{key:"extractEvalStringFromTemplateLiteralNode",value:function(e){var t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}}]),t}(N.AbstractNodeTransformer);h=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],h),t.EvalCallExpressionTransformer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(26),p=r(13),m=r(14),g=r(9),N=function(e){function t(e,r,n,a,c){var d;return(0,o.default)(this,t),(d=(0,i.default)(this,(0,s.default)(t).call(this,a,c))).stackTraceData=[],d.stackTraceAnalyzer=e,d.obfuscationEventEmitter=r,d.customNodeGroupStorage=n,d}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Preparing:return{leave:function(e,r){if(g.NodeGuards.isProgramNode(e))return t.analyzeNode(e,r),t.appendCustomNodesBeforeObfuscation(e,r),t.transformNode(e,r)}};case p.TransformationStage.Finalizing:return{leave:function(e,r){g.NodeGuards.isProgramNode(e)&&t.appendCustomNodesAfterObfuscation(e,r)}};default:return null}}},{key:"analyzeNode",value:function(e,t){this.stackTraceData=this.stackTraceAnalyzer.analyze(e)}},{key:"transformNode",value:function(e,t){return e}},{key:"appendCustomNodesBeforeObfuscation",value:function(e,t){var r=this;this.customNodeGroupStorage.getStorage().forEach(function(e){e.initialize(),r.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendCustomNodes.bind(e))}),this.obfuscationEventEmitter.emit(f.ObfuscationEvent.BeforeObfuscation,e,this.stackTraceData)}},{key:"appendCustomNodesAfterObfuscation",value:function(e,t){this.obfuscationEventEmitter.emit(f.ObfuscationEvent.AfterObfuscation,e,this.stackTraceData)}}]),t}(m.AbstractNodeTransformer);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IStackTraceAnalyzer)),d.__param(1,u.inject(l.ServiceIdentifiers.IObfuscationEventEmitter)),d.__param(2,u.inject(l.ServiceIdentifiers.TCustomNodeGroupStorage)),d.__param(3,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(4,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],N),t.CustomNodesTransformer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i,s=r(4),c=r(2),d=r(9),u=i=function(){function e(){(0,o.default)(this,e),this.obfuscationAllowedForCurrentNode=!0,this.obfuscationAllowedForNextNode=null}return(0,a.default)(e,[{key:"check",value:function(e){if(this.obfuscationAllowedForNextNode&&(this.obfuscationAllowedForCurrentNode=this.obfuscationAllowedForNextNode,this.obfuscationAllowedForNextNode=null),!d.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowedForCurrentNode;var t=e.leadingComments,r=e.trailingComments;return t&&(this.obfuscationAllowedForCurrentNode=this.checkComments(t)),r&&(this.obfuscationAllowedForNextNode=this.checkComments(r)),this.obfuscationAllowedForCurrentNode}},{key:"checkComments",value:function(e){for(var t=e.length,r=this.obfuscationAllowedForCurrentNode,n=0;n=u.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}},{key:"getStringArrayHexadecimalIndex",value:function(e,t){if(this.stringLiteralHexadecimalIndexCache.has(e))return{fromCache:!0,index:this.stringLiteralHexadecimalIndexCache.get(e)};var r=y.NumberUtils.toHex(t),n="".concat(_.Utils.hexadecimalPrefix).concat(r);return this.stringLiteralHexadecimalIndexCache.set(e,n),{fromCache:!1,index:n}}},{key:"getEncodedValue",value:function(e){var t,r=null;switch(this.options.stringArrayEncoding){case m.StringArrayEncoding.Rc4:r=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),t=this.cryptUtils.btoa(this.cryptUtils.rc4(e,r));break;case m.StringArrayEncoding.Base64:t=this.cryptUtils.btoa(e);break;default:t=e}return{encodedValue:t,key:r}}},{key:"replaceWithLiteralNode",value:function(e){return v.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(e,this.options.unicodeEscapeSequence))}},{key:"replaceWithStringArrayCallNode",value:function(e){var t=this.getEncodedValue(e),r=t.encodedValue,n=t.key,o=this.escapeSequenceEncoder.encode(r,this.options.unicodeEscapeSequence),a=this.stringArrayStorage.getLength(),i=this.stringArrayStorage.getStorageId().split("|")[1],s=this.getStringArrayHexadecimalIndex(o,a),c=s.fromCache,d=s.index;c||this.stringArrayStorage.set(a,o);var l=[u.getHexadecimalLiteralNode(d)];n&&l.push(u.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(n,this.options.unicodeEscapeSequence)));var f=v.NodeFactory.identifierNode(i);return N.NodeMetadata.set(f,{renamedIdentifier:!0}),v.NodeFactory.callExpressionNode(f,l)}}],[{key:"getHexadecimalLiteralNode",value:function(e){var t=v.NodeFactory.literalNode(e);return N.NodeMetadata.set(t,{replacedLiteral:!0}),t}},{key:"getRc4KeyLiteralNode",value:function(e){var t=v.NodeFactory.literalNode(e);return N.NodeMetadata.set(t,{replacedLiteral:!0}),t}}]),t}(g.AbstractObfuscatingReplacer);h.minimumLengthForStringArray=3,h.rc4KeyLength=4,h.rc4KeysCount=50,h=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.TStringArrayStorage)),l.__param(1,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.ICryptUtils)),l.__param(4,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],h),t.StringLiteralObfuscatingReplacer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(40),m=r(15),g=r(41),N=r(33),v=function(e){function t(e){var r;return(0,a.default)(this,t),(r=(0,s.default)(this,(0,c.default)(t).call(this,e))).numberLiteralCache=new o.default,r}return(0,d.default)(t,e),(0,i.default)(t,[{key:"replace",value:function(e){var t;return this.numberLiteralCache.has(e)?t=this.numberLiteralCache.get(e):(t=g.NumberUtils.isCeil(e)?"".concat(N.Utils.hexadecimalPrefix).concat(g.NumberUtils.toHex(e)):String(e),this.numberLiteralCache.set(e,t)),m.NodeFactory.literalNode(e,t)}}]),t}(p.AbstractObfuscatingReplacer);v=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object])],v),t.NumberLiteralObfuscatingReplacer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(64)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(54),m=r(13),g=r(14),N=r(9),v=r(19),y=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).literalObfuscatingReplacerFactory=e,o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&N.NodeGuards.isLiteralNode(e)&&!v.NodeMetadata.isReplacedLiteral(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.isProhibitedNode(e,t))return e;switch((0,o.default)(e.value)){case"boolean":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(e.value);case"number":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(e.value);case"string":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(e.value);default:return e}}},{key:"isProhibitedNode",value:function(e,t){return!(!N.NodeGuards.isPropertyNode(t)||t.key!==e)||!!N.NodeGuards.isImportDeclarationNode(t)}}]),t}(g.AbstractNodeTransformer);y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IObfuscatingReplacer)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],y),t.LiteralTransformer=y},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importStar(r(18)),p=r(21),m=r(13),g=r(14),N=r(9),v=r(10),y=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).identifierObfuscatingReplacer=e(p.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),a}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&N.NodeGuards.isLabeledStatementNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=v.NodeUtils.getBlockScopeOfNode(e);return this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e}},{key:"storeLabeledStatementName",value:function(e,t){this.identifierObfuscatingReplacer.storeLocalName(e.label.name,t)}},{key:"replaceLabeledStatementName",value:function(e,t){var r=this;f.replace(e,{enter:function(e,n){if(n&&N.NodeGuards.isLabelIdentifierNode(e,n)){var o=r.identifierObfuscatingReplacer.replace(e.name,t);e.name=o.name}}})}}]),t}(g.AbstractNodeTransformer);y=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],y),t.LabeledStatementTransformer=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importStar(r(18)),g=r(21),N=r(13),v=r(14),y=r(9),_=r(19),h=r(10),b=u=function(e){function t(e,r,n){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).replaceableIdentifiers=new o.default,i.identifierObfuscatingReplacer=e(g.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&y.NodeGuards.isImportDeclarationNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=h.NodeUtils.getBlockScopeOfNode(e);return this.storeImportSpecifierNames(e,r),this.replaceableIdentifiers.has(r)?this.replaceScopeCachedIdentifiers(r):this.replaceScopeIdentifiers(r),e}},{key:"storeImportSpecifierNames",value:function(e,t){var r=this;e.specifiers.forEach(function(e){u.isProhibitedImportSpecifierNode(e)||r.identifierObfuscatingReplacer.storeGlobalName(e.local.name,t)})}},{key:"replaceScopeCachedIdentifiers",value:function(e){var t=this;this.replaceableIdentifiers.get(e).forEach(function(r){var n=t.identifierObfuscatingReplacer.replace(r.name,e);r.name=n.name,_.NodeMetadata.set(r,{renamedIdentifier:!0})})}},{key:"replaceScopeIdentifiers",value:function(e){var t=this,r=[];m.replace(e,{enter:function(n,o){if(o&&y.NodeGuards.isReplaceableIdentifierNode(n,o)&&!_.NodeMetadata.isRenamedIdentifier(n)){var a=t.identifierObfuscatingReplacer.replace(n.name,e).name;n.name!==a?(n.name=a,_.NodeMetadata.set(n,{renamedIdentifier:!0})):r.push(n)}}}),this.replaceableIdentifiers.set(e,r)}}],[{key:"isProhibitedImportSpecifierNode",value:function(e){return y.NodeGuards.isImportSpecifierNode(e)&&e.imported.name===e.local.name}}]),t}(v.AbstractNodeTransformer);b=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],b),t.ImportDeclarationTransformer=b},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(21),g=r(13),N=r(14),v=r(9),y=r(19),_=r(10),h=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).identifierObfuscatingReplacer=e(m.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case g.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&(v.NodeGuards.isFunctionDeclarationNode(e)||v.NodeGuards.isFunctionExpressionNode(e)||v.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=v.NodeGuards.isBlockStatementNode(e.body)?e.body:_.NodeUtils.getBlockScopeOfNode(e.body);return this.storeFunctionParams(e,r),this.replaceFunctionParams(e,r),e}},{key:"storeFunctionParams",value:function(e,t){var r=this;e.params.forEach(function(e){p.traverse(e,{enter:function(n){return v.NodeGuards.isPropertyNode(e)?p.VisitorOption.Skip:v.NodeGuards.isAssignmentPatternNode(n)&&v.NodeGuards.isIdentifierNode(n.left)?(r.identifierObfuscatingReplacer.storeLocalName(n.left.name,t),p.VisitorOption.Skip):void(v.NodeGuards.isIdentifierNode(n)&&r.identifierObfuscatingReplacer.storeLocalName(n.name,t))}})})}},{key:"addIdentifiersToIgnoredIdentifierNamesSet",value:function(e,t){e.forEach(function(e){e.key&&v.NodeGuards.isIdentifierNode(e.key)&&t.add(e.key.name)})}},{key:"replaceFunctionParams",value:function(e,t){var r=this,n=new o.default,a={enter:function(e,o){if(v.NodeGuards.isObjectPatternNode(e)&&r.addIdentifiersToIgnoredIdentifierNamesSet(e.properties,n),o&&v.NodeGuards.isReplaceableIdentifierNode(e,o)&&!n.has(e.name)){var a=r.identifierObfuscatingReplacer.replace(e.name,t).name;e.name!==a&&(e.name=a,y.NodeMetadata.set(e,{renamedIdentifier:!0}))}}};e.params.forEach(function(e){return p.replace(e,a)}),p.replace(e.body,a)}}]),t}(N.AbstractNodeTransformer);h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],h),t.FunctionTransformer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(21),g=r(23),N=r(13),v=r(14),y=r(9),_=r(19),h=r(10),b=function(e){function t(e,r,n){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).replaceableIdentifiers=new o.default,i.identifierObfuscatingReplacer=e(m.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&y.NodeGuards.isFunctionDeclarationNode(e)&&!y.NodeGuards.isExportNamedDeclarationNode(r))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=h.NodeUtils.getBlockScopeOfNode(e),n=r.type===g.NodeType.Program;return!this.options.renameGlobals&&n?e:(this.storeFunctionName(e,r,n),this.replaceableIdentifiers.has(r)?this.replaceScopeCachedIdentifiers(e,r):this.replaceScopeIdentifiers(r),e)}},{key:"storeFunctionName",value:function(e,t,r){r?this.identifierObfuscatingReplacer.storeGlobalName(e.id.name,t):this.identifierObfuscatingReplacer.storeLocalName(e.id.name,t)}},{key:"replaceScopeCachedIdentifiers",value:function(e,t){var r=this.replaceableIdentifiers.get(t);if(r){var n=r.get(e.id.name);if(n)for(var o=n.length,a=0;a=0);return"a".concat(n(r))},r=t(e);return this.isValidIdentifierName(r)||(r=this.generateNewMangledName(r)),r}}]),t}(m.AbstractIdentifierNamesGenerator);g.initMangledNameCharacter="9",g.nameSequence="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),g.reservedNames=["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"],g=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],g),t.MangledIdentifierNamesGenerator=g},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(55),g=r(41),N=r(33),v=u=function(e){function t(e,r){var n;return(0,a.default)(this,t),(n=(0,s.default)(this,(0,c.default)(t).call(this,e,r))).randomVariableNameSet=new o.default,n}return(0,d.default)(t,e),(0,i.default)(t,[{key:"generate",value:function(){var e=this.randomGenerator.getRandomInteger(1e4,99999999),t=g.NumberUtils.toHex(e).substr(0,u.baseIdentifierNameLength),r="_".concat(N.Utils.hexadecimalPrefix).concat(t);return this.randomVariableNameSet.has(r)?this.generate():(this.randomVariableNameSet.add(r),r)}},{key:"generateWithPrefix",value:function(){var e=this.generate();return"".concat(this.options.identifiersPrefix).concat(e).replace("__","_")}}]),t}(m.AbstractIdentifierNamesGenerator);v.baseIdentifierNameLength=6,v=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],v),t.HexadecimalIdentifierNamesGenerator=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(5),a=r(39),i=r(133),s=r(132);t.generatorsModule=new n.ContainerModule(function(e){e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(i.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(o.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(e){var t=null;return function(r){if(t)return t;var n;switch(r.identifierNamesGenerator){case a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:n=e.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:n=e.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return t=n,n}})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2);t.finalizingTransformersModule=new n.ContainerModule(function(e){})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.literalValue=e}},{key:"getNodeStructure",value:function(){return[m.NodeFactory.expressionStatementNode(m.NodeFactory.literalNode(this.literalValue))]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"literalValue",void 0),g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],g),t.StringLiteralNode=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(10),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(this.controlFlowStorageName),m.NodeFactory.identifierNode(this.controlFlowStorageKey)));return g.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"controlFlowStorageKey",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"controlFlowStorageName",void 0),N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],N),t.StringLiteralControlFlowStorageCallNode=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n ")}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),g=r(43),N=r(139),v=r(138),y=r(16),_=r(36),h=r(10),b=r(41),S=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayRotateValue=t}},{key:"getNodeStructure",value:function(){return h.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),r="";return r=this.options.selfDefending?p.default(N.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):"".concat(t,"(++").concat(e,")"),_.JavaScriptObfuscator.obfuscate(p.default(v.StringArrayRotateFunctionTemplate(),{code:r,timesName:e,stringArrayName:this.stringArrayName,stringArrayRotateValue:b.NumberUtils.toHex(this.stringArrayRotateValue),whileFunctionName:t}),(0,o.default)({},g.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}}]),t}(y.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",String)],S.prototype,"stringArrayName",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",Number)],S.prototype,"stringArrayRotateValue",void 0),S=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],S),t.StringArrayRotateFunctionNode=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=function(){return"\n var {stringArrayName} = [{stringArray}];\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),g=r(141),N=r(16),v=r(10),y=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r){this.stringArrayStorage=e,this.stringArrayName=t,this.stringArrayRotateValue=r}},{key:"getNode",value:function(){return this.stringArrayStorage.rotateArray(this.stringArrayRotateValue),(0,c.default)((0,s.default)(t.prototype),"getNode",this).call(this)}},{key:"getNodeStructure",value:function(){return v.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return p.default(g.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArray:this.stringArrayStorage.toString()})}}]),t}(N.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",Object)],y.prototype,"stringArrayStorage",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",String)],y.prototype,"stringArrayName",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",Number)],y.prototype,"stringArrayRotateValue",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],y),t.StringArrayNode=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRc4DecodeNodeTemplate=function(e){var t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(r," = rc4;\n \n {stringArrayCallsWrapperName}.").concat(n," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(n,"[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(o," === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(o," = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(r,"(value, key);\n {stringArrayCallsWrapperName}.").concat(n,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=function(){return"\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeNodeTemplate=function(e){var t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(r," = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(n," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(n,"[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(r,"(value);\n {stringArrayCallsWrapperName}.").concat(n,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e,t){var r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6),a=e.getRandomString(6),i=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),d=e.getRandomString(6),u=e.getRandomString(6);return"\n var StatesClass = function (".concat(r,") {\n this.").concat(r," = ").concat(r,";\n this.").concat(n," = [1, 0, 0];\n this.").concat(o," = function(){return 'newState';};\n this.").concat(a," = '").concat(t.encode("\\w+ *\\(\\) *{\\w+ *",!0),"';\n this.").concat(i," = '").concat(t.encode("['|\"].+['|\"];? *}",!0),"';\n };\n \n StatesClass.prototype.").concat(s," = function () {\n var regExp = new RegExp(this.").concat(a," + this.").concat(i,");\n var expression = regExp.test(this.").concat(o,".toString())\n ? --this.").concat(n,"[1]\n : --this.").concat(n,"[0];\n \n return this.").concat(c,"(expression);\n };\n \n StatesClass.prototype.").concat(c," = function (").concat(u,") {\n if (!Boolean(~").concat(u,")) {\n return ").concat(u,";\n }\n \n return this.").concat(d,"(this.").concat(r,");\n };\n\n StatesClass.prototype.").concat(d," = function (").concat(r,") {\n for (var i = 0, len = this.").concat(n,".length; i < len; i++) {\n this.").concat(n,".push(Math.round(Math.random()));\n len = this.").concat(n,".length;\n }\n \n return ").concat(r,"(this.").concat(n,"[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(s,"();\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=function(){return"\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=function(){return"\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(25),g=r(37),N=r(11),v=r(43),y=r(148),_=r(45),h=r(147),b=r(146),S=r(145),I=r(144),C=r(143),F=r(16),O=r(36),j=r(10),k=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayCallsWrapperName=t}},{key:"getNodeStructure",value:function(){return j.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.getDecodeStringArrayTemplate();return O.JavaScriptObfuscator.obfuscate(p.default(I.StringArrayCallsWrapperTemplate(),{decodeNodeTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}),(0,o.default)({},v.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}},{key:"getDecodeStringArrayTemplate",value:function(){var e=this.options.target!==m.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate(),t=p.default(y.AtobTemplate(),{globalVariableTemplate:e}),r="",n="";switch(this.options.selfDefending&&(n=p.default(b.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName})),this.options.stringArrayEncoding){case g.StringArrayEncoding.Rc4:r=p.default(C.StringArrayRc4DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:h.Rc4Template(),selfDefendingCode:n,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName});break;case g.StringArrayEncoding.Base64:r=p.default(S.StringArrayBase64DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:n,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}return r}}]),t}(F.AbstractCustomNode);u.__decorate([N.initializable(),u.__metadata("design:type",String)],k.prototype,"stringArrayName",void 0),u.__decorate([N.initializable(),u.__metadata("design:type",String)],k.prototype,"stringArrayCallsWrapperName",void 0),k=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],k),t.StringArrayCallsWrapper=k},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(e.encode("(\\\\[x|u](\\w){2,4})+",!0),"');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('indеxOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('indеxOf');\n }\n })\n \n {selfDefendingFunctionName}();\n ")}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),g=r(43),N=r(150),v=r(16),y=r(36),_=r(10),h=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return y.JavaScriptObfuscator.obfuscate(p.default(N.SelfDefendingTemplate(this.escapeSequenceEncoder),{selfDefendingFunctionName:this.identifierNamesGenerator.generate(),singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,o.default)({},g.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed,unicodeEscapeSequence:!0})).getObfuscatedCode()}}]),t}(v.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],h),t.SelfDefendingUnicodeNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleNodeCallControllerTemplate=function(){return"\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(26),g=r(11),N=r(152),v=r(43),y=r(16),_=r(36),h=r(10),b=function(e){function t(e,r,n){return(0,a.default)(this,t),(0,s.default)(this,(0,c.default)(t).call(this,e,r,n))}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return h.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return this.appendEvent===m.ObfuscationEvent.AfterObfuscation?_.JavaScriptObfuscator.obfuscate(p.default(N.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,o.default)({},v.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode():p.default(N.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(y.AbstractCustomNode);u.__decorate([g.initializable(),u.__metadata("design:type",String)],b.prototype,"callsControllerFunctionName",void 0),u.__decorate([g.initializable(),u.__metadata("design:type",String)],b.prototype,"appendEvent",void 0),b=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],b),t.NodeCallsControllerFunctionNode=b},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(10),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.functionExpressionNode([m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")],m.NodeFactory.blockStatementNode([m.NodeFactory.returnStatementNode(m.NodeFactory.logicalExpressionNode(this.operator,m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")))])));return g.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"operator",void 0),N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],N),t.LogicalExpressionFunctionNode=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(10),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=n}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.callExpressionNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(this.controlFlowStorageName),m.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return g.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"controlFlowStorageKey",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"controlFlowStorageName",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Object)],N.prototype,"leftValue",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Object)],N.prototype,"rightValue",void 0),N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],N),t.ExpressionWithOperatorControlFlowStorageCallNode=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockNodeTemplate=function(){return'\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp("[{diff}]", "g");\n var domains = "{domains}".replace(regExp, "").split(";");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(25),g=r(11),N=r(156),v=r(45),y=r(16),_=r(10),h=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).cryptUtils=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.domainLock.join(";"),t=this.cryptUtils.hideString(e,3*e.length),r=(0,o.default)(t,2),n=r[0],a=r[1],i=this.options.target!==m.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():v.GlobalVariableNoEvalTemplate();return p.default(N.DomainLockNodeTemplate(),{domainLockFunctionName:this.identifierNamesGenerator.generate(),diff:a,domains:n,globalVariableTemplate:i,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(y.AbstractCustomNode);u.__decorate([g.initializable(),u.__metadata("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.ICryptUtils)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],h),t.DomainLockNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(25),m=r(11),g=r(160),N=r(159),v=r(158),y=r(16),_=r(10),h=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==p.ObfuscationTarget.BrowserNoEval?g.DebuggerTemplate():N.DebuggerTemplateNoEval();return f.default(v.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(y.AbstractCustomNode);d.__decorate([m.initializable(),d.__metadata("design:type",String)],h.prototype,"debugProtectionFunctionName",void 0),h=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],h),t.DebugProtectionFunctionNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(11),m=r(162),g=r(16),N=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return N.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return f.default(m.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(g.AbstractCustomNode);d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.DebugProtectionFunctionIntervalNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(11),m=r(164),g=r(16),N=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return N.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return f.default(m.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(g.AbstractCustomNode);d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.DebugProtectionFunctionCallNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableExpressionTemplate=function(){return"\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(25),m=r(166),g=r(45),N=r(11),v=r(16),y=r(10),_=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return y.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==p.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():g.GlobalVariableNoEvalTemplate();return f.default(m.ConsoleOutputDisableExpressionTemplate(),{consoleLogDisableFunctionName:this.identifierNamesGenerator.generate(),globalVariableTemplate:e,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(v.AbstractCustomNode);d.__decorate([N.initializable(),d.__metadata("design:type",String)],_.prototype,"callsControllerFunctionName",void 0),_=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ConsoleOutputDisableExpressionNode=_},function(e,t){e.exports=require("@babel/runtime/core-js/array/from")},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(168)),i=n(r(1)),s=n(r(3)),c=n(r(8)),d=n(r(7)),u=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var l=r(4),f=r(2),p=r(5),m=r(11),g=r(16),N=r(15),v=r(9),y=r(10),_=function(e){function t(e,r,n){return(0,i.default)(this,t),(0,c.default)(this,(0,d.default)(t).call(this,e,r,n))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"initialize",value:function(e){this.controlFlowStorage=e}},{key:"getNodeStructure",value:function(){var e=(0,a.default)(this.controlFlowStorage.getStorage()).map(function(e){var t=(0,o.default)(e,2),r=t[0],n=t[1].getNode()[0];if(!v.NodeGuards.isExpressionStatementNode(n))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return N.NodeFactory.propertyNode(N.NodeFactory.identifierNode(r),n.expression)}),t=N.NodeFactory.variableDeclarationNode([N.NodeFactory.variableDeclaratorNode(N.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),N.NodeFactory.objectExpressionNode(e))]);return[t=y.NodeUtils.parentizeAst(t)]}}]),t}(g.AbstractCustomNode);l.__decorate([m.initializable(),l.__metadata("design:type",Object)],_.prototype,"controlFlowStorage",void 0),_=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ControlFlowStorageNode=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(10),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.expressionArguments=e}},{key:"getNodeStructure",value:function(){for(var e=m.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length,n=0;n.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",n=this.randomGenerator.getRandomString(5),a=t?n:this.randomGenerator.getRandomString(5),i=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=(0,o.default)(i,2),c=s[0],d=s[1],u=g.NodeFactory.blockStatementNode([g.NodeFactory.ifStatementNode(g.NodeFactory.binaryExpressionNode(r,g.NodeFactory.literalNode(n),g.NodeFactory.literalNode(a)),c,d)]);return N.NodeUtils.parentizeAst(u),[u]}}]),t}(m.AbstractCustomNode);u.__decorate([p.initializable(),u.__metadata("design:type",Object)],v.prototype,"blockStatementNode",void 0),u.__decorate([p.initializable(),u.__metadata("design:type",Object)],v.prototype,"deadCodeInjectionRootAstHostNode",void 0),v=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.BlockStatementDeadCodeInjectionNode=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(9),N=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}},{key:"getNodeStructure",value:function(){var e=this,t=this.randomGenerator.getRandomString(6),r=this.randomGenerator.getRandomString(6),n=m.NodeFactory.blockStatementNode([m.NodeFactory.variableDeclarationNode([m.NodeFactory.variableDeclaratorNode(m.NodeFactory.identifierNode(t),m.NodeFactory.callExpressionNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join("|")),m.NodeFactory.identifierNode("split")),[m.NodeFactory.literalNode("|")])),m.NodeFactory.variableDeclaratorNode(m.NodeFactory.identifierNode(r),m.NodeFactory.literalNode(0))]),m.NodeFactory.whileStatementNode(m.NodeFactory.literalNode(!0),m.NodeFactory.blockStatementNode([m.NodeFactory.switchStatementNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(t),m.NodeFactory.updateExpressionNode("++",m.NodeFactory.identifierNode(r)),!0),this.shuffledKeys.map(function(t,r){var n=e.blockStatementBody[t],o=[n];return g.NodeGuards.isReturnStatementNode(n)||o.push(m.NodeFactory.continueStatement()),m.NodeFactory.switchCaseNode(m.NodeFactory.literalNode(String(r)),o)})),m.NodeFactory.breakStatement()]))]);return N.NodeUtils.parentizeAst(n),[n]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"blockStatementBody",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"originalKeysIndexesInShuffledArray",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"shuffledKeys",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.BlockStatementControlFlowFlatteningNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=function(){return"\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=function(){return"\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),g=r(10),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.functionExpressionNode([m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")],m.NodeFactory.blockStatementNode([m.NodeFactory.returnStatementNode(m.NodeFactory.binaryExpressionNode(this.operator,m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")))])));return g.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"operator",void 0),N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],N),t.BinaryExpressionFunctionNode=N},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(17)),i=n(r(1)),s=n(r(3)),c=n(r(8)),d=n(r(7)),u=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var l=r(4),f=r(2),p=r(5),m=r(11),g=r(29),N=r(26),v=r(34),y=r(27),_=function(e){function t(e,r,n,o,a){var s;return(0,i.default)(this,t),(s=(0,c.default)(this,(0,d.default)(t).call(this,n,o,a))).appendEvent=N.ObfuscationEvent.AfterObfuscation,s.customNodeFactory=e,s.stringArrayStorage=r,s}return(0,u.default)(t,e),(0,s.default)(t,[{key:"appendCustomNodes",value:function(e,t){this.stringArrayStorage.getLength()&&(this.appendCustomNodeIfExist(g.CustomNode.StringArrayNode,function(t){y.NodeAppender.prepend(e,t.getNode())}),this.appendCustomNodeIfExist(g.CustomNode.StringArrayCallsWrapper,function(t){y.NodeAppender.insertAtIndex(e,t.getNode(),1)}),this.appendCustomNodeIfExist(g.CustomNode.StringArrayRotateFunctionNode,function(t){y.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}},{key:"initialize",value:function(){if(this.customNodes=new a.default,this.options.stringArray){var e,t=this.customNodeFactory(g.CustomNode.StringArrayNode),r=this.customNodeFactory(g.CustomNode.StringArrayCallsWrapper),n=this.customNodeFactory(g.CustomNode.StringArrayRotateFunctionNode),i=this.stringArrayStorage.getStorageId().split("|"),s=(0,o.default)(i,2),c=s[0],d=s[1];e=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(100,500):0,t.initialize(this.stringArrayStorage,c,e),r.initialize(c,d),n.initialize(c,e),this.customNodes.set(g.CustomNode.StringArrayNode,t),this.customNodes.set(g.CustomNode.StringArrayCallsWrapper,r),this.options.rotateStringArray&&this.customNodes.set(g.CustomNode.StringArrayRotateFunctionNode,n)}}}]),t}(v.AbstractCustomNodeGroup);l.__decorate([m.initializable(),l.__metadata("design:type",a.default)],_.prototype,"customNodes",void 0),_=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__ICustomNode)),l.__param(1,f.inject(p.ServiceIdentifiers.TStringArrayStorage)),l.__param(2,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(4,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Function,Object,Object])],_),t.StringArrayCustomNodeGroup=_},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),g=r(26),N=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=g.ObfuscationEvent.AfterObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.SelfDefendingUnicodeNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.selfDefending){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.SelfDefendingUnicodeNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.SelfDefendingUnicodeNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(N.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.SelfDefendingCustomNodeGroup=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),g=r(26),N=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=g.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.DomainLockNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.domainLock.length){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.DomainLockNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.DomainLockNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(N.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.DomainLockCustomNodeGroup=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),g=r(26),N=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=g.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this,n=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionCallNode,function(r){v.NodeAppender.appendToOptimalBlockScope(t,e,r.getNode(),n)}),this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionNode,function(t){v.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionIntervalNode,function(t){var n=e.body.length,o=r.randomGenerator.getRandomInteger(0,n);v.NodeAppender.insertAtIndex(e,t.getNode(),o)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(r){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,n,1):e,v.NodeAppender.prepend(o,r.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.debugProtection){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),r=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionNode),n=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionCallNode),a=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionIntervalNode),i=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);r.initialize(e),n.initialize(e,t),a.initialize(e),i.initialize(this.appendEvent,t),this.customNodes.set(m.CustomNode.DebugProtectionFunctionNode,r),this.customNodes.set(m.CustomNode.DebugProtectionFunctionCallNode,n),this.options.debugProtectionInterval&&this.customNodes.set(m.CustomNode.DebugProtectionFunctionIntervalNode,a),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,i)}}}]),t}(N.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.DebugProtectionCustomNodeGroup=y},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/has-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/define-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/object/get-own-property-names")},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/get-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/object/get-own-property-descriptor")},function(e,t){e.exports=require("@babel/runtime/core-js/object/define-property")},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),g=r(26),N=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=g.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.ConsoleOutputDisableExpressionNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.disableConsoleOutput){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.ConsoleOutputDisableExpressionNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.ConsoleOutputDisableExpressionNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(N.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.ConsoleOutputCustomNodeGroup=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(22),s=r(29),c=r(57),d=r(60),u=r(187),l=r(180),f=r(179),p=r(178),m=r(177),g=r(176),N=r(173),v=r(172),y=r(171),_=r(170),h=r(169),b=r(167),S=r(165),I=r(163),C=r(161),F=r(157),O=r(155),j=r(154),k=r(153),T=r(151),x=r(149),E=r(142),w=r(140),G=r(137),R=r(136);t.customNodesModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.ICustomNode).to(b.ConsoleOutputDisableExpressionNode).whenTargetNamed(s.CustomNode.ConsoleOutputDisableExpressionNode),e(a.ServiceIdentifiers.ICustomNode).to(S.DebugProtectionFunctionCallNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionCallNode),e(a.ServiceIdentifiers.ICustomNode).to(I.DebugProtectionFunctionIntervalNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionIntervalNode),e(a.ServiceIdentifiers.ICustomNode).to(C.DebugProtectionFunctionNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(F.DomainLockNode).whenTargetNamed(s.CustomNode.DomainLockNode),e(a.ServiceIdentifiers.ICustomNode).to(k.NodeCallsControllerFunctionNode).whenTargetNamed(s.CustomNode.NodeCallsControllerFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(T.SelfDefendingUnicodeNode).whenTargetNamed(s.CustomNode.SelfDefendingUnicodeNode),e(a.ServiceIdentifiers.ICustomNode).to(x.StringArrayCallsWrapper).whenTargetNamed(s.CustomNode.StringArrayCallsWrapper),e(a.ServiceIdentifiers.ICustomNode).to(E.StringArrayNode).whenTargetNamed(s.CustomNode.StringArrayNode),e(a.ServiceIdentifiers.ICustomNode).to(w.StringArrayRotateFunctionNode).whenTargetNamed(s.CustomNode.StringArrayRotateFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.BinaryExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.BlockStatementControlFlowFlatteningNode).whenTargetNamed(i.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.CallExpressionControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(_.CallExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.CallExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.ControlFlowStorageNode).whenTargetNamed(i.ControlFlowCustomNode.ControlFlowStorageNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(O.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(j.LogicalExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(R.StringLiteralNode).whenTargetNamed(i.ControlFlowCustomNode.StringLiteralNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(G.StringLiteralControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.BlockStatementDeadCodeInjectionNode).whenTargetNamed(d.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(a.ServiceIdentifiers.ICustomNodeGroup).to(u.ConsoleOutputCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.ConsoleOutputCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(l.DebugProtectionCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.DebugProtectionCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(f.DomainLockCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.DomainLockCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(p.SelfDefendingCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.SelfDefendingCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(m.StringArrayCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.StringArrayCustomNodeGroup),e(a.ServiceIdentifiers.Factory__ICustomNode).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNode)),e(a.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNodeGroup))})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importStar(r(18)),p=r(58),m=r(9),g=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){return!m.NodeGuards.isIdentifierNode(t.id)||this.isProhibitedObjectExpressionNode(e,t.id)?e:this.transformObjectExpressionNode(e,t.id)}},{key:"getHostVariableDeclaratorNode",value:function(e){var t=e.parentNode;if(!t||!m.NodeGuards.isVariableDeclaratorNode(t))throw new Error("Cannot get `VariableDeclarator` node for `ObjectExpression` node");return t}},{key:"getHostVariableDeclarationNode",value:function(e){var t=e.parentNode;if(!t||!m.NodeGuards.isVariableDeclarationNode(t))throw new Error("Cannot get `VariableDeclaration` node for `VariableDeclarator` node");return t}},{key:"isProhibitedObjectExpressionNode",value:function(e,t){var r=this.getHostVariableDeclaratorNode(e),n=this.getHostVariableDeclarationNode(r).declarations,o=n.indexOf(r);if(o===n.length-1)return!1;var a=!1;return n.slice(o).forEach(function(e){f.traverse(e,{enter:function(e){return m.NodeGuards.isMemberExpressionNode(e)&&m.NodeGuards.isIdentifierNode(e.object)&&e.object.name===t.name?(a=!0,f.VisitorOption.Break):e}})}),a}}]),t}(p.AbstractPropertiesExtractor);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],g),t.VariableDeclaratorPropertiesExtractor=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(13),m=r(14),g=r(15),N=r(9),v=d=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Converting:return{leave:function(e,r){if(r&&d.isValidTemplateLiteralNode(e,r))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=e.expressions,n=[];if(e.quasis.forEach(function(e){n.push(g.NodeFactory.literalNode(e.value.cooked));var t=r.shift();t&&n.push(t)}),n=n.filter(function(e){return!(N.NodeGuards.isLiteralNode(e)&&""===e.value)}),d.isLiteralNodeWithStringValue(n[0])||d.isLiteralNodeWithStringValue(n[1])||n.unshift(g.NodeFactory.literalNode("")),n.length>1){var o=g.NodeFactory.binaryExpressionNode("+",n.shift(),n.shift());return n.forEach(function(e){o=g.NodeFactory.binaryExpressionNode("+",o,e)}),o}return n[0]}}],[{key:"isLiteralNodeWithStringValue",value:function(e){return e&&N.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}},{key:"isValidTemplateLiteralNode",value:function(e,t){return N.NodeGuards.isTemplateLiteralNode(e)&&!N.NodeGuards.isTaggedTemplateExpressionNode(t)}}]),t}(m.AbstractNodeTransformer);v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],v),t.TemplateLiteralTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(15),g=r(9),N=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Converting:return{enter:function(e,r){if(r&&g.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return e.properties.forEach(function(e){!e.computed&&e.key&&(e.shorthand&&(e.shorthand=!1),g.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name)))}),e}}]),t}(p.AbstractNodeTransformer);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],N),t.ObjectExpressionTransformer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(23),g=r(59),N=r(13),v=r(14),y=r(9),_=u=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).propertiesExtractorFactory=e,o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;return e!==N.TransformationStage.Converting?null:{enter:function(e,r){if(t.options.transformObjectKeys&&r&&y.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,r)}}}},{key:"transformNode",value:function(e,t){if(!e.properties.length)return e;var r=u.propertiesExtractorsMap.get(t.type);return r?this.propertiesExtractorFactory(r).extract(e,t):e}}]),t}(v.AbstractNodeTransformer);_.propertiesExtractorsMap=new o.default([[m.NodeType.AssignmentExpression,g.PropertiesExtractor.AssignmentExpressionPropertiesExtractor],[m.NodeType.VariableDeclarator,g.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]),_=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IPropertiesExtractor)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ObjectExpressionKeysTransformer=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(13),m=r(14),g=r(15),N=r(9),v=d=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Converting:return{enter:function(e,r){if(r&&N.NodeGuards.isMethodDefinitionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return N.NodeGuards.isIdentifierNode(e.key)&&!d.ignoredNames.includes(e.key.name)&&!1===e.computed&&(e.computed=!0,e.key=g.NodeFactory.literalNode(e.key.name)),e}}]),t}(m.AbstractNodeTransformer);v.ignoredNames=["constructor"],v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],v),t.MethodDefinitionTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(15),g=r(9),N=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Converting:return{enter:function(e,r){if(r&&g.NodeGuards.isMemberExpressionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(g.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}}]),t}(p.AbstractNodeTransformer);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],N),t.MemberExpressionTransformer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(58),p=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var r=t.left;return f.AbstractPropertiesExtractor.isProhibitedPattern(r)?e:this.transformObjectExpressionNode(e,r)}}]),t}(f.AbstractPropertiesExtractor);p=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],p),t.AssignmentExpressionPropertiesExtractor=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(24),a=r(5),i=r(32),s=r(59),c=r(195),d=r(194),u=r(193),l=r(192),f=r(191),p=r(190),m=r(189);t.convertingTransformersModule=new n.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(d.MemberExpressionTransformer).whenTargetNamed(i.NodeTransformer.MemberExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(u.MethodDefinitionTransformer).whenTargetNamed(i.NodeTransformer.MethodDefinitionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.ObjectExpressionKeysTransformer).whenTargetNamed(i.NodeTransformer.ObjectExpressionKeysTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.ObjectExpressionTransformer).whenTargetNamed(i.NodeTransformer.ObjectExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(p.TemplateLiteralTransformer).whenTargetNamed(i.NodeTransformer.TemplateLiteralTransformer),e(a.ServiceIdentifiers.IPropertiesExtractor).to(c.AssignmentExpressionPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.AssignmentExpressionPropertiesExtractor),e(a.ServiceIdentifiers.IPropertiesExtractor).to(m.VariableDeclaratorPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.VariableDeclaratorPropertiesExtractor),e(a.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IPropertiesExtractor))})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(46),g=r(9),N=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){if(g.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if("string"!=typeof e.value||e.value.length<3)return e;var n=String(e.value),o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.StringLiteralNode);o.initialize(e.value);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}},{key:"getControlFlowStorageCallNode",value:function(e,t){var r=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);var n=r.getNode()[0];if(!n||!g.NodeGuards.isExpressionStatementNode(n))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return n.expression}}]),t}(m.AbstractControlFlowReplacer);N.usingExistingIdentifierChance=1,N=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],N),t.StringLiteralControlFlowReplacer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(61),g=r(9),N=r(10),v=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;var n=e.operator,o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.LogicalExpressionFunctionNode);o.initialize(n);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}},{key:"checkForProhibitedExpressions",value:function(e,t){return[e,t].some(function(e){var t;return t=g.NodeGuards.isUnaryExpressionNode(e)?N.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(g.NodeGuards.isLiteralNode(t)||g.NodeGuards.isIdentifierNode(t)||g.NodeGuards.isObjectExpressionNode(t)||g.NodeGuards.isExpressionStatementNode(t))})}}]),t}(m.ExpressionWithOperatorControlFlowReplacer);v.usingExistingIdentifierChance=.5,v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.LogicalExpressionControlFlowReplacer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(31)),i=n(r(17)),s=n(r(1)),c=n(r(3)),d=n(r(8)),u=n(r(7)),l=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var f,p=r(4),m=r(2),g=r(5),N=p.__importStar(r(18)),v=r(22),y=r(62),_=r(23),h=r(13),b=r(14),S=r(27),I=r(9),C=r(19),F=r(10),O=f=function(e){function t(e,r,n,o,c){var l;return(0,s.default)(this,t),(l=(0,d.default)(this,(0,u.default)(t).call(this,o,c))).controlFlowData=new i.default,l.visitedFunctionNodes=new a.default,l.hostNodesWithControlFlowNode=new a.default,l.controlFlowStorageFactory=e,l.controlFlowReplacerFactory=r,l.controlFlowCustomNodeFactory=n,l}return(0,l.default)(t,e),(0,c.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case h.TransformationStage.ControlFlowFlattening:return{leave:function(e,r){if(r&&(I.NodeGuards.isFunctionDeclarationNode(e)||I.NodeGuards.isFunctionExpressionNode(e)||I.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.visitedFunctionNodes.add(e),!I.NodeGuards.isBlockStatementNode(e.body))return e;var r=this.getHostNode(e.body),n=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,n),this.transformFunctionBody(e.body,n),!n.getLength())return e;var o=this.controlFlowCustomNodeFactory(v.ControlFlowCustomNode.ControlFlowStorageNode);return o.initialize(n),S.NodeAppender.prepend(r,o.getNode()),this.hostNodesWithControlFlowNode.add(r),e}},{key:"getControlFlowStorage",value:function(e){var t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&e.body.shift();var r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}},{key:"getHostNode",value:function(e){var t=F.NodeUtils.getBlockScopesOfNode(e);return 1===t.length?e:(t.pop(),t.length>f.hostNodeSearchMinDepth&&t.splice(0,f.hostNodeSearchMinDepth),t.length>f.hostNodeSearchMaxDepth&&(t.length=f.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}},{key:"isVisitedFunctionNode",value:function(e){return(I.NodeGuards.isFunctionDeclarationNode(e)||I.NodeGuards.isFunctionExpressionNode(e)||I.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}},{key:"transformFunctionBody",value:function(e,t){var r=this;N.replace(e,{enter:function(e,n){if(C.NodeMetadata.isIgnoredNode(e))return N.VisitorOption.Skip;if(r.isVisitedFunctionNode(e)||!n)return N.VisitorOption.Skip;if(!f.controlFlowReplacersMap.has(e.type))return e;if(r.randomGenerator.getMathRandom()>r.options.controlFlowFlatteningThreshold)return e;var a=f.controlFlowReplacersMap.get(e.type);return void 0===a?e:(0,o.default)({},r.controlFlowReplacerFactory(a).replace(e,n,t),{parentNode:n})}})}}]),t}(b.AbstractNodeTransformer);O.controlFlowReplacersMap=new i.default([[_.NodeType.BinaryExpression,y.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[_.NodeType.CallExpression,y.ControlFlowReplacer.CallExpressionControlFlowReplacer],[_.NodeType.LogicalExpression,y.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[_.NodeType.Literal,y.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),O.hostNodeSearchMinDepth=0,O.hostNodeSearchMaxDepth=2,O=f=p.__decorate([m.injectable(),p.__param(0,m.inject(g.ServiceIdentifiers.Factory__TControlFlowStorage)),p.__param(1,m.inject(g.ServiceIdentifiers.Factory__IControlFlowReplacer)),p.__param(2,m.inject(g.ServiceIdentifiers.Factory__IControlFlowCustomNode)),p.__param(3,m.inject(g.ServiceIdentifiers.IRandomGenerator)),p.__param(4,m.inject(g.ServiceIdentifiers.IOptions)),p.__metadata("design:paramtypes",[Function,Function,Function,Object,Object])],O),t.FunctionControlFlowTransformer=O},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importStar(r(18)),g=r(60),N=r(32),v=r(23),y=r(13),_=r(14),h=r(15),b=r(9),S=r(10),I=u=function(e){function t(e,r,n,i){var d;return(0,a.default)(this,t),(d=(0,s.default)(this,(0,c.default)(t).call(this,n,i))).deadCodeInjectionRootAstHostNodeSet=new o.default,d.collectedBlockStatements=[],d.collectedBlockStatementsTotalLength=0,d.deadCodeInjectionCustomNodeFactory=e,d.transformersRunner=r,d}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case y.TransformationStage.DeadCodeInjection:return{enter:function(e,r){if(r&&b.NodeGuards.isProgramNode(e))return t.analyzeNode(e,r),e},leave:function(e,r){if(r&&b.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,r)}};case y.TransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:function(e,r){if(r&&t.isDeadCodeInjectionRootAstHostNode(e))return t.restoreNode(e,r)}}:null;default:return null}}},{key:"analyzeNode",value:function(e,t){var r=this;m.traverse(e,{enter:function(e){if(b.NodeGuards.isBlockStatementNode(e)){var t=S.NodeUtils.clone(e);u.isValidCollectedBlockStatementNode(t)&&(S.NodeUtils.parentizeNode(t,t),t=r.makeClonedBlockStatementNodeUnique(t),r.collectedBlockStatements.push(t))}}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}},{key:"transformNode",value:function(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!u.isValidWrappedBlockStatementNode(e))return e;var r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),o=this.collectedBlockStatements.splice(n,1)[0];return o===e?e:this.replaceBlockStatementNode(e,o,t)}},{key:"restoreNode",value:function(e,t){var r=e.body[0];if(!b.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}},{key:"isDeadCodeInjectionRootAstHostNode",value:function(e){return b.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}},{key:"makeClonedBlockStatementNodeUnique",value:function(e){return this.transformersRunner.transform(e,u.transformersToRenameBlockScopeIdentifiers,y.TransformationStage.Obfuscating)}},{key:"replaceBlockStatementNode",value:function(e,t,r){var n=h.NodeFactory.blockStatementNode([h.NodeFactory.functionDeclarationNode(u.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);var o=this.deadCodeInjectionCustomNodeFactory(g.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);o.initialize(e,n);var a=o.getNode()[0];return S.NodeUtils.parentizeNode(a,r),a}}],[{key:"isProhibitedNodeInsideCollectedBlockStatement",value:function(e){return b.NodeGuards.isBreakStatementNode(e)||b.NodeGuards.isContinueStatementNode(e)||b.NodeGuards.isAwaitExpressionNode(e)||b.NodeGuards.isSuperNode(e)}},{key:"isScopeHoistingFunctionDeclaration",value:function(e){if(!b.NodeGuards.isFunctionDeclarationNode(e))return!1;var t=S.NodeUtils.getScopeOfNode(e),r=b.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,n=r.indexOf(e);if(0===n)return!1;var o=r.slice(0,n),a=h.NodeFactory.blockStatementNode(o),i=e.id.name,s=!1;return m.traverse(a,{enter:function(e){if(b.NodeGuards.isIdentifierNode(e)&&e.name===i)return s=!0,m.VisitorOption.Break}}),s}},{key:"isValidCollectedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=0,r=!0;return m.traverse(e,{enter:function(e){if(b.NodeGuards.isBlockStatementNode(e)&&t++,t>u.maxNestedBlockStatementsCount||u.isProhibitedNodeInsideCollectedBlockStatement(e)||u.isScopeHoistingFunctionDeclaration(e))return r=!1,m.VisitorOption.Break}}),r}},{key:"isValidWrappedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=!0;return m.traverse(e,{enter:function(e){if(u.isScopeHoistingFunctionDeclaration(e))return t=!1,m.VisitorOption.Break}}),!!t&&S.NodeUtils.getBlockScopeOfNode(e).type!==v.NodeType.Program}}]),t}(_.AbstractNodeTransformer);I.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",I.maxNestedBlockStatementsCount=4,I.minCollectedBlockStatementsCount=5,I.transformersToRenameBlockScopeIdentifiers=[N.NodeTransformer.CatchClauseTransformer,N.NodeTransformer.ClassDeclarationTransformer,N.NodeTransformer.FunctionDeclarationTransformer,N.NodeTransformer.FunctionTransformer,N.NodeTransformer.LabeledStatementTransformer,N.NodeTransformer.VariableDeclarationTransformer],I=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),l.__param(1,f.inject(p.ServiceIdentifiers.ITransformersRunner)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object,Object])],I),t.DeadCodeInjectionTransformer=I},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(46),g=r(9),N=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){var n=e.callee;if(!g.NodeGuards.isIdentifierNode(n))return e;var o=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.CallExpressionFunctionNode),i=e.arguments;a.initialize(i);var s=this.insertCustomNodeToControlFlowStorage(a,r,o,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),s,n,i)}},{key:"getControlFlowStorageCallNode",value:function(e,t,r,n){var o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);o.initialize(e,t,r,n);var a=o.getNode()[0];if(!a||!g.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}}]),t}(m.AbstractControlFlowReplacer);N.usingExistingIdentifierChance=.5,N=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],N),t.CallExpressionControlFlowReplacer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(22),g=r(13),N=r(14),v=r(9),y=r(10),_=d=function(e){function t(e,r,n,a){var c;return(0,o.default)(this,t),(c=(0,i.default)(this,(0,s.default)(t).call(this,n,a))).controlFlowCustomNodeFactory=e,c.arrayUtils=r,c}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case g.TransformationStage.ControlFlowFlattening:return{leave:function(e,r){if(r&&v.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!d.canTransformBlockStatementNode(e))return e;var r=e.body,n=this.arrayUtils.createWithRange(r.length),o=this.arrayUtils.shuffle(n),a=n.map(function(e){return o.indexOf(e)}),i=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);i.initialize(r,o,a);var s=i.getNode()[0];return y.NodeUtils.parentizeNode(s,t),s}}],[{key:"blockStatementHasProhibitedStatements",value:function(e){return e.body.some(function(e){var t=v.NodeGuards.isBreakStatementNode(e)||v.NodeGuards.isContinueStatementNode(e),r=v.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),n=v.NodeGuards.isClassDeclarationNode(e);return v.NodeGuards.isFunctionDeclarationNode(e)||t||r||n})}},{key:"canTransformBlockStatementNode",value:function(e){var t=!0;return p.traverse(e,{enter:function(e){if(v.NodeGuards.isWhileStatementNode(e))return p.VisitorOption.Skip;v.NodeGuards.isBlockStatementNode(e)&&d.blockStatementHasProhibitedStatements(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}}]),t}(N.AbstractNodeTransformer);_=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IArrayUtils)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],_),t.BlockStatementControlFlowTransformer=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(61),g=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){var n=e.operator,o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.BinaryExpressionFunctionNode);o.initialize(n);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}}]),t}(m.ExpressionWithOperatorControlFlowReplacer);g.usingExistingIdentifierChance=.5,g=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],g),t.BinaryExpressionControlFlowReplacer=g},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(62),s=r(32),c=r(203),d=r(202),u=r(201),l=r(200),f=r(199),p=r(198),m=r(197);t.controlFlowTransformersModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(d.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.DeadCodeInjectionTransformer).whenTargetNamed(s.NodeTransformer.DeadCodeInjectionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(u.CallExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(m.StringLiteralControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(a.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IControlFlowReplacer))})},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=c.__importStar(r(18)),f=r(65),p=r(9),m=r(10),g=s=function(){function e(t){(0,a.default)(this,e),this.calleeDataExtractorFactory=t}return(0,i.default)(e,[{key:"analyze",value:function(e){return this.analyzeRecursive(e.body)}},{key:"analyzeRecursive",value:function(e){for(var t=this,r=s.getLimitIndex(e.length),n=[],o=e.length,a=function(o){if(o>r)return"break";var a=e[o];l.traverse(a,{enter:function(r){if(p.NodeGuards.isCallExpressionNode(r))return a.parentNode!==m.NodeUtils.getBlockScopeOfNode(r)?l.VisitorOption.Skip:void t.analyzeCallExpressionNode(n,e,r)}})},i=0;ir&&(n=Math.round(r+t*s.limitThreshold))>t&&(n=t),n}}]),e}();g.calleeDataExtractorsList=[f.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,f.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,f.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],g.limitThresholdActivationLength=25,g.limitThreshold=.002,g=s=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.Factory__ICalleeDataExtractor)),c.__metadata("design:paramtypes",[Function])],g),t.StackTraceAnalyzer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(44)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=l.__importStar(r(18)),m=r(48),g=r(9),N=r(10),v=u=function(e){function t(){return(0,a.default)(this,t),(0,s.default)(this,(0,c.default)(t).apply(this,arguments))}return(0,d.default)(t,e),(0,i.default)(t,[{key:"extract",value:function(e,t){if(!g.NodeGuards.isMemberExpressionNode(t))return null;var r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;var n=r[r.length-1],o=this.getCalleeBlockStatement(N.NodeUtils.getBlockScopeOfNode(e[0]),r);return o?{callee:o,name:n}:null}},{key:"createObjectMembersCallsChain",value:function(e,t){if(g.NodeGuards.isIdentifierNode(t.property)&&!1===t.computed)e.unshift(t.property.name);else{if(!g.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return g.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(g.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}},{key:"getCalleeBlockStatement",value:function(e,t){var r=this,n=t.shift();if(!n)return null;var o=null;return p.traverse(e,{enter:function(e){if(g.NodeGuards.isVariableDeclaratorNode(e)&&g.NodeGuards.isIdentifierNode(e.id)&&e.init&&g.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===n)return o=r.findCalleeBlockStatement(e.init.properties,t),p.VisitorOption.Break}}),o}},{key:"findCalleeBlockStatement",value:function(e,t){var r=t.shift();if(!r)return null;var n=!0,a=!1,i=void 0;try{for(var s,c=(0,o.default)(e);!(n=(s=c.next()).done);n=!0){var d=s.value;if(u.isValidTargetPropertyNode(d,r)){if(g.NodeGuards.isObjectExpressionNode(d.value))return this.findCalleeBlockStatement(d.value.properties,t);if(g.NodeGuards.isFunctionExpressionNode(d.value))return d.value.body}}}catch(e){a=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(a)throw i}}return null}}],[{key:"isValidTargetPropertyNode",value:function(e,t){if(!e.key)return!1;var r=g.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,n=g.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||n}}]),t}(m.AbstractCalleeDataExtractor);v=u=l.__decorate([f.injectable()],v),t.ObjectExpressionCalleeDataExtractor=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=d.__importStar(r(18)),f=r(48),p=r(9),m=r(10),g=function(e){function t(){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var r=null;return p.NodeGuards.isIdentifierNode(t)&&(r=this.getCalleeBlockStatement(m.NodeUtils.getBlockScopeOfNode(e[0]),t.name)),p.NodeGuards.isFunctionExpressionNode(t)&&(r=t.body),r?{callee:r,name:t.name||null}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var r=null;return l.traverse(e,{enter:function(e,n){if(p.NodeGuards.isFunctionExpressionNode(e)&&n&&p.NodeGuards.isVariableDeclaratorNode(n)&&p.NodeGuards.isIdentifierNode(n.id)&&n.id.name===t)return r=e.body,l.VisitorOption.Break}}),r}}]),t}(f.AbstractCalleeDataExtractor);g=d.__decorate([u.injectable()],g),t.FunctionExpressionCalleeDataExtractor=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=d.__importStar(r(18)),f=r(48),p=r(9),m=r(10),g=function(e){function t(){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){if(!p.NodeGuards.isIdentifierNode(t))return null;var r=this.getCalleeBlockStatement(m.NodeUtils.getBlockScopeOfNode(e[0]),t.name);return r?{callee:r,name:t.name}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var r=null;return l.traverse(e,{enter:function(e){if(p.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,l.VisitorOption.Break}}),r}}]),t}(f.AbstractCalleeDataExtractor);g=d.__decorate([u.injectable()],g),t.FunctionDeclarationCalleeDataExtractor=g},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(65),s=r(208),c=r(207),d=r(206),u=r(205);t.analyzersModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.IStackTraceAnalyzer).to(u.StackTraceAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(s.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionExpressionCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.ICalleeDataExtractor))})},function(e,t){e.exports=require("@babel/runtime/helpers/construct")},function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("multimatch")},function(e,t,r){"use strict";var n=r(0),o=n(r(28)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=r(4),c=s.__importStar(r(211)),d=s.__importStar(r(69)),u=s.__importDefault(r(212)),l=r(66),f=r(70),p=r(67),m=function(){function e(t){(0,a.default)(this,e),this.options=t}return(0,i.default)(e,[{key:"readSourceCode",value:function(t){if(e.isFilePath(t)&&this.isValidFile(t))return this.readFile(t);if(e.isDirectoryPath(t)&&this.isValidDirectory(t))return this.readDirectoryRecursive(t);var r=e.availableInputExtensions.map(function(e){return"`".concat(e,"`")}).join(", ");throw new ReferenceError("Given input path must be a valid ".concat(r," file or directory path"))}},{key:"readDirectoryRecursive",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return c.readdirSync(t,f.JavaScriptObfuscatorCLI.encoding).forEach(function(a){var i="".concat(t,"/").concat(a);if(e.isDirectoryPath(i)&&r.isValidDirectory(i))n.push.apply(n,(0,o.default)(r.readDirectoryRecursive(i)));else if(e.isFilePath(i)&&r.isValidFile(i)){var s=r.readFile(i);n.push({filePath:i,content:s})}}),n}},{key:"readFile",value:function(t){return e.logFilePath(t),c.readFileSync(t,f.JavaScriptObfuscatorCLI.encoding)}},{key:"isValidDirectory",value:function(t){return!e.isExcludedPath(t,this.options.exclude)}},{key:"isValidFile",value:function(t){return e.availableInputExtensions.includes(d.extname(t))&&!t.includes(f.JavaScriptObfuscatorCLI.obfuscatedFilePrefix)&&!e.isExcludedPath(t,this.options.exclude)}}],[{key:"isExcludedPath",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!t.length)return!1;var r=d.basename(e),n=!!u.default([e],t).length;return t.some(function(t){return e.includes(t)||r.includes(t)})||n}},{key:"isDirectoryPath",value:function(e){try{return c.statSync(e).isDirectory()}catch(e){return!1}}},{key:"isFilePath",value:function(e){try{return c.statSync(e).isFile()}catch(e){return!1}}},{key:"logFilePath",value:function(e){var t=d.normalize(e);p.Logger.log(p.Logger.colorInfo,l.LoggingPrefix.CLI,"Obfuscating file: ".concat(t,"..."))}}]),e}();m.availableInputExtensions=[".js"],t.SourceCodeReader=m},function(e,t){function r(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}r.keys=function(){return[]},r.resolve=r,e.exports=r,r.id=214},function(e,t){e.exports=require("mkdirp")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=i.__importStar(r(211)),c=i.__importStar(r(215)),d=i.__importStar(r(69)),u=r(70),l=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"getOutputCodePath",value:function(e){return d.normalize(e).split(".").map(function(e,t){return 0===t?"".concat(e).concat(u.JavaScriptObfuscatorCLI.obfuscatedFilePrefix):e}).join(".")}},{key:"getOutputSourceMapPath",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return t&&(e="".concat(e.substring(0,e.lastIndexOf("/")),"/").concat(t)),/\.js\.map$/.test(e)?/\.js$/.test(e)&&(e+=".map"):e="".concat(e.split(".")[0],".js.map"),e}},{key:"getUserConfig",value:function(e){var t;try{t=r(214)(e)}catch(r){try{t=require(e)}catch(e){throw new ReferenceError("Given config path must be a valid `.js` or `.json` file path")}}return t}},{key:"writeFile",value:function(e,t){c.sync(d.dirname(e)),s.writeFileSync(e,t,{encoding:u.JavaScriptObfuscatorCLI.encoding})}}]),e}();t.CLIUtils=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(37);t.StringArrayEncodingSanitizer=function(e){switch(e){case"true":case"1":case n.StringArrayEncoding.Base64:return!0;case n.StringArrayEncoding.Rc4:return n.StringArrayEncoding.Rc4;default:return!1}}},function(e,t,r){"use strict";var n=r(0)(r(35));Object.defineProperty(t,"__esModule",{value:!0});var o=r(38);t.SourceMapModeSanitizer=function(e){if(!(0,n.default)(o.SourceMapMode).some(function(t){return o.SourceMapMode[t]===e}))throw new ReferenceError("Invalid value of `--source-map-mode` option");return e}},function(e,t,r){"use strict";var n=r(0)(r(35));Object.defineProperty(t,"__esModule",{value:!0});var o=r(25);t.ObfuscationTargetSanitizer=function(e){if(!(0,n.default)(o.ObfuscationTarget).some(function(t){return o.ObfuscationTarget[t]===e}))throw new ReferenceError("Invalid value of `--target` option");return e}},function(e,t,r){"use strict";var n=r(0)(r(35));Object.defineProperty(t,"__esModule",{value:!0});var o=r(39);t.IdentifierNamesGeneratorSanitizer=function(e){if(!(0,n.default)(o.IdentifierNamesGenerator).some(function(t){return o.IdentifierNamesGenerator[t]===e}))throw new ReferenceError("Invalid value of `--identifier-names-generator` option");return e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanSanitizer=function(e){return"true"===e||"1"===e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArraySanitizer=function(e){if(/,$/.test(e))throw new SyntaxError("Multiple values should be wrapped inside quotes: --option-name 'value1, value2'");return e.split(",").map(function(e){return e.trim()})}},function(e,t){e.exports=require("commander")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0}),r(68);var i=r(70),s=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"obfuscate",value:function(e){var t=new i.JavaScriptObfuscatorCLI(e);t.initialize(),t.run()}}]),e}();t.JavaScriptObfuscatorCLI=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(224);e.exports=n.JavaScriptObfuscatorCLI}]); + +require("source-map-support").install(); + + +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./index.cli.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./index.cli.ts": +/*!**********************!*\ + !*** ./index.cli.ts ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var JavaScriptObfuscatorCLIFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorCLIFacade */ "./src/JavaScriptObfuscatorCLIFacade.ts"); + +module.exports = JavaScriptObfuscatorCLIFacade_1.JavaScriptObfuscatorCLI; + +/***/ }), + +/***/ "./src/EspreeFacade.ts": +/*!*****************************!*\ + !*** ./src/EspreeFacade.ts ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree")); + +var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk")); + +var EspreeFacade = +/*#__PURE__*/ +function () { + function EspreeFacade() { + (0, _classCallCheck2.default)(this, EspreeFacade); + } + + (0, _createClass2.default)(EspreeFacade, null, [{ + key: "parse", + value: function parse(input, config) { + var sourceTypeLength = EspreeFacade.sourceTypes.length; + + for (var i = 0; i < sourceTypeLength; i++) { + try { + return EspreeFacade.parseType(input, config, EspreeFacade.sourceTypes[i]); + } catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + + throw new Error(EspreeFacade.processParsingError(input, error.message, { + line: error.lineNumber, + column: error.column + })); + } + } + + throw new Error("Espree parsing error"); + } + }, { + key: "parseType", + value: function parseType(input, inputConfig, sourceType) { + var config = (0, _assign.default)({}, inputConfig, { + sourceType: sourceType + }); + return espree.parse(input, config); + } + }, { + key: "processParsingError", + value: function processParsingError(sourceCode, errorMessage, position) { + if (!position || !position.line || !position.column) { + throw new Error(errorMessage); + } + + var sourceCodeLines = sourceCode.split(/\r?\n/); + var errorLine = sourceCodeLines[position.line - 1]; + + if (!errorLine) { + throw new Error(errorMessage); + } + + var startErrorIndex = Math.max(0, position.column - EspreeFacade.nearestSymbolsCount); + var endErrorIndex = Math.min(errorLine.length, position.column + EspreeFacade.nearestSymbolsCount); + var formattedPointer = EspreeFacade.colorError('>'); + var formattedCodeSlice = "...".concat(errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, ''), "..."); + throw new Error("Line ".concat(position.line, ": ").concat(errorMessage, "\n").concat(formattedPointer, " ").concat(formattedCodeSlice)); + } + }]); + return EspreeFacade; +}(); + +EspreeFacade.colorError = chalk_1.default.red; +EspreeFacade.nearestSymbolsCount = 15; +EspreeFacade.sourceTypes = ['script', 'module']; +exports.EspreeFacade = EspreeFacade; + +/***/ }), + +/***/ "./src/JavaScriptObfuscator.ts": +/*!*************************************!*\ + !*** ./src/JavaScriptObfuscator.ts ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var JavaScriptObfuscator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var EspreeFacade_1 = __webpack_require__(/*! ./EspreeFacade */ "./src/EspreeFacade.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var JavaScriptObfuscator = JavaScriptObfuscator_1 = +/*#__PURE__*/ +function () { + function JavaScriptObfuscator(transformersRunner, sourceMapCorrector, randomGenerator, logger, options) { + (0, _classCallCheck2.default)(this, JavaScriptObfuscator); + this.transformersRunner = transformersRunner; + this.sourceMapCorrector = sourceMapCorrector; + this.randomGenerator = randomGenerator; + this.logger = logger; + this.options = options; + } + + (0, _createClass2.default)(JavaScriptObfuscator, [{ + key: "obfuscate", + value: function obfuscate(sourceCode) { + var timeStart = Date.now(); + this.logger.info(LoggingMessage_1.LoggingMessage.Version, "0.17.0"); + this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted); + this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getSeed()); + var astTree = this.parseCode(sourceCode); + var obfuscatedAstTree = this.transformAstTree(astTree); + var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree); + var obfuscationTime = (Date.now() - timeStart) / 1000; + this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime); + return this.getObfuscationResult(generatorOutput); + } + }, { + key: "parseCode", + value: function parseCode(sourceCode) { + return EspreeFacade_1.EspreeFacade.parse(sourceCode, JavaScriptObfuscator_1.espreeParseOptions); + } + }, { + key: "transformAstTree", + value: function transformAstTree(astTree) { + var isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) && !astTree.body.length && !astTree.leadingComments && !astTree.trailingComments; + + if (isEmptyAstTree) { + this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode); + return astTree; + } + + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Preparing); + + if (this.options.deadCodeInjection) { + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.DeadCodeInjection); + } + + if (this.options.controlFlowFlattening) { + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.ControlFlowFlattening); + } + + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Converting); + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Obfuscating); + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Finalizing); + return astTree; + } + }, { + key: "generateCode", + value: function generateCode(sourceCode, astTree) { + var escodegenParams = (0, _assign.default)({}, JavaScriptObfuscator_1.escodegenParams); + + if (this.options.sourceMap) { + escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap'; + escodegenParams.sourceContent = sourceCode; + } + + var generatorOutput = escodegen.generate(astTree, (0, _assign.default)({}, escodegenParams, { + format: { + compact: this.options.compact + } + })); + generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : ''; + return generatorOutput; + } + }, { + key: "getObfuscationResult", + value: function getObfuscationResult(generatorOutput) { + return this.sourceMapCorrector.correct(generatorOutput.code, generatorOutput.map); + } + }, { + key: "runTransformationStage", + value: function runTransformationStage(astTree, transformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.TransformationStage, transformationStage); + return this.transformersRunner.transform(astTree, JavaScriptObfuscator_1.transformersList, transformationStage); + } + }]); + return JavaScriptObfuscator; +}(); + +JavaScriptObfuscator.espreeParseOptions = { + attachComment: true, + comment: true, + ecmaFeatures: { + experimentalObjectRestSpread: true + }, + ecmaVersion: 9, + loc: true, + range: true +}; +JavaScriptObfuscator.escodegenParams = { + comment: true, + verbatim: 'x-verbatim-property', + sourceMapWithCode: true +}; +JavaScriptObfuscator.transformersList = [NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.CommentsTransformer, NodeTransformer_1.NodeTransformer.CustomNodesTransformer, NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.LiteralTransformer, NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, NodeTransformer_1.NodeTransformer.MetadataTransformer, NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, NodeTransformer_1.NodeTransformer.ParentificationTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer]; +JavaScriptObfuscator = JavaScriptObfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], JavaScriptObfuscator); +exports.JavaScriptObfuscator = JavaScriptObfuscator; + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorCLIFacade.ts": +/*!**********************************************!*\ + !*** ./src/JavaScriptObfuscatorCLIFacade.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); + +var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ./cli/JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); + +var JavaScriptObfuscatorCLIFacade = +/*#__PURE__*/ +function () { + function JavaScriptObfuscatorCLIFacade() { + (0, _classCallCheck2.default)(this, JavaScriptObfuscatorCLIFacade); + } + + (0, _createClass2.default)(JavaScriptObfuscatorCLIFacade, null, [{ + key: "obfuscate", + value: function obfuscate(argv) { + var javaScriptObfuscatorCLI = new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv); + javaScriptObfuscatorCLI.initialize(); + javaScriptObfuscatorCLI.run(); + } + }]); + return JavaScriptObfuscatorCLIFacade; +}(); + +exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLIFacade; + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorFacade.ts": +/*!*******************************************!*\ + !*** ./src/JavaScriptObfuscatorFacade.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var JavaScriptObfuscatorFacade = +/*#__PURE__*/ +function () { + function JavaScriptObfuscatorFacade() { + (0, _classCallCheck2.default)(this, JavaScriptObfuscatorFacade); + } + + (0, _createClass2.default)(JavaScriptObfuscatorFacade, null, [{ + key: "obfuscate", + value: function obfuscate(sourceCode) { + var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade(); + inversifyContainerFacade.load(sourceCode, inputOptions); + var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator); + var obfuscationResult = javaScriptObfuscator.obfuscate(sourceCode); + inversifyContainerFacade.unload(); + return obfuscationResult; + } + }]); + return JavaScriptObfuscatorFacade; +}(); + +JavaScriptObfuscatorFacade.version = "0.17.0" || 'unknown'; +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; + +/***/ }), + +/***/ "./src/ObfuscationResult.ts": +/*!**********************************!*\ + !*** ./src/ObfuscationResult.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var Initializable_1 = __webpack_require__(/*! ./decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var ObfuscationResult = +/*#__PURE__*/ +function () { + function ObfuscationResult() { + (0, _classCallCheck2.default)(this, ObfuscationResult); + } + + (0, _createClass2.default)(ObfuscationResult, [{ + key: "initialize", + value: function initialize(obfuscatedCode, sourceMap) { + this.obfuscatedCode = obfuscatedCode; + this.sourceMap = sourceMap; + } + }, { + key: "getObfuscatedCode", + value: function getObfuscatedCode() { + return this.obfuscatedCode; + } + }, { + key: "getSourceMap", + value: function getSourceMap() { + return this.sourceMap; + } + }, { + key: "toString", + value: function toString() { + return this.obfuscatedCode; + } + }]); + return ObfuscationResult; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "obfuscatedCode", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "sourceMap", void 0); + +ObfuscationResult = tslib_1.__decorate([inversify_1.injectable()], ObfuscationResult); +exports.ObfuscationResult = ObfuscationResult; + +/***/ }), + +/***/ "./src/SourceCode.ts": +/*!***************************!*\ + !*** ./src/SourceCode.ts ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var SourceCode = +/*#__PURE__*/ +function () { + function SourceCode(sourceCode) { + (0, _classCallCheck2.default)(this, SourceCode); + this.sourceCode = sourceCode; + } + + (0, _createClass2.default)(SourceCode, [{ + key: "getSourceCode", + value: function getSourceCode() { + return this.sourceCode; + } + }]); + return SourceCode; +}(); + +exports.SourceCode = SourceCode; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StackTraceAnalyzer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StackTraceAnalyzer = StackTraceAnalyzer_1 = +/*#__PURE__*/ +function () { + function StackTraceAnalyzer(calleeDataExtractorFactory) { + (0, _classCallCheck2.default)(this, StackTraceAnalyzer); + this.calleeDataExtractorFactory = calleeDataExtractorFactory; + } + + (0, _createClass2.default)(StackTraceAnalyzer, [{ + key: "analyze", + value: function analyze(astTree) { + return this.analyzeRecursive(astTree.body); + } + }, { + key: "analyzeRecursive", + value: function analyzeRecursive(blockScopeBody) { + var _this = this; + + var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length); + var stackTraceData = []; + var blockScopeBodyLength = blockScopeBody.length; + + var _loop = function _loop(index) { + if (index > limitIndex) { + return "break"; + } + + var blockScopeBodyNode = blockScopeBody[index]; + estraverse.traverse(blockScopeBodyNode, { + enter: function enter(node) { + if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) { + return; + } + + if (blockScopeBodyNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopeOfNode(node)) { + return estraverse.VisitorOption.Skip; + } + + _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node); + } + }); + }; + + for (var index = 0; index < blockScopeBodyLength; index++) { + var _ret = _loop(index); + + if (_ret === "break") break; + } + + return stackTraceData; + } + }, { + key: "analyzeCallExpressionNode", + value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) { + var _this2 = this; + + StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) { + var calleeData = _this2.calleeDataExtractorFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee); + + if (!calleeData) { + return; + } + + stackTraceData.push((0, _assign.default)({}, calleeData, { + stackTrace: _this2.analyzeRecursive(calleeData.callee.body) + })); + }); + } + }], [{ + key: "getLimitIndex", + value: function getLimitIndex(blockScopeBodyLength) { + var lastIndex = blockScopeBodyLength - 1; + var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1; + var limitIndex = lastIndex; + + if (lastIndex > limitThresholdActivationIndex) { + limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold); + + if (limitIndex > lastIndex) { + limitIndex = lastIndex; + } + } + + return limitIndex; + } + }]); + return StackTraceAnalyzer; +}(); + +StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor]; +StackTraceAnalyzer.limitThresholdActivationLength = 25; +StackTraceAnalyzer.limitThreshold = 0.002; +StackTraceAnalyzer = StackTraceAnalyzer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)), tslib_1.__metadata("design:paramtypes", [Function])], StackTraceAnalyzer); +exports.StackTraceAnalyzer = StackTraceAnalyzer; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, AbstractCalleeDataExtractor); +}; + +AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], AbstractCalleeDataExtractor); +exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionDeclarationCalleeDataExtractor = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx); + + function FunctionDeclarationCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, FunctionDeclarationCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionDeclarationCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(FunctionDeclarationCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return null; + } + + var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), callee.name); + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: callee.name + }; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, name) { + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }]); + return FunctionDeclarationCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionDeclarationCalleeDataExtractor); +exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionExpressionCalleeDataExtractor = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx); + + function FunctionExpressionCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, FunctionExpressionCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionExpressionCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(FunctionExpressionCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + var calleeBlockStatement = null; + + if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), callee.name); + } + + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) { + calleeBlockStatement = callee.body; + } + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: callee.name || null + }; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, name) { + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node, parentNode) { + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && parentNode && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && parentNode.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }]); + return FunctionExpressionCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionExpressionCalleeDataExtractor); +exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObjectExpressionCalleeDataExtractor_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx); + + function ObjectExpressionCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, ObjectExpressionCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(ObjectExpressionCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) { + return null; + } + + var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee); + + if (!objectMembersCallsChain.length) { + return null; + } + + var functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1]; + var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), objectMembersCallsChain); + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: functionExpressionName + }; + } + }, { + key: "createObjectMembersCallsChain", + value: function createObjectMembersCallsChain(currentChain, memberExpression) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { + currentChain.unshift(memberExpression.property.name); + } else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) { + currentChain.unshift(memberExpression.property.value); + } else { + return currentChain; + } + + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) { + return this.createObjectMembersCallsChain(currentChain, memberExpression.object); + } else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) { + currentChain.unshift(memberExpression.object.name); + } + + return currentChain; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, objectMembersCallsChain) { + var _this = this; + + var objectName = objectMembersCallsChain.shift(); + + if (!objectName) { + return null; + } + + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && node.init && NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && node.id.name === objectName) { + calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }, { + key: "findCalleeBlockStatement", + value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) { + var nextItemInCallsChain = objectMembersCallsChain.shift(); + + if (!nextItemInCallsChain) { + return null; + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(objectExpressionProperties), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var propertyNode = _step.value; + + if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) { + continue; + } + + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) { + return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); + } + + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) { + return propertyNode.value.body; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + }], [{ + key: "isValidTargetPropertyNode", + value: function isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) { + if (!propertyNode.key) { + return false; + } + + var isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + var isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain; + return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey; + } + }]); + return ObjectExpressionCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = tslib_1.__decorate([inversify_1.injectable()], ObjectExpressionCalleeDataExtractor); +exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor; + +/***/ }), + +/***/ "./src/cli/JavaScriptObfuscatorCLI.ts": +/*!********************************************!*\ + !*** ./src/cli/JavaScriptObfuscatorCLI.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var commander = tslib_1.__importStar(__webpack_require__(/*! commander */ "commander")); + +var path = tslib_1.__importStar(__webpack_require__(/*! path */ "path")); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var Default_1 = __webpack_require__(/*! ../options/presets/Default */ "./src/options/presets/Default.ts"); + +var ArraySanitizer_1 = __webpack_require__(/*! ./sanitizers/ArraySanitizer */ "./src/cli/sanitizers/ArraySanitizer.ts"); + +var BooleanSanitizer_1 = __webpack_require__(/*! ./sanitizers/BooleanSanitizer */ "./src/cli/sanitizers/BooleanSanitizer.ts"); + +var IdentifierNamesGeneratorSanitizer_1 = __webpack_require__(/*! ./sanitizers/IdentifierNamesGeneratorSanitizer */ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts"); + +var ObfuscatingTargetSanitizer_1 = __webpack_require__(/*! ./sanitizers/ObfuscatingTargetSanitizer */ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts"); + +var SourceMapModeSanitizer_1 = __webpack_require__(/*! ./sanitizers/SourceMapModeSanitizer */ "./src/cli/sanitizers/SourceMapModeSanitizer.ts"); + +var StringArrayEncodingSanitizer_1 = __webpack_require__(/*! ./sanitizers/StringArrayEncodingSanitizer */ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts"); + +var CLIUtils_1 = __webpack_require__(/*! ./utils/CLIUtils */ "./src/cli/utils/CLIUtils.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var SourceCodeReader_1 = __webpack_require__(/*! ./utils/SourceCodeReader */ "./src/cli/utils/SourceCodeReader.ts"); + +var JavaScriptObfuscatorCLI = +/*#__PURE__*/ +function () { + function JavaScriptObfuscatorCLI(argv) { + (0, _classCallCheck2.default)(this, JavaScriptObfuscatorCLI); + this.rawArguments = argv; + this.arguments = argv.slice(2); + } + + (0, _createClass2.default)(JavaScriptObfuscatorCLI, [{ + key: "initialize", + value: function initialize() { + this.inputPath = path.normalize(this.arguments[0] || ''); + this.commands = new commander.Command(); + this.configureCommands(); + this.configureHelp(); + this.inputCLIOptions = this.commands.opts(); + } + }, { + key: "run", + value: function run() { + var canShowHelp = !this.arguments.length || this.arguments.includes('--help'); + + if (canShowHelp) { + this.commands.outputHelp(); + return; + } + + var sourceCodeData = new SourceCodeReader_1.SourceCodeReader(this.inputCLIOptions).readSourceCode(this.inputPath); + this.processSourceCodeData(sourceCodeData); + } + }, { + key: "buildOptions", + value: function buildOptions() { + var inputCLIOptions = JavaScriptObfuscatorCLI.filterOptions(this.inputCLIOptions); + var configFilePath = this.inputCLIOptions.config; + var configFileLocation = configFilePath ? path.resolve(configFilePath, '.') : ''; + var configFileOptions = configFileLocation ? CLIUtils_1.CLIUtils.getUserConfig(configFileLocation) : {}; + var inputFileName = path.basename(this.inputPath); + return (0, _assign.default)({}, Default_1.DEFAULT_PRESET, configFileOptions, inputCLIOptions, { + inputFileName: inputFileName + }); + } + }, { + key: "configureCommands", + value: function configureCommands() { + this.commands.usage(' [options]').version("0.17.0" || 'unknown', '-v, --version').option('-o, --output ', 'Output path for obfuscated code').option('--compact ', 'Disable one line output code compacting', BooleanSanitizer_1.BooleanSanitizer).option('--config ', 'Name of js / json config file').option('--control-flow-flattening ', 'Enables control flow flattening', BooleanSanitizer_1.BooleanSanitizer).option('--control-flow-flattening-threshold ', 'The probability that the control flow flattening transformation will be applied to the node', parseFloat).option('--dead-code-injection ', 'Enables dead code injection', BooleanSanitizer_1.BooleanSanitizer).option('--dead-code-injection-threshold ', 'The probability that the dead code injection transformation will be applied to the node', parseFloat).option('--debug-protection ', 'Disable browser Debug panel (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer).option('--debug-protection-interval ', 'Disable browser Debug panel even after page was loaded (can cause DevTools enabled browser freeze)', BooleanSanitizer_1.BooleanSanitizer).option('--disable-console-output ', 'Allow console.log, console.info, console.error and console.warn messages output into browser console', BooleanSanitizer_1.BooleanSanitizer).option('--domain-lock (comma separated, without whitespaces)', 'Blocks the execution of the code in domains that do not match the passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer).option('--exclude (comma separated, without whitespaces)', 'A filename or glob which indicates files to exclude from obfuscation', ArraySanitizer_1.ArraySanitizer).option('--identifier-names-generator ', 'Sets identifier names generator. ' + 'Values: hexadecimal, mangled. ' + 'Default: hexadecimal', IdentifierNamesGeneratorSanitizer_1.IdentifierNamesGeneratorSanitizer).option('--identifiers-prefix ', 'Sets prefix for all global identifiers.').option('--log ', 'Enables logging of the information to the console', BooleanSanitizer_1.BooleanSanitizer).option('--reserved-names (comma separated, without whitespaces)', 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)', ArraySanitizer_1.ArraySanitizer).option('--rename-globals ', 'Allows to enable obfuscation of global variable and function names with declaration.', BooleanSanitizer_1.BooleanSanitizer).option('--rotate-string-array ', 'Disable rotation of unicode array values during obfuscation', BooleanSanitizer_1.BooleanSanitizer).option('--seed ', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat).option('--self-defending ', 'Disables self-defending for obfuscated code', BooleanSanitizer_1.BooleanSanitizer).option('--source-map ', 'Enables source map generation', BooleanSanitizer_1.BooleanSanitizer).option('--source-map-base-url ', 'Sets base url to the source map import url when `--source-map-mode=separate`').option('--source-map-file-name ', 'Sets file name for output source map when `--source-map-mode=separate`').option('--source-map-mode ', 'Specify source map output mode. ' + 'Values: inline, separate. ' + 'Default: separate', SourceMapModeSanitizer_1.SourceMapModeSanitizer).option('--string-array ', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', BooleanSanitizer_1.BooleanSanitizer).option('--string-array-encoding ', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed. ' + 'Values: true, false, base64, rc4. ' + 'Default: false', StringArrayEncodingSanitizer_1.StringArrayEncodingSanitizer).option('--string-array-threshold ', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat).option('--target ', 'Allows to set target environment for obfuscated code. ' + 'Values: browser, browser-no-eval, node. ' + 'Default: browser', ObfuscatingTargetSanitizer_1.ObfuscationTargetSanitizer).option('--transform-object-keys ', 'Enables transformation of object keys', BooleanSanitizer_1.BooleanSanitizer).option('--unicode-escape-sequence ', 'Allows to enable/disable string conversion to unicode escape sequence', BooleanSanitizer_1.BooleanSanitizer).parse(this.rawArguments); + } + }, { + key: "configureHelp", + value: function configureHelp() { + this.commands.on('--help', function () { + console.log(' Examples:\n'); + console.log(' %> javascript-obfuscator input_file_name.js --compact true --self-defending false'); + console.log(' %> javascript-obfuscator input_file_name.js --output output_file_name.js --compact true --self-defending false'); + console.log(' %> javascript-obfuscator input_directory_name --compact true --self-defending false'); + console.log(''); + }); + } + }, { + key: "processSourceCodeData", + value: function processSourceCodeData(sourceCodeData) { + var _this = this; + + var outputPath = this.inputCLIOptions.output ? path.normalize(this.inputCLIOptions.output) : ''; + + if (!Array.isArray(sourceCodeData)) { + var outputCodePath = outputPath || CLIUtils_1.CLIUtils.getOutputCodePath(this.inputPath); + this.processSourceCode(sourceCodeData, outputCodePath, null); + } else { + sourceCodeData.forEach(function (_ref, index) { + var filePath = _ref.filePath, + content = _ref.content; + var outputCodePath = outputPath ? path.join(outputPath, filePath) : CLIUtils_1.CLIUtils.getOutputCodePath(filePath); + + _this.processSourceCode(content, outputCodePath, index); + }); + } + } + }, { + key: "processSourceCode", + value: function processSourceCode(sourceCode, outputCodePath, sourceCodeIndex) { + var options = this.buildOptions(); + + if (sourceCodeIndex !== null) { + var baseIdentifiersPrefix = this.inputCLIOptions.identifiersPrefix || JavaScriptObfuscatorCLI.baseIdentifiersPrefix; + var identifiersPrefix = "".concat(baseIdentifiersPrefix).concat(sourceCodeIndex); + options = (0, _assign.default)({}, options, { + identifiersPrefix: identifiersPrefix + }); + } + + if (options.sourceMap) { + JavaScriptObfuscatorCLI.processSourceCodeWithSourceMap(sourceCode, outputCodePath, options); + } else { + JavaScriptObfuscatorCLI.processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options); + } + } + }], [{ + key: "filterOptions", + value: function filterOptions(options) { + var filteredOptions = {}; + (0, _keys.default)(options).forEach(function (option) { + if (options[option] === undefined) { + return; + } + + filteredOptions[option] = options[option]; + }); + return filteredOptions; + } + }, { + key: "processSourceCodeWithoutSourceMap", + value: function processSourceCodeWithoutSourceMap(sourceCode, outputCodePath, options) { + var obfuscatedCode = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options).getObfuscatedCode(); + CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscatedCode); + } + }, { + key: "processSourceCodeWithSourceMap", + value: function processSourceCodeWithSourceMap(sourceCode, outputCodePath, options) { + var outputSourceMapPath = CLIUtils_1.CLIUtils.getOutputSourceMapPath(outputCodePath, options.sourceMapFileName || ''); + options = (0, _assign.default)({}, options, { + sourceMapFileName: path.basename(outputSourceMapPath) + }); + var obfuscationResult = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(sourceCode, options); + CLIUtils_1.CLIUtils.writeFile(outputCodePath, obfuscationResult.getObfuscatedCode()); + + if (options.sourceMapMode === 'separate' && obfuscationResult.getSourceMap()) { + CLIUtils_1.CLIUtils.writeFile(outputSourceMapPath, obfuscationResult.getSourceMap()); + } + } + }]); + return JavaScriptObfuscatorCLI; +}(); + +JavaScriptObfuscatorCLI.encoding = 'utf8'; +JavaScriptObfuscatorCLI.obfuscatedFilePrefix = '-obfuscated'; +JavaScriptObfuscatorCLI.baseIdentifiersPrefix = 'a'; + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], JavaScriptObfuscatorCLI.prototype, "commands", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], JavaScriptObfuscatorCLI.prototype, "inputCLIOptions", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], JavaScriptObfuscatorCLI.prototype, "inputPath", void 0); + +exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI; + +/***/ }), + +/***/ "./src/cli/sanitizers/ArraySanitizer.ts": +/*!**********************************************!*\ + !*** ./src/cli/sanitizers/ArraySanitizer.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.ArraySanitizer = function (value) { + if (/,$/.test(value)) { + throw new SyntaxError("Multiple values should be wrapped inside quotes: --option-name 'value1, value2'"); + } + + return value.split(',').map(function (string) { + return string.trim(); + }); +}; + +/***/ }), + +/***/ "./src/cli/sanitizers/BooleanSanitizer.ts": +/*!************************************************!*\ + !*** ./src/cli/sanitizers/BooleanSanitizer.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.BooleanSanitizer = function (value) { + return value === 'true' || value === '1'; +}; + +/***/ }), + +/***/ "./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts": +/*!*****************************************************************!*\ + !*** ./src/cli/sanitizers/IdentifierNamesGeneratorSanitizer.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +exports.IdentifierNamesGeneratorSanitizer = function (value) { + var isCorrectIdentifierNamesGenerator = (0, _keys.default)(IdentifierNamesGenerator_1.IdentifierNamesGenerator).some(function (key) { + return IdentifierNamesGenerator_1.IdentifierNamesGenerator[key] === value; + }); + + if (!isCorrectIdentifierNamesGenerator) { + throw new ReferenceError('Invalid value of `--identifier-names-generator` option'); + } + + return value; +}; + +/***/ }), + +/***/ "./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts": +/*!**********************************************************!*\ + !*** ./src/cli/sanitizers/ObfuscatingTargetSanitizer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +exports.ObfuscationTargetSanitizer = function (value) { + var isCorrectTarget = (0, _keys.default)(ObfuscationTarget_1.ObfuscationTarget).some(function (key) { + return ObfuscationTarget_1.ObfuscationTarget[key] === value; + }); + + if (!isCorrectTarget) { + throw new ReferenceError('Invalid value of `--target` option'); + } + + return value; +}; + +/***/ }), + +/***/ "./src/cli/sanitizers/SourceMapModeSanitizer.ts": +/*!******************************************************!*\ + !*** ./src/cli/sanitizers/SourceMapModeSanitizer.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +exports.SourceMapModeSanitizer = function (value) { + var isCorrectSourceMapMode = (0, _keys.default)(SourceMapMode_1.SourceMapMode).some(function (key) { + return SourceMapMode_1.SourceMapMode[key] === value; + }); + + if (!isCorrectSourceMapMode) { + throw new ReferenceError('Invalid value of `--source-map-mode` option'); + } + + return value; +}; + +/***/ }), + +/***/ "./src/cli/sanitizers/StringArrayEncodingSanitizer.ts": +/*!************************************************************!*\ + !*** ./src/cli/sanitizers/StringArrayEncodingSanitizer.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +exports.StringArrayEncodingSanitizer = function (value) { + switch (value) { + case 'true': + case '1': + case StringArrayEncoding_1.StringArrayEncoding.Base64: + return true; + + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + return StringArrayEncoding_1.StringArrayEncoding.Rc4; + + default: + return false; + } +}; + +/***/ }), + +/***/ "./src/cli/utils sync recursive": +/*!****************************!*\ + !*** ./src/cli/utils sync ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function webpackEmptyContext(req) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; +} +webpackEmptyContext.keys = function() { return []; }; +webpackEmptyContext.resolve = webpackEmptyContext; +module.exports = webpackEmptyContext; +webpackEmptyContext.id = "./src/cli/utils sync recursive"; + +/***/ }), + +/***/ "./src/cli/utils/CLIUtils.ts": +/*!***********************************!*\ + !*** ./src/cli/utils/CLIUtils.ts ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var fs = tslib_1.__importStar(__webpack_require__(/*! fs */ "fs")); + +var mkdirp = tslib_1.__importStar(__webpack_require__(/*! mkdirp */ "mkdirp")); + +var path = tslib_1.__importStar(__webpack_require__(/*! path */ "path")); + +var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); + +var CLIUtils = +/*#__PURE__*/ +function () { + function CLIUtils() { + (0, _classCallCheck2.default)(this, CLIUtils); + } + + (0, _createClass2.default)(CLIUtils, null, [{ + key: "getOutputCodePath", + value: function getOutputCodePath(inputPath) { + return path.normalize(inputPath).split('.').map(function (value, index) { + return index === 0 ? "".concat(value).concat(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix) : value; + }).join('.'); + } + }, { + key: "getOutputSourceMapPath", + value: function getOutputSourceMapPath(outputCodePath) { + var sourceMapFileName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + if (sourceMapFileName) { + outputCodePath = "".concat(outputCodePath.substring(0, outputCodePath.lastIndexOf('/')), "/").concat(sourceMapFileName); + } + + if (!/\.js\.map$/.test(outputCodePath)) { + outputCodePath = "".concat(outputCodePath.split('.')[0], ".js.map"); + } else if (/\.js$/.test(outputCodePath)) { + outputCodePath += '.map'; + } + + return outputCodePath; + } + }, { + key: "getUserConfig", + value: function getUserConfig(configPath) { + var config; + + try { + config = __webpack_require__("./src/cli/utils sync recursive")(configPath); + } catch (_a) { + try { + config = require(configPath); + } catch (_b) { + throw new ReferenceError('Given config path must be a valid `.js` or `.json` file path'); + } + } + + return config; + } + }, { + key: "writeFile", + value: function writeFile(outputPath, data) { + mkdirp.sync(path.dirname(outputPath)); + fs.writeFileSync(outputPath, data, { + encoding: JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding + }); + } + }]); + return CLIUtils; +}(); + +exports.CLIUtils = CLIUtils; + +/***/ }), + +/***/ "./src/cli/utils/SourceCodeReader.ts": +/*!*******************************************!*\ + !*** ./src/cli/utils/SourceCodeReader.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var fs = tslib_1.__importStar(__webpack_require__(/*! fs */ "fs")); + +var path = tslib_1.__importStar(__webpack_require__(/*! path */ "path")); + +var multimatch_1 = tslib_1.__importDefault(__webpack_require__(/*! multimatch */ "multimatch")); + +var LoggingPrefix_1 = __webpack_require__(/*! ../../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); + +var JavaScriptObfuscatorCLI_1 = __webpack_require__(/*! ../JavaScriptObfuscatorCLI */ "./src/cli/JavaScriptObfuscatorCLI.ts"); + +var Logger_1 = __webpack_require__(/*! ../../logger/Logger */ "./src/logger/Logger.ts"); + +var SourceCodeReader = +/*#__PURE__*/ +function () { + function SourceCodeReader(options) { + (0, _classCallCheck2.default)(this, SourceCodeReader); + this.options = options; + } + + (0, _createClass2.default)(SourceCodeReader, [{ + key: "readSourceCode", + value: function readSourceCode(inputPath) { + if (SourceCodeReader.isFilePath(inputPath) && this.isValidFile(inputPath)) { + return this.readFile(inputPath); + } + + if (SourceCodeReader.isDirectoryPath(inputPath) && this.isValidDirectory(inputPath)) { + return this.readDirectoryRecursive(inputPath); + } + + var availableFilePaths = SourceCodeReader.availableInputExtensions.map(function (extension) { + return "`".concat(extension, "`"); + }).join(', '); + throw new ReferenceError("Given input path must be a valid ".concat(availableFilePaths, " file or directory path")); + } + }, { + key: "readDirectoryRecursive", + value: function readDirectoryRecursive(directoryPath) { + var _this = this; + + var fileData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + fs.readdirSync(directoryPath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding).forEach(function (fileName) { + var filePath = "".concat(directoryPath, "/").concat(fileName); + + if (SourceCodeReader.isDirectoryPath(filePath) && _this.isValidDirectory(filePath)) { + fileData.push.apply(fileData, (0, _toConsumableArray2.default)(_this.readDirectoryRecursive(filePath))); + } else if (SourceCodeReader.isFilePath(filePath) && _this.isValidFile(filePath)) { + var content = _this.readFile(filePath); + + fileData.push({ + filePath: filePath, + content: content + }); + } + }); + return fileData; + } + }, { + key: "readFile", + value: function readFile(filePath) { + SourceCodeReader.logFilePath(filePath); + return fs.readFileSync(filePath, JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.encoding); + } + }, { + key: "isValidDirectory", + value: function isValidDirectory(directoryPath) { + return !SourceCodeReader.isExcludedPath(directoryPath, this.options.exclude); + } + }, { + key: "isValidFile", + value: function isValidFile(filePath) { + return SourceCodeReader.availableInputExtensions.includes(path.extname(filePath)) && !filePath.includes(JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI.obfuscatedFilePrefix) && !SourceCodeReader.isExcludedPath(filePath, this.options.exclude); + } + }], [{ + key: "isExcludedPath", + value: function isExcludedPath(filePath) { + var excludePatterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + if (!excludePatterns.length) { + return false; + } + + var fileName = path.basename(filePath); + var isExcludedFilePathByGlobPattern = !!multimatch_1.default([filePath], excludePatterns).length; + var isExcludedFilePathByInclusion = excludePatterns.some(function (excludePattern) { + return filePath.includes(excludePattern) || fileName.includes(excludePattern); + }); + return isExcludedFilePathByInclusion || isExcludedFilePathByGlobPattern; + } + }, { + key: "isDirectoryPath", + value: function isDirectoryPath(filePath) { + try { + return fs.statSync(filePath).isDirectory(); + } catch (_a) { + return false; + } + } + }, { + key: "isFilePath", + value: function isFilePath(filePath) { + try { + return fs.statSync(filePath).isFile(); + } catch (_a) { + return false; + } + } + }, { + key: "logFilePath", + value: function logFilePath(filePath) { + var normalizedFilePath = path.normalize(filePath); + Logger_1.Logger.log(Logger_1.Logger.colorInfo, LoggingPrefix_1.LoggingPrefix.CLI, "Obfuscating file: ".concat(normalizedFilePath, "...")); + } + }]); + return SourceCodeReader; +}(); + +SourceCodeReader.availableInputExtensions = ['.js']; +exports.SourceCodeReader = SourceCodeReader; + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "@babel/runtime/helpers/construct")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts"); + +var ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts"); + +var ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts"); + +var CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts"); + +var FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts"); + +var GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts"); + +var NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts"); + +var ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts"); + +var OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts"); + +var PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts"); + +var StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); + +var UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts"); + +var JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts"); + +var Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts"); + +var ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts"); + +var ObfuscationResult_1 = __webpack_require__(/*! ../ObfuscationResult */ "./src/ObfuscationResult.ts"); + +var SourceCode_1 = __webpack_require__(/*! ../SourceCode */ "./src/SourceCode.ts"); + +var SourceMapCorrector_1 = __webpack_require__(/*! ../source-map/SourceMapCorrector */ "./src/source-map/SourceMapCorrector.ts"); + +var TransformersRunner_1 = __webpack_require__(/*! ../node-transformers/TransformersRunner */ "./src/node-transformers/TransformersRunner.ts"); + +var InversifyContainerFacade = +/*#__PURE__*/ +function () { + function InversifyContainerFacade() { + (0, _classCallCheck2.default)(this, InversifyContainerFacade); + this.container = new inversify_1.Container(); + } + + (0, _createClass2.default)(InversifyContainerFacade, [{ + key: "get", + value: function get(serviceIdentifier) { + return this.container.get(serviceIdentifier); + } + }, { + key: "getNamed", + value: function getNamed(serviceIdentifier, named) { + return this.container.getNamed(serviceIdentifier, named); + } + }, { + key: "load", + value: function load(sourceCode, options) { + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode).toDynamicValue(function () { + return new SourceCode_1.SourceCode(sourceCode); + }).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions).toDynamicValue(function () { + return options; + }).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger).to(Logger_1.Logger).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscator_1.JavaScriptObfuscator).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner).to(TransformersRunner_1.TransformersRunner).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult).to(ObfuscationResult_1.ObfuscationResult).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(function (context) { + return function (obfuscatedCode, sourceMap) { + var obfuscationResult = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult); + obfuscationResult.initialize(obfuscatedCode, sourceMap); + return obfuscationResult; + }; + }); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector).to(SourceMapCorrector_1.SourceMapCorrector).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope(); + this.container.load(AnalyzersModule_1.analyzersModule); + this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule); + this.container.load(ConvertingTransformersModule_1.convertingTransformersModule); + this.container.load(CustomNodesModule_1.customNodesModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(UtilsModule_1.utilsModule); + } + }, { + key: "unload", + value: function unload() { + this.container.unbindAll(); + } + }], [{ + key: "getFactory", + value: function getFactory(serviceIdentifier) { + return function (context) { + return function (bindingName) { + return context.container.getNamed(serviceIdentifier, bindingName); + }; + }; + } + }, { + key: "getCacheFactory", + value: function getCacheFactory(serviceIdentifier) { + return function (context) { + var cache = new _map.default(); + return function (bindingName) { + if (cache.has(bindingName)) { + return cache.get(bindingName); + } + + var object = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, object); + return object; + }; + }; + } + }, { + key: "getConstructorFactory", + value: function getConstructorFactory(serviceIdentifier) { + for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + dependencies[_key - 1] = arguments[_key]; + } + + return function (context) { + var cache = new _map.default(); + var cachedDependencies = []; + return function (bindingName) { + dependencies.forEach(function (dependency, index) { + if (!cachedDependencies[index]) { + cachedDependencies[index] = context.container.get(dependency); + } + }); + + if (cache.has(bindingName)) { + return (0, _construct2.default)(cache.get(bindingName), cachedDependencies); + } + + var constructor = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, constructor); + return (0, _construct2.default)(constructor, cachedDependencies); + }; + }; + } + }]); + return InversifyContainerFacade; +}(); + +exports.InversifyContainerFacade = InversifyContainerFacade; + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ServiceIdentifiers; + +(function (ServiceIdentifiers) { + ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory"; + ServiceIdentifiers["Factory__ICustomNode"] = "Factory"; + ServiceIdentifiers["Factory__ICustomNodeGroup"] = "Factory"; + ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscationResult"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__IPropertiesExtractor"] = "Factory"; + ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory"; + ServiceIdentifiers["IArrayUtils"] = "IArrayUtils"; + ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor"; + ServiceIdentifiers["ICryptUtils"] = "ICryptUtils"; + ServiceIdentifiers["ICustomNode"] = "ICustomNode"; + ServiceIdentifiers["ICustomNodeGroup"] = "ICustomNodeGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter"; + ServiceIdentifiers["IObfuscationResult"] = "IObfuscationResult"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer"; + ServiceIdentifiers["IPropertiesExtractor"] = "IPropertiesExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["ISourceMapCorrector"] = "ISourceMapCorrector"; + ServiceIdentifiers["IStackTraceAnalyzer"] = "IStackTraceAnalyzer"; + ServiceIdentifiers["ITransformersRunner"] = "ITransformersRunner"; + ServiceIdentifiers["Newable__ICustomNode"] = "Newable"; + ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable"; + ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage"; + ServiceIdentifiers["TInputOptions"] = "TInputOptions"; + ServiceIdentifiers["TStringArrayStorage"] = "TStringArrayStorage"; +})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {})); + +/***/ }), + +/***/ "./src/container/modules/analyzers/AnalyzersModule.ts": +/*!************************************************************!*\ + !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts"); + +var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts"); + +var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts"); + +var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts"); + +var StackTraceAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/StackTraceAnalyzer */ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts"); + +exports.analyzersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)); +}); + +/***/ }), + +/***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts": +/*!*****************************************************************!*\ + !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var CustomNodeGroup_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts"); + +var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); + +var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup */ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts"); + +var DebugProtectionCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup */ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts"); + +var DomainLockCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup */ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts"); + +var SelfDefendingCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup */ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts"); + +var StringArrayCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup */ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts"); + +var BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts"); + +var BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts"); + +var BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts"); + +var CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts"); + +var CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts"); + +var ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts"); + +var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode */ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts"); + +var DebugProtectionFunctionCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts"); + +var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts"); + +var DebugProtectionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts"); + +var DomainLockNode_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/DomainLockNode */ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts"); + +var ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts"); + +var LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts"); + +var NodeCallsControllerFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode */ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts"); + +var SelfDefendingUnicodeNode_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode */ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts"); + +var StringArrayCallsWrapper_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallsWrapper */ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts"); + +var StringArrayNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayNode */ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts"); + +var StringArrayRotateFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayRotateFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts"); + +var StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts"); + +var StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts"); + +exports.customNodesModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNode_1.CustomNode.DomainLockNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNode_1.CustomNode.SelfDefendingUnicodeNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNode_1.CustomNode.StringArrayCallsWrapper); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayRotateFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralNode_1.StringLiteralNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode).whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup)); +}); + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts"); + +var MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); + +exports.generatorsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function (context) { + var cachedIdentifierNamesGenerator = null; + return function (options) { + if (cachedIdentifierNamesGenerator) { + return cachedIdentifierNamesGenerator; + } + + var identifierNamesGenerator; + + switch (options.identifierNamesGenerator) { + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + break; + + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator: + default: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + } + + cachedIdentifierNamesGenerator = identifierNamesGenerator; + return identifierNamesGenerator; + }; + }); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts"); + +var BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts"); + +var CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts"); + +var DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); + +var FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts"); + +var LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts"); + +var StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts"); + +exports.controlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var PropertiesExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts"); + +var AssignmentExpressionPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts"); + +var MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts"); + +var MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts"); + +var ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts"); + +var ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); + +var TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts"); + +var VariableDeclaratorPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts"); + +exports.convertingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(AssignmentExpressionPropertiesExtractor_1.AssignmentExpressionPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(VariableDeclaratorPropertiesExtractor_1.VariableDeclaratorPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +exports.finalizingTransformersModule = new inversify_1.ContainerModule(function (bind) {}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts"); + +var BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts"); + +var CatchClauseTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/CatchClauseTransformer */ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts"); + +var ClassDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts"); + +var FunctionDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts"); + +var FunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts"); + +var ImportDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ImportDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts"); + +var LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts"); + +var LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts"); + +var NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts"); + +var StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts"); + +var VariableDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts"); + +exports.obfuscatingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CatchClauseTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ClassDeclarationTransformer_1.ClassDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ImportDeclarationTransformer_1.ImportDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer).whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); + +var BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts"); + +var CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CommentsTransformer */ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts"); + +var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); + +var CustomNodesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomNodesTransformer */ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts"); + +var EvaCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts"); + +var MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts"); + +var ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts"); + +var ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts"); + +exports.preparingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CommentsTransformer_1.CommentsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CustomNodesTransformer_1.CustomNodesTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomNodesTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(EvaCallExpressionTransformer_1.EvalCallExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MetadataTransformer_1.MetadataTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ParentificationTransformer_1.ParentificationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + +/***/ }), + +/***/ "./src/container/modules/options/OptionsModule.ts": +/*!********************************************************!*\ + !*** ./src/container/modules/options/OptionsModule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts"); + +var OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts"); + +exports.optionsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).to(Options_1.Options).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer).to(OptionsNormalizer_1.OptionsNormalizer).inSingletonScope(); +}); + +/***/ }), + +/***/ "./src/container/modules/storages/StoragesModule.ts": +/*!**********************************************************!*\ + !*** ./src/container/modules/storages/StoragesModule.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/control-flow/ControlFlowStorage */ "./src/storages/control-flow/ControlFlowStorage.ts"); + +var CustomNodeGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-node-group/CustomNodeGroupStorage */ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts"); + +var StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts"); + +exports.storagesModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(ControlFlowStorage_1.ControlFlowStorage); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function (context) { + return function () { + var constructor = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage); + var randomGenerator = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator); + var options = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions); + var storage = new constructor(randomGenerator, options); + storage.initialize(); + return storage; + }; + }); +}); + +/***/ }), + +/***/ "./src/container/modules/utils/UtilsModule.ts": +/*!****************************************************!*\ + !*** ./src/container/modules/utils/UtilsModule.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts"); + +var CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts"); + +var EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts"); + +var RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts"); + +exports.utilsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils).to(ArrayUtils_1.ArrayUtils).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator).to(RandomGenerator_1.RandomGenerator).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils).to(CryptUtils_1.CryptUtils).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder).to(EscapeSequenceEncoder_1.EscapeSequenceEncoder).inSingletonScope(); +}); + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractCustomNode_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var GlobalVariableTemplate1_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate1 */ "./src/templates/GlobalVariableTemplate1.ts"); + +var GlobalVariableTemplate2_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate2 */ "./src/templates/GlobalVariableTemplate2.ts"); + +var AbstractCustomNode = AbstractCustomNode_1 = +/*#__PURE__*/ +function () { + function AbstractCustomNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractCustomNode); + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractCustomNode, [{ + key: "getNode", + value: function getNode() { + if (!this.cachedNode) { + this.cachedNode = this.getNodeStructure(); + } + + return this.cachedNode; + } + }, { + key: "getGlobalVariableTemplate", + value: function getGlobalVariableTemplate() { + return this.randomGenerator.getRandomGenerator().pickone(AbstractCustomNode_1.globalVariableTemplateFunctions); + } + }]); + return AbstractCustomNode; +}(); + +AbstractCustomNode.globalVariableTemplateFunctions = [GlobalVariableTemplate1_1.GlobalVariableTemplate1(), GlobalVariableTemplate2_1.GlobalVariableTemplate2()]; +AbstractCustomNode = AbstractCustomNode_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNode); +exports.AbstractCustomNode = AbstractCustomNode; + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNodeGroup.ts": +/*!*****************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNodeGroup.ts ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractCustomNodeGroup = +/*#__PURE__*/ +function () { + function AbstractCustomNodeGroup(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractCustomNodeGroup); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractCustomNodeGroup, [{ + key: "getAppendEvent", + value: function getAppendEvent() { + return this.appendEvent; + } + }, { + key: "getCustomNodes", + value: function getCustomNodes() { + return this.customNodes; + } + }, { + key: "appendCustomNodeIfExist", + value: function appendCustomNodeIfExist(customNodeName, callback) { + var customNode = this.customNodes.get(customNodeName); + + if (!customNode) { + return; + } + + callback(customNode); + } + }, { + key: "getRandomStackTraceIndex", + value: function getRandomStackTraceIndex(stackTraceLength) { + return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(stackTraceLength - 1))); + } + }]); + return AbstractCustomNodeGroup; +}(); + +AbstractCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNodeGroup); +exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ../../templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate */ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ConsoleOutputDisableExpressionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_); + + function ConsoleOutputDisableExpressionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ConsoleOutputDisableExpressionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ConsoleOutputDisableExpressionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ConsoleOutputDisableExpressionNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return string_template_1.default(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), { + consoleLogDisableFunctionName: this.identifierNamesGenerator.generate(), + globalVariableTemplate: globalVariableTemplate, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return ConsoleOutputDisableExpressionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0); + +ConsoleOutputDisableExpressionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ConsoleOutputDisableExpressionNode); +exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode; + +/***/ }), + +/***/ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var ConsoleOutputCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr); + + function ConsoleOutputCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ConsoleOutputCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ConsoleOutputCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(ConsoleOutputCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.disableConsoleOutput) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return ConsoleOutputCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0); + +ConsoleOutputCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], ConsoleOutputCustomNodeGroup); +exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BinaryExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BinaryExpressionFunctionNode, _AbstractCustomNode_); + + function BinaryExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BinaryExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BinaryExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BinaryExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(operator) { + this.operator = operator; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BinaryExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0); + +BinaryExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionFunctionNode); +exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementControlFlowFlatteningNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BlockStatementControlFlowFlatteningNode, _AbstractCustomNode_); + + function BlockStatementControlFlowFlatteningNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BlockStatementControlFlowFlatteningNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementControlFlowFlatteningNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BlockStatementControlFlowFlatteningNode, [{ + key: "initialize", + value: function initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) { + this.blockStatementBody = blockStatementBody; + this.shuffledKeys = shuffledKeys; + this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var _this = this; + + var controllerIdentifierName = this.randomGenerator.getRandomString(6); + var indexIdentifierName = this.randomGenerator.getRandomString(6); + var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [NodeFactory_1.NodeFactory.literalNode('|')])), NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))]), NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map(function (key, index) { + var statement = _this.blockStatementBody[key]; + var consequent = [statement]; + + if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + consequent.push(NodeFactory_1.NodeFactory.continueStatement()); + } + + return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent); + })), NodeFactory_1.NodeFactory.breakStatement()]))]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BlockStatementControlFlowFlatteningNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0); + +BlockStatementControlFlowFlatteningNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementControlFlowFlatteningNode); +exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CallExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(CallExpressionFunctionNode, _AbstractCustomNode_); + + function CallExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(expressionArguments) { + this.expressionArguments = expressionArguments; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee'); + var params = []; + var argumentsLength = this.expressionArguments.length; + + for (var i = 0; i < argumentsLength; i++) { + params.push(NodeFactory_1.NodeFactory.identifierNode("param".concat(i + 1))); + } + + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([calleeIdentifier].concat(params), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return CallExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionFunctionNode.prototype, "expressionArguments", void 0); + +CallExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionFunctionNode); +exports.CallExpressionFunctionNode = CallExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LogicalExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(LogicalExpressionFunctionNode, _AbstractCustomNode_); + + function LogicalExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, LogicalExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LogicalExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(LogicalExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(operator) { + this.operator = operator; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return LogicalExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], LogicalExpressionFunctionNode.prototype, "operator", void 0); + +LogicalExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionFunctionNode); +exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var StringLiteralNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringLiteralNode, _AbstractCustomNode_); + + function StringLiteralNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralNode, [{ + key: "initialize", + value: function initialize(literalValue) { + this.literalValue = literalValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue)); + return [structure]; + } + }]); + return StringLiteralNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralNode.prototype, "literalValue", void 0); + +StringLiteralNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralNode); +exports.StringLiteralNode = StringLiteralNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts": +/*!*******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***! + \*******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CallExpressionControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_); + + function CallExpressionControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.callee = callee; + this.expressionArguments = expressionArguments; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.callee].concat((0, _toConsumableArray2.default)(this.expressionArguments)))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return CallExpressionControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0); + +CallExpressionControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowStorageCallNode); +exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _from = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/array/from */ "@babel/runtime/core-js/array/from")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ControlFlowStorageNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ControlFlowStorageNode, _AbstractCustomNode_); + + function ControlFlowStorageNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ControlFlowStorageNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ControlFlowStorageNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ControlFlowStorageNode, [{ + key: "initialize", + value: function initialize(controlFlowStorage) { + this.controlFlowStorage = controlFlowStorage; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var propertyNodes = (0, _from.default)(this.controlFlowStorage.getStorage()).map(function (_ref) { + var _ref2 = (0, _slicedToArray2.default)(_ref, 2), + key = _ref2[0], + value = _ref2[1]; + + var node = value.getNode()[0]; + + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!'); + } + + return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression); + }); + var structure = NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))]); + structure = NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return ControlFlowStorageNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0); + +ControlFlowStorageNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ControlFlowStorageNode); +exports.ControlFlowStorageNode = ControlFlowStorageNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts": +/*!***************************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***! + \***************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ExpressionWithOperatorControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_); + + function ExpressionWithOperatorControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ExpressionWithOperatorControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExpressionWithOperatorControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ExpressionWithOperatorControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.leftValue = leftValue; + this.rightValue = rightValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.leftValue, this.rightValue])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return ExpressionWithOperatorControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "leftValue", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "rightValue", void 0); + +ExpressionWithOperatorControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowStorageCallNode); +exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts": +/*!******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***! + \******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringLiteralControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringLiteralControlFlowStorageCallNode, _AbstractCustomNode_); + + function StringLiteralControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return StringLiteralControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +StringLiteralControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowStorageCallNode); +exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementDeadCodeInjectionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BlockStatementDeadCodeInjectionNode, _AbstractCustomNode_); + + function BlockStatementDeadCodeInjectionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BlockStatementDeadCodeInjectionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementDeadCodeInjectionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BlockStatementDeadCodeInjectionNode, [{ + key: "initialize", + value: function initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) { + this.blockStatementNode = blockStatementNode; + this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var random1 = this.randomGenerator.getMathRandom() > 0.5; + var random2 = this.randomGenerator.getMathRandom() > 0.5; + var operator = random1 ? '===' : '!=='; + var leftString = this.randomGenerator.getRandomString(5); + var rightString = random2 ? leftString : this.randomGenerator.getRandomString(5); + + var _ref = random1 === random2 ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode], + _ref2 = (0, _slicedToArray2.default)(_ref, 2), + consequent = _ref2[0], + alternate = _ref2[1]; + + var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BlockStatementDeadCodeInjectionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "blockStatementNode", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "deadCodeInjectionRootAstHostNode", void 0); + +BlockStatementDeadCodeInjectionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementDeadCodeInjectionNode); +exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts": +/*!************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionCallNode, _AbstractCustomNode_); + + function DebugProtectionFunctionCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionCallNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName, callsControllerFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return DebugProtectionFunctionCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "callsControllerFunctionName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionCallNode); +exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionIntervalNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_); + + function DebugProtectionFunctionIntervalNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionIntervalNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionIntervalNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionIntervalNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } + }]); + return DebugProtectionFunctionIntervalNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionIntervalNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionIntervalNode); +exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts": +/*!********************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebuggerTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts"); + +var DebuggerTemplateNoEval_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts"); + +var DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionNode, _AbstractCustomNode_); + + function DebugProtectionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? DebuggerTemplate_1.DebuggerTemplate() : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval(); + return string_template_1.default(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), { + debuggerTemplate: debuggerTemplate, + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } + }]); + return DebugProtectionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionNode); +exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var DebugProtectionCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr); + + function DebugProtectionCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DebugProtectionCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(DebugProtectionCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var _this2 = this; + + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionNode, function (customNode) { + NodeAppender_1.NodeAppender.append(blockScopeNode, customNode.getNode()); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, function (customNode) { + var programBodyLength = blockScopeNode.body.length; + + var randomIndex = _this2.randomGenerator.getRandomInteger(0, programBodyLength); + + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), randomIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.debugProtection) { + return; + } + + var debugProtectionFunctionName = this.identifierNamesGenerator.generate(); + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var debugProtectionFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionNode); + var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode); + var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + debugProtectionFunctionNode.initialize(debugProtectionFunctionName); + debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName, callsControllerFunctionName); + debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionNode, debugProtectionFunctionNode); + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode); + + if (this.options.debugProtectionInterval) { + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode); + } + + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return DebugProtectionCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0); + +DebugProtectionCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DebugProtectionCustomNodeGroup); +exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts": +/*!**************************************************************!*\ + !*** ./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DomainLockNodeTemplate_1 = __webpack_require__(/*! ../../templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate */ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DomainLockNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DomainLockNode, _AbstractCustomNode_); + + function DomainLockNode(identifierNamesGeneratorFactory, randomGenerator, cryptUtils, options) { + var _this; + + (0, _classCallCheck2.default)(this, DomainLockNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DomainLockNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.cryptUtils = cryptUtils; + return _this; + } + + (0, _createClass2.default)(DomainLockNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var domainsString = this.options.domainLock.join(';'); + + var _this$cryptUtils$hide = this.cryptUtils.hideString(domainsString, domainsString.length * 3), + _this$cryptUtils$hide2 = (0, _slicedToArray2.default)(_this$cryptUtils$hide, 2), + hiddenDomainsString = _this$cryptUtils$hide2[0], + diff = _this$cryptUtils$hide2[1]; + + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return string_template_1.default(DomainLockNodeTemplate_1.DomainLockNodeTemplate(), { + domainLockFunctionName: this.identifierNamesGenerator.generate(), + diff: diff, + domains: hiddenDomainsString, + globalVariableTemplate: globalVariableTemplate, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return DomainLockNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0); + +DomainLockNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DomainLockNode); +exports.DomainLockNode = DomainLockNode; + +/***/ }), + +/***/ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts": +/*!*******************************************************************************!*\ + !*** ./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var DomainLockCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(DomainLockCustomNodeGroup, _AbstractCustomNodeGr); + + function DomainLockCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DomainLockCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DomainLockCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(DomainLockCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DomainLockNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.domainLock.length) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var domainLockNode = this.customNodeFactory(CustomNode_1.CustomNode.DomainLockNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + domainLockNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.DomainLockNode, domainLockNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return DomainLockCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0); + +DomainLockCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DomainLockCustomNodeGroup); +exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var SingleNodeCallControllerTemplate_1 = __webpack_require__(/*! ../../templates/SingleNodeCallControllerTemplate */ "./src/templates/SingleNodeCallControllerTemplate.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var NodeCallsControllerFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(NodeCallsControllerFunctionNode, _AbstractCustomNode_); + + function NodeCallsControllerFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, NodeCallsControllerFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(NodeCallsControllerFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(NodeCallsControllerFunctionNode, [{ + key: "initialize", + value: function initialize(appendEvent, callsControllerFunctionName) { + this.appendEvent = appendEvent; + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), { + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + + return string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), { + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return NodeCallsControllerFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0); + +NodeCallsControllerFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], NodeCallsControllerFunctionNode); +exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts": +/*!***************************************************************************!*\ + !*** ./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate */ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var SelfDefendingUnicodeNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(SelfDefendingUnicodeNode, _AbstractCustomNode_); + + function SelfDefendingUnicodeNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, SelfDefendingUnicodeNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SelfDefendingUnicodeNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(SelfDefendingUnicodeNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + selfDefendingFunctionName: this.identifierNamesGenerator.generate(), + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed, + unicodeEscapeSequence: true + })).getObfuscatedCode(); + } + }]); + return SelfDefendingUnicodeNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0); + +SelfDefendingUnicodeNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], SelfDefendingUnicodeNode); +exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode; + +/***/ }), + +/***/ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var SelfDefendingCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr); + + function SelfDefendingCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, SelfDefendingCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SelfDefendingCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(SelfDefendingCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.selfDefending) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var selfDefendingUnicodeNode = this.customNodeFactory(CustomNode_1.CustomNode.SelfDefendingUnicodeNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + selfDefendingUnicodeNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, selfDefendingUnicodeNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return SelfDefendingCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0); + +SelfDefendingCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], SelfDefendingCustomNodeGroup); +exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts": +/*!************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var AtobTemplate_1 = __webpack_require__(/*! ../../templates/AtobTemplate */ "./src/templates/AtobTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var Rc4Template_1 = __webpack_require__(/*! ../../templates/Rc4Template */ "./src/templates/Rc4Template.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts"); + +var StringArrayBase64DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts"); + +var StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts"); + +var StringArrayRC4DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringArrayCallsWrapper = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayCallsWrapper, _AbstractCustomNode_); + + function StringArrayCallsWrapper(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayCallsWrapper); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayCallsWrapper).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(StringArrayCallsWrapper, [{ + key: "initialize", + value: function initialize(stringArrayName, stringArrayCallsWrapperName) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var decodeNodeTemplate = this.getDecodeStringArrayTemplate(); + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), { + decodeNodeTemplate: decodeNodeTemplate, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + }, { + key: "getDecodeStringArrayTemplate", + value: function getDecodeStringArrayTemplate() { + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + var atobPolyfill = string_template_1.default(AtobTemplate_1.AtobTemplate(), { + globalVariableTemplate: globalVariableTemplate + }); + var decodeStringArrayTemplate = ''; + var selfDefendingCode = ''; + + if (this.options.selfDefending) { + selfDefendingCode = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } + + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + decodeStringArrayTemplate = string_template_1.default(StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(this.randomGenerator), { + atobPolyfill: atobPolyfill, + rc4Polyfill: Rc4Template_1.Rc4Template(), + selfDefendingCode: selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + break; + + case StringArrayEncoding_1.StringArrayEncoding.Base64: + decodeStringArrayTemplate = string_template_1.default(StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(this.randomGenerator), { + atobPolyfill: atobPolyfill, + selfDefendingCode: selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } + + return decodeStringArrayTemplate; + } + }]); + return StringArrayCallsWrapper; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0); + +StringArrayCallsWrapper = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayCallsWrapper); +exports.StringArrayCallsWrapper = StringArrayCallsWrapper; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts": +/*!****************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayNode.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var StringArrayTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-node/StringArrayTemplate */ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringArrayNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayNode, _AbstractCustomNode_); + + function StringArrayNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringArrayNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringArrayNode, [{ + key: "initialize", + value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) { + this.stringArrayStorage = stringArrayStorage; + this.stringArrayName = stringArrayName; + this.stringArrayRotateValue = stringArrayRotateValue; + } + }, { + key: "getNode", + value: function getNode() { + this.stringArrayStorage.rotateArray(this.stringArrayRotateValue); + return (0, _get2.default)((0, _getPrototypeOf2.default)(StringArrayNode.prototype), "getNode", this).call(this); + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(StringArrayTemplate_1.StringArrayTemplate(), { + stringArrayName: this.stringArrayName, + stringArray: this.stringArrayStorage.toString() + }); + } + }]); + return StringArrayNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0); + +StringArrayNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringArrayNode); +exports.StringArrayNode = StringArrayNode; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts": +/*!******************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts"); + +var StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var StringArrayRotateFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayRotateFunctionNode, _AbstractCustomNode_); + + function StringArrayRotateFunctionNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayRotateFunctionNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayRotateFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(StringArrayRotateFunctionNode, [{ + key: "initialize", + value: function initialize(stringArrayName, stringArrayRotateValue) { + this.stringArrayName = stringArrayName; + this.stringArrayRotateValue = stringArrayRotateValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var timesName = this.identifierNamesGenerator.generate(); + var whileFunctionName = this.identifierNamesGenerator.generate(); + var code = ''; + + if (this.options.selfDefending) { + code = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + timesName: timesName, + whileFunctionName: whileFunctionName + }); + } else { + code = "".concat(whileFunctionName, "(++").concat(timesName, ")"); + } + + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + code: code, + timesName: timesName, + stringArrayName: this.stringArrayName, + stringArrayRotateValue: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotateValue), + whileFunctionName: whileFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + }]); + return StringArrayRotateFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0); + +StringArrayRotateFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayRotateFunctionNode); +exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts": +/*!*********************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var StringArrayCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(StringArrayCustomNodeGroup, _AbstractCustomNodeGr); + + function StringArrayCustomNodeGroup(customNodeFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + _this.customNodeFactory = customNodeFactory; + _this.stringArrayStorage = stringArrayStorage; + return _this; + } + + (0, _createClass2.default)(StringArrayCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayNode, function (customNode) { + NodeAppender_1.NodeAppender.prepend(blockScopeNode, customNode.getNode()); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayCallsWrapper, function (customNode) { + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), 1); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, function (customNode) { + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), 1); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.stringArray) { + return; + } + + var stringArrayNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayNode); + var stringArrayCallsWrapper = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayCallsWrapper); + var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayRotateFunctionNode); + var stringArrayStorageId = this.stringArrayStorage.getStorageId(); + + var _stringArrayStorageId = stringArrayStorageId.split('|'), + _stringArrayStorageId2 = (0, _slicedToArray2.default)(_stringArrayStorageId, 2), + stringArrayName = _stringArrayStorageId2[0], + stringArrayCallsWrapperName = _stringArrayStorageId2[1]; + + var stringArrayRotateValue; + + if (this.options.rotateStringArray) { + stringArrayRotateValue = this.randomGenerator.getRandomInteger(100, 500); + } else { + stringArrayRotateValue = 0; + } + + stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue); + stringArrayCallsWrapper.initialize(stringArrayName, stringArrayCallsWrapperName); + stringArrayRotateFunctionNode.initialize(stringArrayName, stringArrayRotateValue); + this.customNodes.set(CustomNode_1.CustomNode.StringArrayNode, stringArrayNode); + this.customNodes.set(CustomNode_1.CustomNode.StringArrayCallsWrapper, stringArrayCallsWrapper); + + if (this.options.rotateStringArray) { + this.customNodes.set(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode); + } + } + }]); + return StringArrayCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0); + +StringArrayCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Function, Object, Object])], StringArrayCustomNodeGroup); +exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup; + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _defineProperty = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/define-property */ "@babel/runtime/core-js/object/define-property")); + +var _getOwnPropertyDescriptor = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-descriptor */ "@babel/runtime/core-js/object/get-own-property-descriptor")); + +var _getMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/get-metadata */ "@babel/runtime/core-js/reflect/get-metadata")); + +var _getOwnPropertyNames = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-names */ "@babel/runtime/core-js/object/get-own-property-names")); + +var _defineMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/define-metadata */ "@babel/runtime/core-js/reflect/define-metadata")); + +var _hasMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/has-metadata */ "@babel/runtime/core-js/reflect/has-metadata")); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var defaultDescriptor = { + configurable: true, + enumerable: true +}; +var initializedTargetMetadataKey = '_initialized'; +var initializablePropertiesSetMetadataKey = '_initializablePropertiesSet'; +var wrappedMethodsSetMetadataKey = '_wrappedMethodsSet'; +var constructorMethodName = 'constructor'; + +function initializable() { + var initializeMethodName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize'; + var decoratorName = (0, _keys.default)(this)[0]; + return function (target, propertyKey) { + var initializeMethod = target[initializeMethodName]; + + if (!initializeMethod || typeof initializeMethod !== 'function') { + throw new Error("`".concat(initializeMethodName, "` method with initialization logic not ") + "found. `@".concat(decoratorName, "` decorator requires `").concat(initializeMethodName, "` method")); + } + + initializeTargetMetadata(initializedTargetMetadataKey, false, target); + initializeTargetMetadata(initializablePropertiesSetMetadataKey, new _set.default(), target); + initializeTargetMetadata(wrappedMethodsSetMetadataKey, new _set.default(), target); + wrapTargetMethodsInInitializedCheck(target, initializeMethodName); + wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey); + return wrapInitializableProperty(target, propertyKey); + }; +} + +exports.initializable = initializable; + +function initializeTargetMetadata(metadataKey, metadataValue, target) { + var hasInitializedMetadata = (0, _hasMetadata.default)(metadataKey, target); + + if (!hasInitializedMetadata) { + (0, _defineMetadata.default)(metadataKey, metadataValue, target); + } +} + +function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) { + var ownPropertyNames = (0, _getOwnPropertyNames.default)(target); + var prohibitedPropertyNames = [initializeMethodName, constructorMethodName]; + ownPropertyNames.forEach(function (propertyName) { + var initializablePropertiesSet = (0, _getMetadata.default)(initializablePropertiesSetMetadataKey, target); + var wrappedMethodsSet = (0, _getMetadata.default)(wrappedMethodsSetMetadataKey, target); + var isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) || initializablePropertiesSet.has(propertyName) || wrappedMethodsSet.has(propertyName); + + if (isProhibitedPropertyName) { + return; + } + + var targetProperty = target[propertyName]; + + if (typeof targetProperty !== 'function') { + return; + } + + var methodDescriptor = (0, _getOwnPropertyDescriptor.default)(target, propertyName) || defaultDescriptor; + var originalMethod = methodDescriptor.value; + (0, _defineProperty.default)(target, propertyName, (0, _assign.default)({}, methodDescriptor, { + value: function value() { + if (!(0, _getMetadata.default)(initializedTargetMetadataKey, this)) { + throw new Error("Class should be initialized with `".concat(initializeMethodName, "()` method")); + } + + return originalMethod.apply(this, arguments); + } + })); + wrappedMethodsSet.add(propertyName); + }); +} + +function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) { + var methodDescriptor = (0, _getOwnPropertyDescriptor.default)(target, initializeMethodName) || defaultDescriptor; + var originalMethod = methodDescriptor.value; + (0, _defineProperty.default)(target, initializeMethodName, (0, _assign.default)({}, methodDescriptor, { + value: function value() { + (0, _defineMetadata.default)(initializedTargetMetadataKey, true, this); + var result = originalMethod.apply(this, arguments); + + if (this[propertyKey]) {} + + return result; + } + })); +} + +function wrapInitializableProperty(target, propertyKey) { + var initializablePropertiesSet = (0, _getMetadata.default)(initializablePropertiesSetMetadataKey, target); + initializablePropertiesSet.add(propertyKey); + var initializablePropertyMetadataKey = "_".concat(propertyKey.toString()); + var propertyDescriptor = (0, _getOwnPropertyDescriptor.default)(target, initializablePropertyMetadataKey) || defaultDescriptor; + (0, _defineProperty.default)(target, propertyKey, (0, _assign.default)({}, propertyDescriptor, { + get: function get() { + if (this[initializablePropertyMetadataKey] === undefined) { + throw new Error("Property `".concat(propertyKey.toString(), "` is not initialized! Initialize it first!")); + } + + return this[initializablePropertyMetadataKey]; + }, + set: function set(newVal) { + this[initializablePropertyMetadataKey] = newVal; + } + })); + return propertyDescriptor; +} + +/***/ }), + +/***/ "./src/enums/ObfuscationTarget.ts": +/*!****************************************!*\ + !*** ./src/enums/ObfuscationTarget.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscationTarget; + +(function (ObfuscationTarget) { + ObfuscationTarget["Browser"] = "browser"; + ObfuscationTarget["BrowserNoEval"] = "browser-no-eval"; + ObfuscationTarget["Node"] = "node"; +})(ObfuscationTarget = exports.ObfuscationTarget || (exports.ObfuscationTarget = {})); + +/***/ }), + +/***/ "./src/enums/StringArrayEncoding.ts": +/*!******************************************!*\ + !*** ./src/enums/StringArrayEncoding.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var StringArrayEncoding; + +(function (StringArrayEncoding) { + StringArrayEncoding["Base64"] = "base64"; + StringArrayEncoding["Rc4"] = "rc4"; +})(StringArrayEncoding = exports.StringArrayEncoding || (exports.StringArrayEncoding = {})); + +/***/ }), + +/***/ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CalleeDataExtractor; + +(function (CalleeDataExtractor) { + CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor"; + CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor"; + CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor"; +})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ControlFlowCustomNode; + +(function (ControlFlowCustomNode) { + ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode"; + ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode"; + ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode"; + ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode"; + ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode"; + ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode"; + ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode"; + ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode"; + ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode"; +})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/CustomNode.ts": +/*!**********************************************!*\ + !*** ./src/enums/custom-nodes/CustomNode.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CustomNode; + +(function (CustomNode) { + CustomNode["ConsoleOutputDisableExpressionNode"] = "ConsoleOutputDisableExpressionNode"; + CustomNode["DebugProtectionFunctionCallNode"] = "DebugProtectionFunctionCallNode"; + CustomNode["DebugProtectionFunctionIntervalNode"] = "DebugProtectionFunctionIntervalNode"; + CustomNode["DebugProtectionFunctionNode"] = "DebugProtectionFunctionNode"; + CustomNode["DomainLockNode"] = "DomainLockNode"; + CustomNode["NodeCallsControllerFunctionNode"] = "NodeCallsControllerFunctionNode"; + CustomNode["SelfDefendingUnicodeNode"] = "SelfDefendingUnicodeNode"; + CustomNode["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomNode["StringArrayNode"] = "StringArrayNode"; + CustomNode["StringArrayRotateFunctionNode"] = "StringArrayRotateFunctionNode"; +})(CustomNode = exports.CustomNode || (exports.CustomNode = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/CustomNodeGroup.ts": +/*!***************************************************!*\ + !*** ./src/enums/custom-nodes/CustomNodeGroup.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CustomNodeGroup; + +(function (CustomNodeGroup) { + CustomNodeGroup["ConsoleOutputCustomNodeGroup"] = "ConsoleOutputCustomNodeGroup"; + CustomNodeGroup["DebugProtectionCustomNodeGroup"] = "DebugProtectionCustomNodeGroup"; + CustomNodeGroup["DomainLockCustomNodeGroup"] = "DomainLockCustomNodeGroup"; + CustomNodeGroup["SelfDefendingCustomNodeGroup"] = "SelfDefendingCustomNodeGroup"; + CustomNodeGroup["StringArrayCustomNodeGroup"] = "StringArrayCustomNodeGroup"; +})(CustomNodeGroup = exports.CustomNodeGroup || (exports.CustomNodeGroup = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts": +/*!***************************************************************!*\ + !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var DeadCodeInjectionCustomNode; + +(function (DeadCodeInjectionCustomNode) { + DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode"; +})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {})); + +/***/ }), + +/***/ "./src/enums/event-emitters/ObfuscationEvent.ts": +/*!******************************************************!*\ + !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscationEvent; + +(function (ObfuscationEvent) { + ObfuscationEvent["AfterObfuscation"] = "afterObfuscation"; + ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation"; +})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {})); + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var IdentifierNamesGenerator; + +(function (IdentifierNamesGenerator) { + IdentifierNamesGenerator["HexadecimalIdentifierNamesGenerator"] = "hexadecimal"; + IdentifierNamesGenerator["MangledIdentifierNamesGenerator"] = "mangled"; +})(IdentifierNamesGenerator = exports.IdentifierNamesGenerator || (exports.IdentifierNamesGenerator = {})); + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LoggingMessage; + +(function (LoggingMessage) { + LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled..."; + LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec."; + LoggingMessage["ObfuscationStarted"] = "Obfuscation started..."; + LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s..."; + LoggingMessage["TransformationStage"] = "Transformation stage: %s..."; + LoggingMessage["Version"] = "Version: %s"; +})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {})); + +/***/ }), + +/***/ "./src/enums/logger/LoggingPrefix.ts": +/*!*******************************************!*\ + !*** ./src/enums/logger/LoggingPrefix.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LoggingPrefix; + +(function (LoggingPrefix) { + LoggingPrefix["Base"] = "[javascript-obfuscator]"; + LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]"; +})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var NodeTransformer; + +(function (NodeTransformer) { + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["ClassDeclarationTransformer"] = "ClassDeclarationTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomNodesTransformer"] = "CustomNodesTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["CatchClauseTransformer"] = "CatchClauseTransformer"; + NodeTransformer["FunctionDeclarationTransformer"] = "FunctionDeclarationTransformer"; + NodeTransformer["FunctionTransformer"] = "FunctionTransformer"; + NodeTransformer["ImportDeclarationTransformer"] = "ImportDeclarationTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["LiteralTransformer"] = "LiteralTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer"; + NodeTransformer["VariableDeclarationTransformer"] = "VariableDeclarationTransformer"; +})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/TransformationStage.ts": +/*!************************************************************!*\ + !*** ./src/enums/node-transformers/TransformationStage.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var TransformationStage; + +(function (TransformationStage) { + TransformationStage["Preparing"] = "Preparing"; + TransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + TransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + TransformationStage["Converting"] = "Converting"; + TransformationStage["Obfuscating"] = "Obfuscating"; + TransformationStage["Finalizing"] = "Finalizing"; +})(TransformationStage = exports.TransformationStage || (exports.TransformationStage = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/VisitorDirection.ts": +/*!*********************************************************!*\ + !*** ./src/enums/node-transformers/VisitorDirection.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var VisitorDirection; + +(function (VisitorDirection) { + VisitorDirection["Enter"] = "enter"; + VisitorDirection["Leave"] = "leave"; +})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var PropertiesExtractor; + +(function (PropertiesExtractor) { + PropertiesExtractor["AssignmentExpressionPropertiesExtractor"] = "AssignmentExpressionPropertiesExtractor"; + PropertiesExtractor["VariableDeclaratorPropertiesExtractor"] = "VariableDeclaratorPropertiesExtractor"; +})(PropertiesExtractor = exports.PropertiesExtractor || (exports.PropertiesExtractor = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ControlFlowReplacer; + +(function (ControlFlowReplacer) { + ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer"; + ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer"; + ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer"; + ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer"; +})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var IdentifierObfuscatingReplacer; + +(function (IdentifierObfuscatingReplacer) { + IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer"; +})(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LiteralObfuscatingReplacer; + +(function (LiteralObfuscatingReplacer) { + LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer"; +})(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscatingGuard; + +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListNodeGuard"] = "BlackListNodeGuard"; + ObfuscatingGuard["ConditionalCommentNodeGuard"] = "ConditionalCommentNodeGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var NodeType; + +(function (NodeType) { + NodeType["ArrayExpression"] = "ArrayExpression"; + NodeType["ArrayPattern"] = "ArrayPattern"; + NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression"; + NodeType["AssignmentExpression"] = "AssignmentExpression"; + NodeType["AssignmentPattern"] = "AssignmentPattern"; + NodeType["AwaitExpression"] = "AwaitExpression"; + NodeType["BinaryExpression"] = "BinaryExpression"; + NodeType["BlockStatement"] = "BlockStatement"; + NodeType["BreakStatement"] = "BreakStatement"; + NodeType["CallExpression"] = "CallExpression"; + NodeType["CatchClause"] = "CatchClause"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExpressionStatement"] = "ExpressionStatement"; + NodeType["FunctionDeclaration"] = "FunctionDeclaration"; + NodeType["FunctionExpression"] = "FunctionExpression"; + NodeType["Identifier"] = "Identifier"; + NodeType["IfStatement"] = "IfStatement"; + NodeType["ImportDeclaration"] = "ImportDeclaration"; + NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; + NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; + NodeType["ImportSpecifier"] = "ImportSpecifier"; + NodeType["LabeledStatement"] = "LabeledStatement"; + NodeType["Literal"] = "Literal"; + NodeType["LogicalExpression"] = "LogicalExpression"; + NodeType["MemberExpression"] = "MemberExpression"; + NodeType["MethodDefinition"] = "MethodDefinition"; + NodeType["ObjectExpression"] = "ObjectExpression"; + NodeType["ObjectPattern"] = "ObjectPattern"; + NodeType["Program"] = "Program"; + NodeType["Property"] = "Property"; + NodeType["RestElement"] = "RestElement"; + NodeType["ReturnStatement"] = "ReturnStatement"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var SourceMapMode; + +(function (SourceMapMode) { + SourceMapMode["Inline"] = "inline"; + SourceMapMode["Separate"] = "separate"; +})(SourceMapMode = exports.SourceMapMode || (exports.SourceMapMode = {})); + +/***/ }), + +/***/ "./src/event-emitters/ObfuscationEventEmitter.ts": +/*!*******************************************************!*\ + !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var events_1 = __webpack_require__(/*! events */ "events"); + +inversify_1.decorate(inversify_1.injectable(), events_1.EventEmitter); + +var ObfuscationEventEmitter = +/*#__PURE__*/ +function (_events_1$EventEmitte) { + (0, _inherits2.default)(ObfuscationEventEmitter, _events_1$EventEmitte); + + function ObfuscationEventEmitter() { + (0, _classCallCheck2.default)(this, ObfuscationEventEmitter); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObfuscationEventEmitter).apply(this, arguments)); + } + + return ObfuscationEventEmitter; +}(events_1.EventEmitter); + +ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable()], ObfuscationEventEmitter); +exports.ObfuscationEventEmitter = ObfuscationEventEmitter; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator = +/*#__PURE__*/ +function () { + function AbstractIdentifierNamesGenerator(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractIdentifierNamesGenerator); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractIdentifierNamesGenerator, [{ + key: "isValidIdentifierName", + value: function isValidIdentifierName(name) { + return this.options.reservedNames.length ? !this.options.reservedNames.some(function (reservedName) { + return new RegExp(reservedName, 'g').exec(name) !== null; + }) : true; + } + }]); + return AbstractIdentifierNamesGenerator; +}(); + +AbstractIdentifierNamesGenerator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractIdentifierNamesGenerator); +exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts": +/*!*******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var HexadecimalIdentifierNamesGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); + +var HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = +/*#__PURE__*/ +function (_AbstractIdentifierNa) { + (0, _inherits2.default)(HexadecimalIdentifierNamesGenerator, _AbstractIdentifierNa); + + function HexadecimalIdentifierNamesGenerator(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, HexadecimalIdentifierNamesGenerator); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HexadecimalIdentifierNamesGenerator).call(this, randomGenerator, options)); + _this.randomVariableNameSet = new _set.default(); + return _this; + } + + (0, _createClass2.default)(HexadecimalIdentifierNamesGenerator, [{ + key: "generate", + value: function generate() { + var rangeMinInteger = 10000; + var rangeMaxInteger = 99999999; + var randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger); + var hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger); + var baseIdentifierName = hexadecimalNumber.substr(0, HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength); + var identifierName = "_".concat(Utils_1.Utils.hexadecimalPrefix).concat(baseIdentifierName); + + if (this.randomVariableNameSet.has(identifierName)) { + return this.generate(); + } + + this.randomVariableNameSet.add(identifierName); + return identifierName; + } + }, { + key: "generateWithPrefix", + value: function generateWithPrefix() { + var identifierName = this.generate(); + return "".concat(this.options.identifiersPrefix).concat(identifierName).replace('__', '_'); + } + }]); + return HexadecimalIdentifierNamesGenerator; +}(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator); + +HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6; +HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], HexadecimalIdentifierNamesGenerator); +exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts": +/*!***************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var MangledIdentifierNamesGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); + +var MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = +/*#__PURE__*/ +function (_AbstractIdentifierNa) { + (0, _inherits2.default)(MangledIdentifierNamesGenerator, _AbstractIdentifierNa); + + function MangledIdentifierNamesGenerator(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, MangledIdentifierNamesGenerator); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MangledIdentifierNamesGenerator).call(this, randomGenerator, options)); + _this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + return _this; + } + + (0, _createClass2.default)(MangledIdentifierNamesGenerator, [{ + key: "generate", + value: function generate() { + var identifierName = this.generateNewMangledName(this.previousMangledName); + this.previousMangledName = identifierName; + return identifierName; + } + }, { + key: "generateWithPrefix", + value: function generateWithPrefix() { + var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : ''; + var identifierName = this.generate(); + return "".concat(prefix).concat(identifierName); + } + }, { + key: "isValidIdentifierName", + value: function isValidIdentifierName(mangledName) { + return (0, _get2.default)((0, _getPrototypeOf2.default)(MangledIdentifierNamesGenerator.prototype), "isValidIdentifierName", this).call(this, mangledName) && !MangledIdentifierNamesGenerator_1.reservedNames.includes(mangledName); + } + }, { + key: "generateNewMangledName", + value: function generateNewMangledName(previousMangledName) { + var generateNewMangledName = function generateNewMangledName(name) { + var nameSequence = MangledIdentifierNamesGenerator_1.nameSequence; + var nameLength = name.length; + + var zeroSequence = function zeroSequence(num) { + return '0'.repeat(num); + }; + + var index = nameLength - 1; + + do { + var character = name.charAt(index); + var indexInSequence = nameSequence.indexOf(character); + var lastNameSequenceIndex = nameSequence.length - 1; + + if (indexInSequence !== lastNameSequenceIndex) { + var previousNamePart = name.substring(0, index); + var nextCharacter = nameSequence[indexInSequence + 1]; + var zeroSequenceLength = nameLength - (index + 1); + var zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + + --index; + } while (index >= 0); + + return "a".concat(zeroSequence(nameLength)); + }; + + var newMangledName = generateNewMangledName(previousMangledName); + + if (!this.isValidIdentifierName(newMangledName)) { + newMangledName = this.generateNewMangledName(newMangledName); + } + + return newMangledName; + } + }]); + return MangledIdentifierNamesGenerator; +}(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator); + +MangledIdentifierNamesGenerator.initMangledNameCharacter = '9'; +MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); +MangledIdentifierNamesGenerator.reservedNames = ['byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', 'var', 'void', 'with']; +MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MangledIdentifierNamesGenerator); +exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var Logger_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk")); + +var LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); + +var Logger = Logger_1 = +/*#__PURE__*/ +function () { + function Logger(options) { + (0, _classCallCheck2.default)(this, Logger); + this.options = options; + } + + (0, _createClass2.default)(Logger, [{ + key: "info", + value: function info(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }, { + key: "success", + value: function success(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }, { + key: "warn", + value: function warn(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }], [{ + key: "log", + value: function log(loggingLevelColor, loggingPrefix, loggingMessage, value) { + var processedMessage = loggingLevelColor("\n".concat(loggingPrefix, " ").concat(loggingMessage)); + console.log(processedMessage, value || ''); + } + }]); + return Logger; +}(); + +Logger.colorInfo = chalk_1.default.cyan; +Logger.colorSuccess = chalk_1.default.green; +Logger.colorWarn = chalk_1.default.yellow; +Logger = Logger_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], Logger); +exports.Logger = Logger; + +/***/ }), + +/***/ "./src/node-transformers/AbstractNodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/node-transformers/AbstractNodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractNodeTransformer = function AbstractNodeTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractNodeTransformer); + this.randomGenerator = randomGenerator; + this.options = options; +}; + +AbstractNodeTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractNodeTransformer); +exports.AbstractNodeTransformer = AbstractNodeTransformer; + +/***/ }), + +/***/ "./src/node-transformers/TransformersRunner.ts": +/*!*****************************************************!*\ + !*** ./src/node-transformers/TransformersRunner.ts ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var TransformersRunner = +/*#__PURE__*/ +function () { + function TransformersRunner(nodeTransformerFactory) { + (0, _classCallCheck2.default)(this, TransformersRunner); + this.nodeTransformerFactory = nodeTransformerFactory; + } + + (0, _createClass2.default)(TransformersRunner, [{ + key: "transform", + value: function transform(astTree, nodeTransformers, transformationStage) { + if (!nodeTransformers.length) { + return astTree; + } + + var enterVisitors = []; + var leaveVisitors = []; + var nodeTransformersLength = nodeTransformers.length; + var visitor; + + for (var i = 0; i < nodeTransformersLength; i++) { + visitor = this.nodeTransformerFactory(nodeTransformers[i]).getVisitor(transformationStage); + + if (!visitor) { + continue; + } + + if (visitor.enter) { + enterVisitors.push({ + enter: visitor.enter + }); + } + + if (visitor.leave) { + leaveVisitors.push({ + leave: visitor.leave + }); + } + } + + if (!enterVisitors.length && !leaveVisitors.length) { + return astTree; + } + + estraverse.replace(astTree, { + enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter), + leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave) + }); + return astTree; + } + }, { + key: "mergeVisitorsForDirection", + value: function mergeVisitorsForDirection(visitors, direction) { + var visitorsLength = visitors.length; + + if (!visitorsLength) { + return function (node, parentNode) { + return node; + }; + } + + return function (node, parentNode) { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + + for (var i = 0; i < visitorsLength; i++) { + var visitorFunction = visitors[i][direction]; + + if (!visitorFunction) { + continue; + } + + var visitorResult = visitorFunction(node, parentNode); + + if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) { + continue; + } + + node = visitorResult; + } + + return node; + }; + } + }]); + return TransformersRunner; +}(); + +TransformersRunner = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), tslib_1.__metadata("design:paramtypes", [Function])], TransformersRunner); +exports.TransformersRunner = TransformersRunner; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BlockStatementControlFlowTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(BlockStatementControlFlowTransformer, _AbstractNodeTransfor); + + function BlockStatementControlFlowTransformer(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, BlockStatementControlFlowTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementControlFlowTransformer).call(this, randomGenerator, options)); + _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + _this.arrayUtils = arrayUtils; + return _this; + } + + (0, _createClass2.default)(BlockStatementControlFlowTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.ControlFlowFlattening: + return { + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(blockStatementNode, parentNode) { + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + + var blockStatementBody = blockStatementNode.body; + var originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length); + var shuffledKeys = this.arrayUtils.shuffle(originalKeys); + var originalKeysIndexesInShuffledArray = originalKeys.map(function (key) { + return shuffledKeys.indexOf(key); + }); + var blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray); + var newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } + }], [{ + key: "blockStatementHasProhibitedStatements", + value: function blockStatementHasProhibitedStatements(blockStatementNode) { + return blockStatementNode.body.some(function (statement) { + var isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(statement) || NodeGuards_1.NodeGuards.isContinueStatementNode(statement); + var isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && (statement.kind === 'const' || statement.kind === 'let'); + var isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(statement); + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement) || isBreakOrContinueStatement || isVariableDeclarationWithLetOrConstKind || isClassDeclaration; + }); + } + }, { + key: "canTransformBlockStatementNode", + value: function canTransformBlockStatementNode(blockStatementNode) { + var canTransform = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && BlockStatementControlFlowTransformer_1.blockStatementHasProhibitedStatements(node)) { + canTransform = false; + } + } + }); + + if (blockStatementNode.body.length <= 4) { + canTransform = false; + } + + return canTransform; + } + }]); + return BlockStatementControlFlowTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], BlockStatementControlFlowTransformer); +exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var FunctionControlFlowTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionControlFlowTransformer, _AbstractNodeTransfor); + + function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionControlFlowTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionControlFlowTransformer).call(this, randomGenerator, options)); + _this.controlFlowData = new _map.default(); + _this.visitedFunctionNodes = new _set.default(); + _this.hostNodesWithControlFlowNode = new _set.default(); + _this.controlFlowStorageFactory = controlFlowStorageFactory; + _this.controlFlowReplacerFactory = controlFlowReplacerFactory; + _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + return _this; + } + + (0, _createClass2.default)(FunctionControlFlowTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.ControlFlowFlattening: + return { + leave: function leave(node, parentNode) { + if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionNode, parentNode) { + this.visitedFunctionNodes.add(functionNode); + + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) { + return functionNode; + } + + var hostNode = this.getHostNode(functionNode.body); + var controlFlowStorage = this.getControlFlowStorage(hostNode); + this.controlFlowData.set(hostNode, controlFlowStorage); + this.transformFunctionBody(functionNode.body, controlFlowStorage); + + if (!controlFlowStorage.getLength()) { + return functionNode; + } + + var controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + controlFlowStorageCustomNode.initialize(controlFlowStorage); + NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode()); + this.hostNodesWithControlFlowNode.add(hostNode); + return functionNode; + } + }, { + key: "getControlFlowStorage", + value: function getControlFlowStorage(hostNode) { + var controlFlowStorage = this.controlFlowStorageFactory(); + + if (this.controlFlowData.has(hostNode)) { + if (this.hostNodesWithControlFlowNode.has(hostNode)) { + hostNode.body.shift(); + } + + var hostControlFlowStorage = this.controlFlowData.get(hostNode); + controlFlowStorage.mergeWith(hostControlFlowStorage, true); + } + + return controlFlowStorage; + } + }, { + key: "getHostNode", + value: function getHostNode(functionNodeBody) { + var blockScopesOfNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionNodeBody); + + if (blockScopesOfNode.length === 1) { + return functionNodeBody; + } else { + blockScopesOfNode.pop(); + } + + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) { + blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth); + } + + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) { + blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth; + } + + return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode); + } + }, { + key: "isVisitedFunctionNode", + value: function isVisitedFunctionNode(node) { + return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node); + } + }, { + key: "transformFunctionBody", + value: function transformFunctionBody(functionNodeBody, controlFlowStorage) { + var _this3 = this; + + estraverse.replace(functionNodeBody, { + enter: function enter(node, parentNode) { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (_this3.isVisitedFunctionNode(node) || !parentNode) { + return estraverse.VisitorOption.Skip; + } + + if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) { + return node; + } + + if (_this3.randomGenerator.getMathRandom() > _this3.options.controlFlowFlatteningThreshold) { + return node; + } + + var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type); + + if (controlFlowReplacerName === undefined) { + return node; + } + + return (0, _assign.default)({}, _this3.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage), { + parentNode: parentNode + }); + } + }); + } + }]); + return FunctionControlFlowTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionControlFlowTransformer.controlFlowReplacersMap = new _map.default([[NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]]); +FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0; +FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2; +FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Function, Object, Object])], FunctionControlFlowTransformer); +exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = +/*#__PURE__*/ +function () { + function AbstractControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractControlFlowReplacer); + this.replacerDataByControlFlowStorageId = new _map.default(); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractControlFlowReplacer, [{ + key: "insertCustomNodeToControlFlowStorage", + value: function insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) { + var _this = this; + + var controlFlowStorageId = controlFlowStorage.getStorageId(); + var storageKeysById = AbstractControlFlowReplacer_1.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId); + var storageKeysForCurrentId = storageKeysById.get(replacerId); + + if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && storageKeysForCurrentId && storageKeysForCurrentId.length) { + return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId); + } + + var generateStorageKey = function generateStorageKey(length) { + var key = _this.randomGenerator.getRandomString(length); + + if (controlFlowStorage.getStorage().has(key)) { + return generateStorageKey(length); + } + + return key; + }; + + var storageKey = generateStorageKey(5); + storageKeysById.set(replacerId, [storageKey]); + this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById); + controlFlowStorage.set(storageKey, customNode); + return storageKey; + } + }], [{ + key: "getStorageKeysByIdForCurrentStorage", + value: function getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) { + var storageKeysById; + + if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) { + storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId); + } else { + storageKeysById = new _map.default(); + } + + return storageKeysById; + } + }]); + return AbstractControlFlowReplacer; +}(); + +AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractControlFlowReplacer); +exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts": +/*!***********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***! + \***********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BinaryExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); + +var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_ExpressionWithOperat) { + (0, _inherits2.default)(BinaryExpressionControlFlowReplacer, _ExpressionWithOperat); + + function BinaryExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BinaryExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BinaryExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BinaryExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) { + var replacerId = binaryExpressionNode.operator; + var binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + binaryExpressionFunctionCustomNode.initialize(replacerId); + var storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, replacerId, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right); + } + }]); + return BinaryExpressionControlFlowReplacer; +}(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer); + +BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionControlFlowReplacer); +exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CallExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(CallExpressionControlFlowReplacer, _AbstractControlFlowR); + + function CallExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(callExpressionNode, parentNode, controlFlowStorage) { + var callee = callExpressionNode.callee; + + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return callExpressionNode; + } + + var replacerId = String(callExpressionNode.arguments.length); + var callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + var expressionArguments = callExpressionNode.arguments; + callExpressionFunctionCustomNode.initialize(expressionArguments); + var storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments); + } + }, { + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return CallExpressionControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowReplacer); +exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ExpressionWithOperatorControlFlowReplacer = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(ExpressionWithOperatorControlFlowReplacer, _AbstractControlFlowR); + + function ExpressionWithOperatorControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ExpressionWithOperatorControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExpressionWithOperatorControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ExpressionWithOperatorControlFlowReplacer, [{ + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return ExpressionWithOperatorControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +ExpressionWithOperatorControlFlowReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowReplacer); +exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var LogicalExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_ExpressionWithOperat) { + (0, _inherits2.default)(LogicalExpressionControlFlowReplacer, _ExpressionWithOperat); + + function LogicalExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, LogicalExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LogicalExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(LogicalExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(logicalExpressionNode, parentNode, controlFlowStorage) { + if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) { + return logicalExpressionNode; + } + + var replacerId = logicalExpressionNode.operator; + var logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + logicalExpressionFunctionCustomNode.initialize(replacerId); + var storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, replacerId, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right); + } + }, { + key: "checkForProhibitedExpressions", + value: function checkForProhibitedExpressions(leftExpression, rightExpression) { + return [leftExpression, rightExpression].some(function (expressionNode) { + var nodeForCheck; + + if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) { + nodeForCheck = expressionNode; + } else { + nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode); + } + + return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck); + }); + } + }]); + return LogicalExpressionControlFlowReplacer; +}(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer); + +LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionControlFlowReplacer); +exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts": +/*!********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringLiteralControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(StringLiteralControlFlowReplacer, _AbstractControlFlowR); + + function StringLiteralControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralControlFlowReplacer, [{ + key: "replace", + value: function replace(literalNode, parentNode, controlFlowStorage) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return literalNode; + } + + if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) { + return literalNode; + } + + var replacerId = String(literalNode.value); + var literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + literalFunctionCustomNode.initialize(literalNode.value); + var storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey); + } + }, { + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return StringLiteralControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1; +StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowReplacer); +exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var MemberExpressionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MemberExpressionTransformer, _AbstractNodeTransfor); + + function MemberExpressionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MemberExpressionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MemberExpressionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MemberExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(memberExpressionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) { + if (memberExpressionNode.computed) { + return memberExpressionNode; + } + + memberExpressionNode.computed = true; + memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name); + } + + return memberExpressionNode; + } + }]); + return MemberExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MemberExpressionTransformer); +exports.MemberExpressionTransformer = MemberExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var MethodDefinitionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var MethodDefinitionTransformer = MethodDefinitionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MethodDefinitionTransformer, _AbstractNodeTransfor); + + function MethodDefinitionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MethodDefinitionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MethodDefinitionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MethodDefinitionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(methodDefinitionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) { + methodDefinitionNode.computed = true; + methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(methodDefinitionNode.key.name); + } + + return methodDefinitionNode; + } + }]); + return MethodDefinitionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MethodDefinitionTransformer.ignoredNames = ['constructor']; +MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MethodDefinitionTransformer); +exports.MethodDefinitionTransformer = MethodDefinitionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObjectExpressionKeysTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var PropertiesExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObjectExpressionKeysTransformer, _AbstractNodeTransfor); + + function ObjectExpressionKeysTransformer(propertiesExtractorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ObjectExpressionKeysTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionKeysTransformer).call(this, randomGenerator, options)); + _this.propertiesExtractorFactory = propertiesExtractorFactory; + return _this; + } + + (0, _createClass2.default)(ObjectExpressionKeysTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + if (transformationStage !== TransformationStage_1.TransformationStage.Converting) { + return null; + } + + return { + enter: function enter(node, parentNode) { + if (_this2.options.transformObjectKeys && parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + } + }, { + key: "transformNode", + value: function transformNode(objectExpressionNode, parentNode) { + if (!objectExpressionNode.properties.length) { + return objectExpressionNode; + } + + var propertiesExtractorName = ObjectExpressionKeysTransformer_1.propertiesExtractorsMap.get(parentNode.type); + + if (!propertiesExtractorName) { + return objectExpressionNode; + } + + var propertiesExtractor = this.propertiesExtractorFactory(propertiesExtractorName); + return propertiesExtractor.extract(objectExpressionNode, parentNode); + } + }]); + return ObjectExpressionKeysTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObjectExpressionKeysTransformer.propertiesExtractorsMap = new _map.default([[NodeType_1.NodeType.AssignmentExpression, PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor], [NodeType_1.NodeType.VariableDeclarator, PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]); +ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObjectExpressionKeysTransformer); +exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ObjectExpressionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObjectExpressionTransformer, _AbstractNodeTransfor); + + function ObjectExpressionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ObjectExpressionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(ObjectExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(objectExpressionNode, parentNode) { + objectExpressionNode.properties.forEach(function (property) { + if (property.computed || !property.key) { + return; + } + + if (property.shorthand) { + property.shorthand = false; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name); + } + }); + return objectExpressionNode; + } + }]); + return ObjectExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObjectExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ObjectExpressionTransformer); +exports.ObjectExpressionTransformer = ObjectExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var TemplateLiteralTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var TemplateLiteralTransformer = TemplateLiteralTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(TemplateLiteralTransformer, _AbstractNodeTransfor); + + function TemplateLiteralTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, TemplateLiteralTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TemplateLiteralTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(TemplateLiteralTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + leave: function leave(node, parentNode) { + if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(templateLiteralNode, parentNode) { + var templateLiteralExpressions = templateLiteralNode.expressions; + var nodes = []; + templateLiteralNode.quasis.forEach(function (templateElement) { + nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked)); + var expression = templateLiteralExpressions.shift(); + + if (!expression) { + return; + } + + nodes.push(expression); + }); + nodes = nodes.filter(function (node) { + return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === ''); + }); + + if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { + nodes.unshift(NodeFactory_1.NodeFactory.literalNode('')); + } + + if (nodes.length > 1) { + var root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift()); + nodes.forEach(function (node) { + root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node); + }); + return root; + } + + return nodes[0]; + } + }], [{ + key: "isLiteralNodeWithStringValue", + value: function isLiteralNodeWithStringValue(node) { + return node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string'; + } + }, { + key: "isValidTemplateLiteralNode", + value: function isValidTemplateLiteralNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode); + } + }]); + return TemplateLiteralTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], TemplateLiteralTransformer); +exports.TemplateLiteralTransformer = TemplateLiteralTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractPropertiesExtractor_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 = +/*#__PURE__*/ +function () { + function AbstractPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractPropertiesExtractor); + this.cachedHostScopesMap = new _map.default(); + this.cachedHostStatementsMap = new _map.default(); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractPropertiesExtractor, [{ + key: "extractPropertiesToExpressionStatements", + value: function extractPropertiesToExpressionStatements(properties, memberExpressionHostNode) { + var propertiesLength = properties.length; + var expressionStatements = []; + var removablePropertyIds = []; + + for (var i = 0; i < propertiesLength; i++) { + var property = properties[i]; + var propertyValue = property.value; + + if (AbstractPropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + + var propertyKeyName = AbstractPropertiesExtractor_1.getPropertyNodeKeyName(property); + + if (!propertyKeyName) { + continue; + } + + var shouldCreateLiteralNode = !property.computed || property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key); + var memberExpressionProperty = shouldCreateLiteralNode ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName); + var memberExpressionNode = NodeFactory_1.NodeFactory.memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true); + var expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue)); + + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) { + this.transformObjectExpressionNode(property.value, memberExpressionNode); + } + + expressionStatements.push(expressionStatementNode); + removablePropertyIds.push(i); + } + + return [expressionStatements, removablePropertyIds]; + } + }, { + key: "filterExtractedObjectExpressionProperties", + value: function filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) { + objectExpressionNode.properties = objectExpressionNode.properties.filter(function (property, index) { + return !removablePropertyIds.includes(index); + }); + } + }, { + key: "transformObjectExpressionNode", + value: function transformObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) { + var properties = objectExpressionNode.properties; + + var _this$extractProperti = this.extractPropertiesToExpressionStatements(properties, memberExpressionHostNode), + _this$extractProperti2 = (0, _slicedToArray2.default)(_this$extractProperti, 2), + expressionStatements = _this$extractProperti2[0], + removablePropertyIds = _this$extractProperti2[1]; + + var hostStatement = this.getHostStatement(objectExpressionNode); + var scopeNode = this.getHostScopeNode(objectExpressionNode, hostStatement); + this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds); + NodeAppender_1.NodeAppender.insertAfter(scopeNode, expressionStatements, hostStatement); + return objectExpressionNode; + } + }, { + key: "getHostScopeNode", + value: function getHostScopeNode(objectExpressionNode, hostStatement) { + if (this.cachedHostScopesMap.has(objectExpressionNode)) { + return this.cachedHostScopesMap.get(objectExpressionNode); + } + + var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(hostStatement); + this.cachedHostScopesMap.set(objectExpressionNode, scopeNode); + return scopeNode; + } + }, { + key: "getHostStatement", + value: function getHostStatement(objectExpressionNode) { + if (this.cachedHostStatementsMap.has(objectExpressionNode)) { + return this.cachedHostStatementsMap.get(objectExpressionNode); + } + + var hostStatement = NodeUtils_1.NodeUtils.getRootStatementOfNode(objectExpressionNode); + this.cachedHostStatementsMap.set(objectExpressionNode, hostStatement); + return hostStatement; + } + }], [{ + key: "getPropertyNodeKeyName", + value: function getPropertyNodeKeyName(propertyNode) { + if (!propertyNode.key) { + return null; + } + + var propertyKeyNode = propertyNode.key; + + if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) && typeof propertyKeyNode.value === 'string') { + return propertyKeyNode.value; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) { + return propertyKeyNode.name; + } + + return null; + } + }, { + key: "isProhibitedPattern", + value: function isProhibitedPattern(node) { + return NodeGuards_1.NodeGuards.isObjectPatternNode(node) || NodeGuards_1.NodeGuards.isArrayPatternNode(node) || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) || NodeGuards_1.NodeGuards.isRestElementNode(node); + } + }]); + return AbstractPropertiesExtractor; +}(); + +AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractPropertiesExtractor); +exports.AbstractPropertiesExtractor = AbstractPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts"); + +var AssignmentExpressionPropertiesExtractor = +/*#__PURE__*/ +function (_AbstractPropertiesEx) { + (0, _inherits2.default)(AssignmentExpressionPropertiesExtractor, _AbstractPropertiesEx); + + function AssignmentExpressionPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AssignmentExpressionPropertiesExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(AssignmentExpressionPropertiesExtractor).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(AssignmentExpressionPropertiesExtractor, [{ + key: "extract", + value: function extract(objectExpressionNode, hostNode) { + var leftNode = hostNode.left; + + if (AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedPattern(leftNode)) { + return objectExpressionNode; + } + + return this.transformObjectExpressionNode(objectExpressionNode, leftNode); + } + }]); + return AssignmentExpressionPropertiesExtractor; +}(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor); + +AssignmentExpressionPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AssignmentExpressionPropertiesExtractor); +exports.AssignmentExpressionPropertiesExtractor = AssignmentExpressionPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var VariableDeclaratorPropertiesExtractor = +/*#__PURE__*/ +function (_AbstractPropertiesEx) { + (0, _inherits2.default)(VariableDeclaratorPropertiesExtractor, _AbstractPropertiesEx); + + function VariableDeclaratorPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, VariableDeclaratorPropertiesExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(VariableDeclaratorPropertiesExtractor).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(VariableDeclaratorPropertiesExtractor, [{ + key: "extract", + value: function extract(objectExpressionNode, hostNode) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id) || this.isProhibitedObjectExpressionNode(objectExpressionNode, hostNode.id)) { + return objectExpressionNode; + } + + return this.transformObjectExpressionNode(objectExpressionNode, hostNode.id); + } + }, { + key: "getHostVariableDeclaratorNode", + value: function getHostVariableDeclaratorNode(objectExpressionNode) { + var parentNode = objectExpressionNode.parentNode; + + if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)) { + throw new Error('Cannot get `VariableDeclarator` node for `ObjectExpression` node'); + } + + return parentNode; + } + }, { + key: "getHostVariableDeclarationNode", + value: function getHostVariableDeclarationNode(variableDeclaratorNode) { + var parentNode = variableDeclaratorNode.parentNode; + + if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode)) { + throw new Error('Cannot get `VariableDeclaration` node for `VariableDeclarator` node'); + } + + return parentNode; + } + }, { + key: "isProhibitedObjectExpressionNode", + value: function isProhibitedObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) { + var hostVariableDeclarator = this.getHostVariableDeclaratorNode(objectExpressionNode); + var hostVariableDeclaration = this.getHostVariableDeclarationNode(hostVariableDeclarator); + var declarations = hostVariableDeclaration.declarations; + var indexOfDeclarator = declarations.indexOf(hostVariableDeclarator); + var isLastDeclarator = indexOfDeclarator === declarations.length - 1; + + if (isLastDeclarator) { + return false; + } + + var declaratorsAfterCurrentDeclarator = declarations.slice(indexOfDeclarator); + var isProhibitedObjectExpressionNode = false; + declaratorsAfterCurrentDeclarator.forEach(function (variableDeclarator) { + estraverse.traverse(variableDeclarator, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.object) && node.object.name === memberExpressionHostNode.name) { + isProhibitedObjectExpressionNode = true; + return estraverse.VisitorOption.Break; + } + + return node; + } + }); + }); + return isProhibitedObjectExpressionNode; + } + }]); + return VariableDeclaratorPropertiesExtractor; +}(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor); + +VariableDeclaratorPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], VariableDeclaratorPropertiesExtractor); +exports.VariableDeclaratorPropertiesExtractor = VariableDeclaratorPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var DeadCodeInjectionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(DeadCodeInjectionTransformer, _AbstractNodeTransfor); + + function DeadCodeInjectionTransformer(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DeadCodeInjectionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DeadCodeInjectionTransformer).call(this, randomGenerator, options)); + _this.deadCodeInjectionRootAstHostNodeSet = new _set.default(); + _this.collectedBlockStatements = []; + _this.collectedBlockStatementsTotalLength = 0; + _this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory; + _this.transformersRunner = transformersRunner; + return _this; + } + + (0, _createClass2.default)(DeadCodeInjectionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.DeadCodeInjection: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.analyzeNode(node, parentNode); + + return node; + } + }, + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + if (!this.deadCodeInjectionRootAstHostNodeSet.size) { + return null; + } + + return { + enter: function enter(node, parentNode) { + if (parentNode && _this2.isDeadCodeInjectionRootAstHostNode(node)) { + return _this2.restoreNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "analyzeNode", + value: function analyzeNode(programNode, parentNode) { + var _this3 = this; + + estraverse.traverse(programNode, { + enter: function enter(node) { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return; + } + + var clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node); + + if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) { + return; + } + + NodeUtils_1.NodeUtils.parentizeNode(clonedBlockStatementNode, clonedBlockStatementNode); + clonedBlockStatementNode = _this3.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode); + + _this3.collectedBlockStatements.push(clonedBlockStatementNode); + } + }); + this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length; + } + }, { + key: "transformNode", + value: function transformNode(blockStatementNode, parentNode) { + var canBreakTraverse = !this.collectedBlockStatements.length || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount; + + if (canBreakTraverse) { + return estraverse.VisitorOption.Break; + } + + if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + + var minInteger = 0; + var maxInteger = this.collectedBlockStatements.length - 1; + var randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger); + var randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0]; + var isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode; + + if (isDuplicateBlockStatementNodes) { + return blockStatementNode; + } + + return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode); + } + }, { + key: "restoreNode", + value: function restoreNode(deadCodeInjectionRootAstHostNode, parentNode) { + var hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0]; + + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) { + throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node'); + } + + return hostNodeFirstStatement.body; + } + }, { + key: "isDeadCodeInjectionRootAstHostNode", + value: function isDeadCodeInjectionRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node); + } + }, { + key: "makeClonedBlockStatementNodeUnique", + value: function makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) { + return this.transformersRunner.transform(clonedBlockStatementNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, TransformationStage_1.TransformationStage.Obfuscating); + } + }, { + key: "replaceBlockStatementNode", + value: function replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) { + var deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)]); + this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode); + var blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode); + var newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } + }], [{ + key: "isProhibitedNodeInsideCollectedBlockStatement", + value: function isProhibitedNodeInsideCollectedBlockStatement(targetNode) { + return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) || NodeGuards_1.NodeGuards.isSuperNode(targetNode); + } + }, { + key: "isScopeHoistingFunctionDeclaration", + value: function isScopeHoistingFunctionDeclaration(targetNode) { + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) { + return false; + } + + var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(targetNode); + var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent; + var indexInScope = scopeBody.indexOf(targetNode); + + if (indexInScope === 0) { + return false; + } + + var slicedBody = scopeBody.slice(0, indexInScope); + var hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody); + var functionDeclarationName = targetNode.id.name; + var isScopeHoistedFunctionDeclaration = false; + estraverse.traverse(hostBlockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) { + isScopeHoistedFunctionDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + }); + return isScopeHoistedFunctionDeclaration; + } + }, { + key: "isValidCollectedBlockStatementNode", + value: function isValidCollectedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + + var nestedBlockStatementsCount = 0; + var isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + nestedBlockStatementsCount++; + } + + if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isValidBlockStatementNode; + } + }, { + key: "isValidWrappedBlockStatementNode", + value: function isValidWrappedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + + var isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + + if (!isValidBlockStatementNode) { + return false; + } + + var blockScopeOfBlockStatementNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockStatementNode); + return blockScopeOfBlockStatementNode.type !== NodeType_1.NodeType.Program; + } + }]); + return DeadCodeInjectionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode'; +DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4; +DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5; +DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer]; +DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DeadCodeInjectionTransformer); +exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts": +/*!**********************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CatchClauseTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CatchClauseTransformer, _AbstractNodeTransfor); + + function CatchClauseTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CatchClauseTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CatchClauseTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(CatchClauseTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isCatchClauseNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(catchClauseNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(catchClauseNode); + this.storeCatchClauseParam(catchClauseNode, blockScopeNode); + this.replaceCatchClauseParam(catchClauseNode, blockScopeNode); + return catchClauseNode; + } + }, { + key: "storeCatchClauseParam", + value: function storeCatchClauseParam(catchClauseNode, blockScopeNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(catchClauseNode.param)) { + this.identifierObfuscatingReplacer.storeLocalName(catchClauseNode.param.name, blockScopeNode); + } + } + }, { + key: "replaceCatchClauseParam", + value: function replaceCatchClauseParam(catchClauseNode, blockScopeNode) { + var _this3 = this; + + estraverse.replace(catchClauseNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } + } + } + }); + } + }]); + return CatchClauseTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CatchClauseTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CatchClauseTransformer); +exports.CatchClauseTransformer = CatchClauseTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ClassDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ClassDeclarationTransformer, _AbstractNodeTransfor); + + function ClassDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ClassDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ClassDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(ClassDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isClassDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(classDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(classDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return classDeclarationNode; + } + + this.storeClassName(classDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return classDeclarationNode; + } + }, { + key: "storeClassName", + value: function storeClassName(classDeclarationNode, blockScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(classDeclarationNode.id.name, blockScopeNode); + } else { + this.identifierObfuscatingReplacer.storeLocalName(classDeclarationNode.id.name, blockScopeNode); + } + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(blockScopeNode) { + var _this3 = this; + + var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(blockScopeNode); + cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) { + var newReplaceableIdentifier = _this3.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this4 = this; + + var storedReplaceableIdentifiers = []; + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + storedReplaceableIdentifiers.push(node); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiers); + } + }]); + return ClassDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ClassDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ClassDeclarationTransformer); +exports.ClassDeclarationTransformer = ClassDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionDeclarationTransformer, _AbstractNodeTransfor); + + function FunctionDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(FunctionDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(functionDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return functionDeclarationNode; + } + + this.storeFunctionName(functionDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return functionDeclarationNode; + } + }, { + key: "storeFunctionName", + value: function storeFunctionName(functionDeclarationNode, blockScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(functionDeclarationNode.id.name, blockScopeNode); + } else { + this.identifierObfuscatingReplacer.storeLocalName(functionDeclarationNode.id.name, blockScopeNode); + } + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode) { + var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(blockScopeNode); + + if (!cachedReplaceableIdentifiersNamesMap) { + return; + } + + var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(functionDeclarationNode.id.name); + + if (!cachedReplaceableIdentifiers) { + return; + } + + var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length; + + for (var i = 0; i < cachedReplaceableIdentifierLength; i++) { + var replaceableIdentifier = cachedReplaceableIdentifiers[i]; + var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + } + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this3 = this; + + var storedReplaceableIdentifiersNamesMap = new _map.default(); + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || []; + storedReplaceableIdentifiers.push(node); + storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiersNamesMap); + } + }]); + return FunctionDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionDeclarationTransformer); +exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts": +/*!*******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionTransformer, _AbstractNodeTransfor); + + function FunctionTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(FunctionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isFunctionNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionNode, parentNode) { + var blockScopeNode = NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body) ? functionNode.body : NodeUtils_1.NodeUtils.getBlockScopeOfNode(functionNode.body); + this.storeFunctionParams(functionNode, blockScopeNode); + this.replaceFunctionParams(functionNode, blockScopeNode); + return functionNode; + } + }, { + key: "storeFunctionParams", + value: function storeFunctionParams(functionNode, blockScopeNode) { + var _this3 = this; + + functionNode.params.forEach(function (paramsNode) { + estraverse.traverse(paramsNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.left)) { + _this3.identifierObfuscatingReplacer.storeLocalName(node.left.name, blockScopeNode); + + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + _this3.identifierObfuscatingReplacer.storeLocalName(node.name, blockScopeNode); + } + } + }); + }); + } + }, { + key: "addIdentifiersToIgnoredIdentifierNamesSet", + value: function addIdentifiersToIgnoredIdentifierNamesSet(properties, ignoredIdentifierNamesSet) { + properties.forEach(function (property) { + if (!property.key || !NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + return; + } + + ignoredIdentifierNamesSet.add(property.key.name); + }); + } + }, { + key: "replaceFunctionParams", + value: function replaceFunctionParams(functionNode, blockScopeNode) { + var _this4 = this; + + var ignoredIdentifierNamesSet = new _set.default(); + var replaceVisitor = { + enter: function enter(node, parentNode) { + if (NodeGuards_1.NodeGuards.isObjectPatternNode(node) && node.parentNode === functionNode) { + _this4.addIdentifiersToIgnoredIdentifierNamesSet(node.properties, ignoredIdentifierNamesSet); + } + + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !ignoredIdentifierNamesSet.has(node.name)) { + var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } + } + } + }; + functionNode.params.forEach(function (paramsNode) { + return estraverse.replace(paramsNode, replaceVisitor); + }); + estraverse.replace(functionNode.body, replaceVisitor); + } + }]); + return FunctionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionTransformer); +exports.FunctionTransformer = FunctionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts": +/*!****************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ImportDeclarationTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ImportDeclarationTransformer = ImportDeclarationTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ImportDeclarationTransformer, _AbstractNodeTransfor); + + function ImportDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ImportDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ImportDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(ImportDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isImportDeclarationNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(importDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(importDeclarationNode); + this.storeImportSpecifierNames(importDeclarationNode, blockScopeNode); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return importDeclarationNode; + } + }, { + key: "storeImportSpecifierNames", + value: function storeImportSpecifierNames(importDeclarationNode, blockScopeNode) { + var _this3 = this; + + importDeclarationNode.specifiers.forEach(function (importSpecifierNode) { + if (ImportDeclarationTransformer_1.isProhibitedImportSpecifierNode(importSpecifierNode)) { + return; + } + + _this3.identifierObfuscatingReplacer.storeGlobalName(importSpecifierNode.local.name, blockScopeNode); + }); + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(blockScopeNode) { + var _this4 = this; + + var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(blockScopeNode); + cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) { + var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this5 = this; + + var storedReplaceableIdentifiers = []; + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + storedReplaceableIdentifiers.push(node); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiers); + } + }], [{ + key: "isProhibitedImportSpecifierNode", + value: function isProhibitedImportSpecifierNode(importSpecifierNode) { + return NodeGuards_1.NodeGuards.isImportSpecifierNode(importSpecifierNode) && importSpecifierNode.imported.name === importSpecifierNode.local.name; + } + }]); + return ImportDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ImportDeclarationTransformer = ImportDeclarationTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ImportDeclarationTransformer); +exports.ImportDeclarationTransformer = ImportDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LabeledStatementTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(LabeledStatementTransformer, _AbstractNodeTransfor); + + function LabeledStatementTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, LabeledStatementTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LabeledStatementTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(LabeledStatementTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(labeledStatementNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(labeledStatementNode); + this.storeLabeledStatementName(labeledStatementNode, blockScopeNode); + this.replaceLabeledStatementName(labeledStatementNode, blockScopeNode); + return labeledStatementNode; + } + }, { + key: "storeLabeledStatementName", + value: function storeLabeledStatementName(labeledStatementNode, blockScopeNode) { + this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label.name, blockScopeNode); + } + }, { + key: "replaceLabeledStatementName", + value: function replaceLabeledStatementName(labeledStatementNode, blockScopeNode) { + var _this3 = this; + + estraverse.replace(labeledStatementNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + node.name = newIdentifier.name; + } + } + }); + } + }]); + return LabeledStatementTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +LabeledStatementTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LabeledStatementTransformer); +exports.LabeledStatementTransformer = LabeledStatementTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts": +/*!******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var LiteralTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(LiteralTransformer, _AbstractNodeTransfor); + + function LiteralTransformer(literalObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, LiteralTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LiteralTransformer).call(this, randomGenerator, options)); + _this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory; + return _this; + } + + (0, _createClass2.default)(LiteralTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(literalNode, parentNode) { + if (this.isProhibitedNode(literalNode, parentNode)) { + return literalNode; + } + + switch ((0, _typeof2.default)(literalNode.value)) { + case 'boolean': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode.value); + + case 'number': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode.value); + + case 'string': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode.value); + + default: + return literalNode; + } + } + }, { + key: "isProhibitedNode", + value: function isProhibitedNode(literalNode, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return true; + } + + if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) { + return true; + } + + return false; + } + }]); + return LiteralTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +LiteralTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LiteralTransformer); +exports.LiteralTransformer = LiteralTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var VariableDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(VariableDeclarationTransformer, _AbstractNodeTransfor); + + function VariableDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, VariableDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(VariableDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(VariableDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(variableDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(variableDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return variableDeclarationNode; + } + + var scopeNode = variableDeclarationNode.kind === 'var' ? blockScopeNode : parentNode; + this.storeVariableNames(variableDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(scopeNode)) { + this.replaceScopeCachedIdentifiers(variableDeclarationNode, blockScopeNode, scopeNode); + } else { + this.replaceScopeIdentifiers(scopeNode, blockScopeNode); + } + + return variableDeclarationNode; + } + }, { + key: "storeVariableNames", + value: function storeVariableNames(variableDeclarationNode, blockScopeNode, isGlobalDeclaration) { + var _this3 = this; + + this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) { + if (isGlobalDeclaration) { + _this3.identifierObfuscatingReplacer.storeGlobalName(identifierNode.name, blockScopeNode); + } else { + _this3.identifierObfuscatingReplacer.storeLocalName(identifierNode.name, blockScopeNode); + } + }); + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(variableDeclarationNode, blockScopeNode, scopeNode) { + var _this4 = this; + + var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(scopeNode); + + if (!cachedReplaceableIdentifiersNamesMap) { + return; + } + + var identifierNames = []; + this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) { + identifierNames.push(identifierNode.name); + }); + identifierNames.forEach(function (identifierName) { + var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(identifierName); + + if (!cachedReplaceableIdentifiers) { + return; + } + + var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length; + + for (var i = 0; i < cachedReplaceableIdentifierLength; i++) { + var replaceableIdentifier = cachedReplaceableIdentifiers[i]; + + if (identifierName !== replaceableIdentifier.name) { + continue; + } + + var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + } + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(scopeNode, blockScopeNode) { + var _this5 = this; + + var storedReplaceableIdentifiersNamesMap = new _map.default(); + estraverse.replace(scopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || []; + storedReplaceableIdentifiers.push(node); + storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers); + } + } + } + }); + this.replaceableIdentifiers.set(scopeNode, storedReplaceableIdentifiersNamesMap); + } + }, { + key: "traverseDeclarationIdentifiers", + value: function traverseDeclarationIdentifiers(variableDeclarationNode, callback) { + variableDeclarationNode.declarations.forEach(function (declarationNode) { + estraverse.traverse(declarationNode.id, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + callback(node); + } + } + }); + }); + } + }]); + return VariableDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +VariableDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], VariableDeclarationTransformer); +exports.VariableDeclarationTransformer = VariableDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer = function AbstractObfuscatingReplacer(options) { + (0, _classCallCheck2.default)(this, AbstractObfuscatingReplacer); + this.options = options; +}; + +AbstractObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractObfuscatingReplacer); +exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts": +/*!****************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***! + \****************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var BaseIdentifierObfuscatingReplacer = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(BaseIdentifierObfuscatingReplacer, _AbstractObfuscatingR); + + function BaseIdentifierObfuscatingReplacer(identifierNamesGeneratorFactory, options) { + var _this; + + (0, _classCallCheck2.default)(this, BaseIdentifierObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BaseIdentifierObfuscatingReplacer).call(this, options)); + _this.blockScopesMap = new _map.default(); + _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + return _this; + } + + (0, _createClass2.default)(BaseIdentifierObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue, blockScopeNode) { + if (this.blockScopesMap.has(blockScopeNode)) { + var namesMap = this.blockScopesMap.get(blockScopeNode); + + if (namesMap.has(nodeValue)) { + nodeValue = namesMap.get(nodeValue); + } + } + + return NodeFactory_1.NodeFactory.identifierNode(nodeValue); + } + }, { + key: "storeGlobalName", + value: function storeGlobalName(nodeName, blockScopeNode) { + if (this.isReservedName(nodeName)) { + return; + } + + var identifierName = this.identifierNamesGenerator.generateWithPrefix(); + + if (!this.blockScopesMap.has(blockScopeNode)) { + this.blockScopesMap.set(blockScopeNode, new _map.default()); + } + + var namesMap = this.blockScopesMap.get(blockScopeNode); + namesMap.set(nodeName, identifierName); + } + }, { + key: "storeLocalName", + value: function storeLocalName(nodeName, blockScopeNode) { + if (this.isReservedName(nodeName)) { + return; + } + + var identifierName = this.identifierNamesGenerator.generate(); + + if (!this.blockScopesMap.has(blockScopeNode)) { + this.blockScopesMap.set(blockScopeNode, new _map.default()); + } + + var namesMap = this.blockScopesMap.get(blockScopeNode); + namesMap.set(nodeName, identifierName); + } + }, { + key: "isReservedName", + value: function isReservedName(name) { + return this.options.reservedNames.some(function (reservedName) { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } + }]); + return BaseIdentifierObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +BaseIdentifierObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], BaseIdentifierObfuscatingReplacer); +exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts": +/*!*************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BooleanLiteralObfuscatingReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(BooleanLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function BooleanLiteralObfuscatingReplacer(options) { + (0, _classCallCheck2.default)(this, BooleanLiteralObfuscatingReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BooleanLiteralObfuscatingReplacer).call(this, options)); + } + + (0, _createClass2.default)(BooleanLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + return nodeValue ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode(); + } + }], [{ + key: "getTrueUnaryExpressionNode", + value: function getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode()); + } + }, { + key: "getFalseUnaryExpressionNode", + value: function getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } + }]); + return BooleanLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BooleanLiteralObfuscatingReplacer); +exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts"); + +var NumberLiteralObfuscatingReplacer = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(NumberLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function NumberLiteralObfuscatingReplacer(options) { + var _this; + + (0, _classCallCheck2.default)(this, NumberLiteralObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(NumberLiteralObfuscatingReplacer).call(this, options)); + _this.numberLiteralCache = new _map.default(); + return _this; + } + + (0, _createClass2.default)(NumberLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + var rawValue; + + if (this.numberLiteralCache.has(nodeValue)) { + rawValue = this.numberLiteralCache.get(nodeValue); + } else { + if (!NumberUtils_1.NumberUtils.isCeil(nodeValue)) { + rawValue = String(nodeValue); + } else { + rawValue = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(NumberUtils_1.NumberUtils.toHex(nodeValue)); + } + + this.numberLiteralCache.set(nodeValue, rawValue); + } + + return NodeFactory_1.NodeFactory.literalNode(nodeValue, rawValue); + } + }]); + return NumberLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +NumberLiteralObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NumberLiteralObfuscatingReplacer); +exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringLiteralObfuscatingReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts"); + +var StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(StringLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function StringLiteralObfuscatingReplacer(stringArrayStorage, escapeSequenceEncoder, randomGenerator, cryptUtils, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringLiteralObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralObfuscatingReplacer).call(this, options)); + _this.nodesCache = new _map.default(); + _this.stringLiteralHexadecimalIndexCache = new _map.default(); + _this.stringArrayStorage = stringArrayStorage; + _this.escapeSequenceEncoder = escapeSequenceEncoder; + _this.randomGenerator = randomGenerator; + _this.cryptUtils = cryptUtils; + _this.rc4Keys = _this.randomGenerator.getRandomGenerator().n(function () { + return _this.randomGenerator.getRandomGenerator().string({ + length: StringLiteralObfuscatingReplacer_1.rc4KeyLength + }); + }, StringLiteralObfuscatingReplacer_1.rc4KeysCount); + return _this; + } + + (0, _createClass2.default)(StringLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + var useStringArray = this.canUseStringArray(nodeValue); + var cacheKey = "".concat(nodeValue, "-").concat(String(useStringArray)); + var useCacheValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4; + + if (useCacheValue) { + return this.nodesCache.get(cacheKey); + } + + var resultNode = useStringArray ? this.replaceWithStringArrayCallNode(nodeValue) : this.replaceWithLiteralNode(nodeValue); + this.nodesCache.set(cacheKey, resultNode); + return resultNode; + } + }, { + key: "canUseStringArray", + value: function canUseStringArray(nodeValue) { + return this.options.stringArray && nodeValue.length >= StringLiteralObfuscatingReplacer_1.minimumLengthForStringArray && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold; + } + }, { + key: "getStringArrayHexadecimalIndex", + value: function getStringArrayHexadecimalIndex(value, stringArrayStorageLength) { + if (this.stringLiteralHexadecimalIndexCache.has(value)) { + return { + fromCache: true, + index: this.stringLiteralHexadecimalIndexCache.get(value) + }; + } + + var hexadecimalRawIndex = NumberUtils_1.NumberUtils.toHex(stringArrayStorageLength); + var hexadecimalIndex = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(hexadecimalRawIndex); + this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex); + return { + fromCache: false, + index: hexadecimalIndex + }; + } + }, { + key: "getEncodedValue", + value: function getEncodedValue(value) { + var encodedValue; + var key = null; + + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + key = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, key)); + break; + + case StringArrayEncoding_1.StringArrayEncoding.Base64: + encodedValue = this.cryptUtils.btoa(value); + break; + + default: + encodedValue = value; + } + + return { + encodedValue: encodedValue, + key: key + }; + } + }, { + key: "replaceWithLiteralNode", + value: function replaceWithLiteralNode(value) { + return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, this.options.unicodeEscapeSequence)); + } + }, { + key: "replaceWithStringArrayCallNode", + value: function replaceWithStringArrayCallNode(value) { + var _this$getEncodedValue = this.getEncodedValue(value), + encodedValue = _this$getEncodedValue.encodedValue, + key = _this$getEncodedValue.key; + + var escapedValue = this.escapeSequenceEncoder.encode(encodedValue, this.options.unicodeEscapeSequence); + var stringArrayStorageLength = this.stringArrayStorage.getLength(); + var stringArrayStorageCallsWrapperName = this.stringArrayStorage.getStorageId().split('|')[1]; + + var _this$getStringArrayH = this.getStringArrayHexadecimalIndex(escapedValue, stringArrayStorageLength), + fromCache = _this$getStringArrayH.fromCache, + index = _this$getStringArrayH.index; + + if (!fromCache) { + this.stringArrayStorage.set(stringArrayStorageLength, escapedValue); + } + + var callExpressionArgs = [StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(index)]; + + if (key) { + callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(key, this.options.unicodeEscapeSequence))); + } + + var stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(stringArrayStorageCallsWrapperName); + NodeMetadata_1.NodeMetadata.set(stringArrayIdentifierNode, { + renamedIdentifier: true + }); + return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs); + } + }], [{ + key: "getHexadecimalLiteralNode", + value: function getHexadecimalLiteralNode(hexadecimalIndex) { + var hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, { + replacedLiteral: true + }); + return hexadecimalLiteralNode; + } + }, { + key: "getRc4KeyLiteralNode", + value: function getRc4KeyLiteralNode(literalValue) { + var rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { + replacedLiteral: true + }); + return rc4KeyLiteralNode; + } + }]); + return StringLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +StringLiteralObfuscatingReplacer.minimumLengthForStringArray = 3; +StringLiteralObfuscatingReplacer.rc4KeyLength = 4; +StringLiteralObfuscatingReplacer.rc4KeysCount = 50; +StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], StringLiteralObfuscatingReplacer); +exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CommentsTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CommentsTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CommentsTransformer = CommentsTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CommentsTransformer, _AbstractNodeTransfor); + + function CommentsTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, CommentsTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CommentsTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(CommentsTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + if (node.leadingComments) { + node.leadingComments = this.transformComments(node.leadingComments); + } + + if (node.trailingComments) { + node.trailingComments = this.transformComments(node.trailingComments); + } + + return node; + } + }, { + key: "transformComments", + value: function transformComments(comments) { + return comments.filter(function (comment) { + return CommentsTransformer_1.preservedWords.some(function (preservedWord) { + return comment.value.includes(preservedWord); + }); + }); + } + }]); + return CommentsTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CommentsTransformer.preservedWords = ['@license', '@preserve']; +CommentsTransformer = CommentsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], CommentsTransformer); +exports.CommentsTransformer = CommentsTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CustomNodesTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CustomNodesTransformer, _AbstractNodeTransfor); + + function CustomNodesTransformer(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CustomNodesTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CustomNodesTransformer).call(this, randomGenerator, options)); + _this.stackTraceData = []; + _this.stackTraceAnalyzer = stackTraceAnalyzer; + _this.obfuscationEventEmitter = obfuscationEventEmitter; + _this.customNodeGroupStorage = customNodeGroupStorage; + return _this; + } + + (0, _createClass2.default)(CustomNodesTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + leave: function leave(node, parentNode) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.analyzeNode(node, parentNode); + + _this2.appendCustomNodesBeforeObfuscation(node, parentNode); + + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + return { + leave: function leave(node, parentNode) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.appendCustomNodesAfterObfuscation(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "analyzeNode", + value: function analyzeNode(node, parentNode) { + this.stackTraceData = this.stackTraceAnalyzer.analyze(node); + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + return node; + } + }, { + key: "appendCustomNodesBeforeObfuscation", + value: function appendCustomNodesBeforeObfuscation(node, parentNode) { + var _this3 = this; + + this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) { + customNodeGroup.initialize(); + + _this3.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup)); + }); + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.stackTraceData); + } + }, { + key: "appendCustomNodesAfterObfuscation", + value: function appendCustomNodesAfterObfuscation(node, parentNode) { + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.stackTraceData); + } + }]); + return CustomNodesTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CustomNodesTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], CustomNodesTransformer); +exports.CustomNodesTransformer = CustomNodesTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var EvalCallExpressionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var js_string_escape_1 = tslib_1.__importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(EvalCallExpressionTransformer, _AbstractNodeTransfor); + + function EvalCallExpressionTransformer(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, EvalCallExpressionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(EvalCallExpressionTransformer).call(this, randomGenerator, options)); + _this.evalRootAstHostNodeSet = new _set.default(); + return _this; + } + + (0, _createClass2.default)(EvalCallExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isCallExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) && node.callee.name === 'eval') { + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + if (!this.evalRootAstHostNodeSet.size) { + return null; + } + + return { + leave: function leave(node, parentNode) { + if (parentNode && _this2.isEvalRootAstHostNode(node)) { + return _this2.restoreNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(callExpressionNode, parentNode) { + var callExpressionFirstArgument = callExpressionNode.arguments[0]; + + if (!callExpressionFirstArgument) { + return callExpressionNode; + } + + var evalString = EvalCallExpressionTransformer_1.extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument); + + if (!evalString) { + return callExpressionNode; + } + + var ast; + + try { + ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString); + } catch (_a) { + return callExpressionNode; + } + + var evalRootAstHostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast)); + this.evalRootAstHostNodeSet.add(evalRootAstHostNode); + return evalRootAstHostNode; + } + }, { + key: "restoreNode", + value: function restoreNode(evalRootAstHostNode, parentNode) { + var targetAst = evalRootAstHostNode.body.body; + var obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [NodeFactory_1.NodeFactory.literalNode(js_string_escape_1.default(obfuscatedCode))]); + } + }, { + key: "isEvalRootAstHostNode", + value: function isEvalRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node); + } + }], [{ + key: "extractEvalStringFromCallExpressionArgument", + value: function extractEvalStringFromCallExpressionArgument(node) { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return EvalCallExpressionTransformer_1.extractEvalStringFromLiteralNode(node); + } + + if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return EvalCallExpressionTransformer_1.extractEvalStringFromTemplateLiteralNode(node); + } + + return null; + } + }, { + key: "extractEvalStringFromLiteralNode", + value: function extractEvalStringFromLiteralNode(node) { + return typeof node.value === 'string' ? node.value : null; + } + }, { + key: "extractEvalStringFromTemplateLiteralNode", + value: function extractEvalStringFromTemplateLiteralNode(node) { + var quasis = node.quasis; + var allowedQuasisLength = 1; + + if (quasis.length !== allowedQuasisLength || node.expressions.length) { + return null; + } + + return quasis[0].value.cooked; + } + }]); + return EvalCallExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], EvalCallExpressionTransformer); +exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var MetadataTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MetadataTransformer, _AbstractNodeTransfor); + + function MetadataTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MetadataTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MetadataTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MetadataTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: false + }); + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: false + }); + } + + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { + replacedLiteral: false + }); + } + + return node; + } + }]); + return MetadataTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MetadataTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MetadataTransformer); +exports.MetadataTransformer = MetadataTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObfuscatingGuardsTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObfuscatingGuardsTransformer, _AbstractNodeTransfor); + + function ObfuscatingGuardsTransformer(obfuscatingGuardFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ObfuscatingGuardsTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObfuscatingGuardsTransformer).call(this, randomGenerator, options)); + _this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory); + return _this; + } + + (0, _createClass2.default)(ObfuscatingGuardsTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this2.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + var obfuscationAllowed = this.obfuscatingGuards.every(function (nodeGuard) { + return nodeGuard.check(node); + }); + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: !obfuscationAllowed + }); + return node; + } + }]); + return ObfuscatingGuardsTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard, ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard]; +ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObfuscatingGuardsTransformer); +exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ParentificationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ParentificationTransformer, _AbstractNodeTransfor); + + function ParentificationTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ParentificationTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ParentificationTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(ParentificationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode); + } + }]); + return ParentificationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ParentificationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ParentificationTransformer); +exports.ParentificationTransformer = ParentificationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts": +/*!******************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***! + \******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BlackListObfuscatingGuard_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = +/*#__PURE__*/ +function () { + function BlackListObfuscatingGuard() { + (0, _classCallCheck2.default)(this, BlackListObfuscatingGuard); + this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length; + } + + (0, _createClass2.default)(BlackListObfuscatingGuard, [{ + key: "check", + value: function check(node) { + for (var i = 0; i < this.blackListGuardsLength; i++) { + if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) { + return false; + } + } + + return true; + } + }]); + return BlackListObfuscatingGuard; +}(); + +BlackListObfuscatingGuard.blackListGuards = [NodeGuards_1.NodeGuards.isUseStrictOperator]; +BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], BlackListObfuscatingGuard); +exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ConditionalCommentObfuscatingGuard_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = +/*#__PURE__*/ +function () { + function ConditionalCommentObfuscatingGuard() { + (0, _classCallCheck2.default)(this, ConditionalCommentObfuscatingGuard); + this.obfuscationAllowedForCurrentNode = true; + this.obfuscationAllowedForNextNode = null; + } + + (0, _createClass2.default)(ConditionalCommentObfuscatingGuard, [{ + key: "check", + value: function check(node) { + if (this.obfuscationAllowedForNextNode) { + this.obfuscationAllowedForCurrentNode = this.obfuscationAllowedForNextNode; + this.obfuscationAllowedForNextNode = null; + } + + if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return this.obfuscationAllowedForCurrentNode; + } + + var leadingComments = node.leadingComments; + var trailingComments = node.trailingComments; + + if (leadingComments) { + this.obfuscationAllowedForCurrentNode = this.checkComments(leadingComments); + } + + if (trailingComments) { + this.obfuscationAllowedForNextNode = this.checkComments(trailingComments); + } + + return this.obfuscationAllowedForCurrentNode; + } + }, { + key: "checkComments", + value: function checkComments(comments) { + var commentsLength = comments.length; + var obfuscationAllowed = this.obfuscationAllowedForCurrentNode; + + for (var i = 0; i < commentsLength; i++) { + var comment = comments[i]; + + if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) { + obfuscationAllowed = true; + continue; + } + + if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) { + obfuscationAllowed = false; + } + } + + return obfuscationAllowed; + } + }]); + return ConditionalCommentObfuscatingGuard; +}(); + +ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable'); +ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable'); +ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable()], ConditionalCommentObfuscatingGuard); +exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard; + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeAppender = +/*#__PURE__*/ +function () { + function NodeAppender() { + (0, _classCallCheck2.default)(this, NodeAppender); + } + + (0, _createClass2.default)(NodeAppender, null, [{ + key: "append", + value: function append(scope, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope)).concat((0, _toConsumableArray2.default)(statements))); + } + }, { + key: "appendToOptimalBlockScope", + value: function appendToOptimalBlockScope(stackTraceData, blockScopeNode, bodyStatements) { + var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var targetBlockScope = stackTraceData.length ? NodeAppender.getOptimalBlockScope(stackTraceData, index) : blockScopeNode; + NodeAppender.prepend(targetBlockScope, bodyStatements); + } + }, { + key: "getOptimalBlockScope", + value: function getOptimalBlockScope(stackTraceData, index) { + var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity; + var firstCall = stackTraceData[index]; + + if (deep <= 0) { + throw new Error('Invalid `deep` argument value. Value should be bigger then 0.'); + } + + if (deep > 1 && firstCall.stackTrace.length) { + return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep); + } else { + return firstCall.callee; + } + } + }, { + key: "insertAfter", + value: function insertAfter(scope, statements, target) { + var indexInScopeStatement = NodeAppender.getScopeStatements(scope).indexOf(target); + NodeAppender.insertAtIndex(scope, statements, indexInScopeStatement + 1); + } + }, { + key: "insertAtIndex", + value: function insertAtIndex(scope, statements, index) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope).slice(0, index)).concat((0, _toConsumableArray2.default)(statements), (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope).slice(index)))); + } + }, { + key: "prepend", + value: function prepend(scope, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(statements).concat((0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope)))); + } + }, { + key: "getScopeStatements", + value: function getScopeStatements(scope) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scope)) { + return scope.consequent; + } + + return scope.body; + } + }, { + key: "parentizeScopeStatementsBeforeAppend", + value: function parentizeScopeStatementsBeforeAppend(scope, statements) { + statements.forEach(function (statement) { + statement.parentNode = scope; + }); + return statements; + } + }, { + key: "setScopeStatements", + value: function setScopeStatements(scope, statements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scope)) { + scope.consequent = statements; + return; + } + + scope.body = statements; + } + }]); + return NodeAppender; +}(); + +exports.NodeAppender = NodeAppender; + +/***/ }), + +/***/ "./src/node/NodeFactory.ts": +/*!*********************************!*\ + !*** ./src/node/NodeFactory.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var NodeFactory = +/*#__PURE__*/ +function () { + function NodeFactory() { + (0, _classCallCheck2.default)(this, NodeFactory); + } + + (0, _createClass2.default)(NodeFactory, null, [{ + key: "programNode", + value: function programNode() { + var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.Program, + body: body, + sourceType: 'script', + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "arrayExpressionNode", + value: function arrayExpressionNode() { + var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.ArrayExpression, + elements: elements, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "assignmentExpressionNode", + value: function assignmentExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.AssignmentExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "binaryExpressionNode", + value: function binaryExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.BinaryExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "blockStatementNode", + value: function blockStatementNode() { + var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.BlockStatement, + body: body, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "breakStatement", + value: function breakStatement(label) { + var breakStatementNode = { + type: NodeType_1.NodeType.BreakStatement, + metadata: { + ignoredNode: false + } + }; + + if (label) { + breakStatementNode.label = label; + } + + return breakStatementNode; + } + }, { + key: "callExpressionNode", + value: function callExpressionNode(callee) { + var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + return { + type: NodeType_1.NodeType.CallExpression, + callee: callee, + arguments: args, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "continueStatement", + value: function continueStatement(label) { + var continueStatementNode = { + type: NodeType_1.NodeType.ContinueStatement, + metadata: { + ignoredNode: false + } + }; + + if (label) { + continueStatementNode.label = label; + } + + return continueStatementNode; + } + }, { + key: "expressionStatementNode", + value: function expressionStatementNode(expression) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression: expression, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "functionDeclarationNode", + value: function functionDeclarationNode(functionName, params, body) { + return { + type: NodeType_1.NodeType.FunctionDeclaration, + id: NodeFactory.identifierNode(functionName), + params: params, + body: body, + generator: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "functionExpressionNode", + value: function functionExpressionNode(params, body) { + return { + type: NodeType_1.NodeType.FunctionExpression, + params: params, + body: body, + generator: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "ifStatementNode", + value: function ifStatementNode(test, consequent, alternate) { + return (0, _assign.default)({ + type: NodeType_1.NodeType.IfStatement, + test: test, + consequent: consequent + }, alternate && { + alternate: alternate + }, { + metadata: { + ignoredNode: false + } + }); + } + }, { + key: "identifierNode", + value: function identifierNode(name) { + return { + type: NodeType_1.NodeType.Identifier, + name: name, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "literalNode", + value: function literalNode(value, raw) { + raw = raw !== undefined ? raw : "'".concat(value, "'"); + return { + type: NodeType_1.NodeType.Literal, + value: value, + raw: raw, + 'x-verbatim-property': { + content: raw, + precedence: escodegen.Precedence.Primary + }, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "logicalExpressionNode", + value: function logicalExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.LogicalExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "memberExpressionNode", + value: function memberExpressionNode(object, property) { + var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return { + type: NodeType_1.NodeType.MemberExpression, + computed: computed, + object: object, + property: property, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "methodDefinitionNode", + value: function methodDefinitionNode(key, value, kind, computed) { + return { + type: NodeType_1.NodeType.MethodDefinition, + key: key, + value: value, + kind: kind, + computed: computed, + static: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "objectExpressionNode", + value: function objectExpressionNode(properties) { + return { + type: NodeType_1.NodeType.ObjectExpression, + properties: properties, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "propertyNode", + value: function propertyNode(key, value) { + var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return { + type: NodeType_1.NodeType.Property, + key: key, + value: value, + kind: 'init', + method: false, + shorthand: false, + computed: computed, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "returnStatementNode", + value: function returnStatementNode(argument) { + return { + type: NodeType_1.NodeType.ReturnStatement, + argument: argument, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "switchStatementNode", + value: function switchStatementNode(discriminant, cases) { + return { + type: NodeType_1.NodeType.SwitchStatement, + discriminant: discriminant, + cases: cases, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "switchCaseNode", + value: function switchCaseNode(test, consequent) { + return { + type: NodeType_1.NodeType.SwitchCase, + test: test, + consequent: consequent, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "unaryExpressionNode", + value: function unaryExpressionNode(operator, argument) { + var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + return { + type: NodeType_1.NodeType.UnaryExpression, + operator: operator, + argument: argument, + prefix: prefix, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "updateExpressionNode", + value: function updateExpressionNode(operator, argumentExpr) { + return { + type: NodeType_1.NodeType.UpdateExpression, + operator: operator, + argument: argumentExpr, + prefix: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "variableDeclarationNode", + value: function variableDeclarationNode() { + var declarations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'var'; + return { + type: NodeType_1.NodeType.VariableDeclaration, + declarations: declarations, + kind: kind, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "variableDeclaratorNode", + value: function variableDeclaratorNode(id, init) { + return { + type: NodeType_1.NodeType.VariableDeclarator, + id: id, + init: init, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "whileStatementNode", + value: function whileStatementNode(test, body) { + return { + type: NodeType_1.NodeType.WhileStatement, + test: test, + body: body, + metadata: { + ignoredNode: false + } + }; + } + }]); + return NodeFactory; +}(); + +exports.NodeFactory = NodeFactory; + +/***/ }), + +/***/ "./src/node/NodeGuards.ts": +/*!********************************!*\ + !*** ./src/node/NodeGuards.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var NodeGuards = +/*#__PURE__*/ +function () { + function NodeGuards() { + (0, _classCallCheck2.default)(this, NodeGuards); + } + + (0, _createClass2.default)(NodeGuards, null, [{ + key: "isArrayPatternNode", + value: function isArrayPatternNode(node) { + return node.type === NodeType_1.NodeType.ArrayPattern; + } + }, { + key: "isArrowFunctionExpressionNode", + value: function isArrowFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.ArrowFunctionExpression; + } + }, { + key: "isAssignmentExpressionNode", + value: function isAssignmentExpressionNode(node) { + return node.type === NodeType_1.NodeType.AssignmentExpression; + } + }, { + key: "isAssignmentPatternNode", + value: function isAssignmentPatternNode(node) { + return node.type === NodeType_1.NodeType.AssignmentPattern; + } + }, { + key: "isAwaitExpressionNode", + value: function isAwaitExpressionNode(node) { + return node.type === NodeType_1.NodeType.AwaitExpression; + } + }, { + key: "isBlockStatementNode", + value: function isBlockStatementNode(node) { + return node.type === NodeType_1.NodeType.BlockStatement; + } + }, { + key: "isBreakStatementNode", + value: function isBreakStatementNode(node) { + return node.type === NodeType_1.NodeType.BreakStatement; + } + }, { + key: "isCallExpressionNode", + value: function isCallExpressionNode(node) { + return node.type === NodeType_1.NodeType.CallExpression; + } + }, { + key: "isCatchClauseNode", + value: function isCatchClauseNode(node) { + return node.type === NodeType_1.NodeType.CatchClause; + } + }, { + key: "isClassDeclarationNode", + value: function isClassDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ClassDeclaration; + } + }, { + key: "isContinueStatementNode", + value: function isContinueStatementNode(node) { + return node.type === NodeType_1.NodeType.ContinueStatement; + } + }, { + key: "isExportNamedDeclarationNode", + value: function isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + }, { + key: "isExpressionStatementNode", + value: function isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement; + } + }, { + key: "isFunctionNode", + value: function isFunctionNode(node) { + return NodeGuards.isFunctionDeclarationNode(node) || NodeGuards.isFunctionExpressionNode(node) || NodeGuards.isArrowFunctionExpressionNode(node); + } + }, { + key: "isFunctionDeclarationNode", + value: function isFunctionDeclarationNode(node) { + return node.type === NodeType_1.NodeType.FunctionDeclaration; + } + }, { + key: "isFunctionExpressionNode", + value: function isFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.FunctionExpression; + } + }, { + key: "isIdentifierNode", + value: function isIdentifierNode(node) { + return node.type === NodeType_1.NodeType.Identifier; + } + }, { + key: "isIfStatementNode", + value: function isIfStatementNode(node) { + return node.type === NodeType_1.NodeType.IfStatement; + } + }, { + key: "isImportDeclarationNode", + value: function isImportDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ImportDeclaration; + } + }, { + key: "isImportDefaultSpecifierNode", + value: function isImportDefaultSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportDefaultSpecifier; + } + }, { + key: "isImportNamespaceSpecifierNode", + value: function isImportNamespaceSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportNamespaceSpecifier; + } + }, { + key: "isImportSpecifierNode", + value: function isImportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportSpecifier; + } + }, { + key: "isLabelIdentifierNode", + value: function isLabelIdentifierNode(node, parentNode) { + var parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node; + var parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node; + var parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node; + return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode; + } + }, { + key: "isLabeledStatementNode", + value: function isLabeledStatementNode(node) { + return node.type === NodeType_1.NodeType.LabeledStatement; + } + }, { + key: "isLiteralNode", + value: function isLiteralNode(node) { + return node.type === NodeType_1.NodeType.Literal; + } + }, { + key: "isMemberExpressionNode", + value: function isMemberExpressionNode(node) { + return node.type === NodeType_1.NodeType.MemberExpression; + } + }, { + key: "isMethodDefinitionNode", + value: function isMethodDefinitionNode(node) { + return node.type === NodeType_1.NodeType.MethodDefinition; + } + }, { + key: "isNode", + value: function isNode(object) { + return object && !object.type !== undefined; + } + }, { + key: "isNodeHasBlockScope", + value: function isNodeHasBlockScope(node, parentNode) { + return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithBlockScope.includes(parentNode.type); + } + }, { + key: "isNodeHasScope", + value: function isNodeHasScope(node) { + return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) || NodeGuards.isSwitchCaseNode(node); + } + }, { + key: "isNodeWithComments", + value: function isNodeWithComments(node) { + return Boolean(node.leadingComments) || Boolean(node.trailingComments); + } + }, { + key: "isObjectPatternNode", + value: function isObjectPatternNode(node) { + return node.type === NodeType_1.NodeType.ObjectPattern; + } + }, { + key: "isObjectExpressionNode", + value: function isObjectExpressionNode(node) { + return node.type === NodeType_1.NodeType.ObjectExpression; + } + }, { + key: "isProgramNode", + value: function isProgramNode(node) { + return node.type === NodeType_1.NodeType.Program; + } + }, { + key: "isPropertyNode", + value: function isPropertyNode(node) { + return node.type === NodeType_1.NodeType.Property; + } + }, { + key: "isReplaceableIdentifierNode", + value: function isReplaceableIdentifierNode(node, parentNode) { + if (!NodeGuards.isIdentifierNode(node)) { + return false; + } + + var parentNodeIsPropertyNode = NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === node; + var parentNodeIsMemberExpressionNode = NodeGuards.isMemberExpressionNode(parentNode) && !parentNode.computed && parentNode.property === node; + var parentNodeIsMethodDefinitionNode = NodeGuards.isMethodDefinitionNode(parentNode) && !parentNode.computed; + var isLabelIdentifierNode = NodeGuards.isLabelIdentifierNode(node, parentNode); + return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode && !parentNodeIsMethodDefinitionNode && !isLabelIdentifierNode; + } + }, { + key: "isRestElementNode", + value: function isRestElementNode(node) { + return node.type === NodeType_1.NodeType.RestElement; + } + }, { + key: "isReturnStatementNode", + value: function isReturnStatementNode(node) { + return node.type === NodeType_1.NodeType.ReturnStatement; + } + }, { + key: "isSuperNode", + value: function isSuperNode(node) { + return node.type === NodeType_1.NodeType.Super; + } + }, { + key: "isSwitchCaseNode", + value: function isSwitchCaseNode(node) { + return node.type === NodeType_1.NodeType.SwitchCase; + } + }, { + key: "isTaggedTemplateExpressionNode", + value: function isTaggedTemplateExpressionNode(node) { + return node.type === NodeType_1.NodeType.TaggedTemplateExpression; + } + }, { + key: "isTemplateLiteralNode", + value: function isTemplateLiteralNode(node) { + return node.type === NodeType_1.NodeType.TemplateLiteral; + } + }, { + key: "isUnaryExpressionNode", + value: function isUnaryExpressionNode(node) { + return node.type === NodeType_1.NodeType.UnaryExpression; + } + }, { + key: "isUseStrictOperator", + value: function isUseStrictOperator(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement && node.directive === 'use strict'; + } + }, { + key: "isVariableDeclarationNode", + value: function isVariableDeclarationNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclaration; + } + }, { + key: "isVariableDeclaratorNode", + value: function isVariableDeclaratorNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclarator; + } + }, { + key: "isWhileStatementNode", + value: function isWhileStatementNode(node) { + return node.type === NodeType_1.NodeType.WhileStatement; + } + }]); + return NodeGuards; +}(); + +NodeGuards.nodesWithBlockScope = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition]; +exports.NodeGuards = NodeGuards; + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeMetadata = +/*#__PURE__*/ +function () { + function NodeMetadata() { + (0, _classCallCheck2.default)(this, NodeMetadata); + } + + (0, _createClass2.default)(NodeMetadata, null, [{ + key: "set", + value: function set(node, metadata) { + node.metadata = (0, _assign.default)(node.metadata || {}, metadata); + } + }, { + key: "get", + value: function get(node, metadataKey) { + return node.metadata !== undefined ? node.metadata[metadataKey] : undefined; + } + }, { + key: "isIgnoredNode", + value: function isIgnoredNode(node) { + return NodeMetadata.get(node, 'ignoredNode') === true; + } + }, { + key: "isRenamedIdentifier", + value: function isRenamedIdentifier(identifierNode) { + return NodeMetadata.get(identifierNode, 'renamedIdentifier') === true; + } + }, { + key: "isReplacedLiteral", + value: function isReplacedLiteral(literalNode) { + return NodeMetadata.get(literalNode, 'replacedLiteral') === true; + } + }]); + return NodeMetadata; +}(); + +exports.NodeMetadata = NodeMetadata; + +/***/ }), + +/***/ "./src/node/NodeUtils.ts": +/*!*******************************!*\ + !*** ./src/node/NodeUtils.ts ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof")); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree")); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils = +/*#__PURE__*/ +function () { + function NodeUtils() { + (0, _classCallCheck2.default)(this, NodeUtils); + } + + (0, _createClass2.default)(NodeUtils, null, [{ + key: "addXVerbatimPropertyTo", + value: function addXVerbatimPropertyTo(literalNode) { + literalNode['x-verbatim-property'] = { + content: literalNode.raw, + precedence: escodegen.Precedence.Primary + }; + return literalNode; + } + }, { + key: "clone", + value: function clone(astTree) { + return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree)); + } + }, { + key: "convertCodeToStructure", + value: function convertCodeToStructure(code) { + var structure = espree.parse(code, { + sourceType: 'script' + }); + estraverse.replace(structure, { + enter: function enter(node, parentNode) { + NodeUtils.parentizeNode(node, parentNode); + + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeUtils.addXVerbatimPropertyTo(node); + } + + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: false + }); + return node; + } + }); + return structure.body; + } + }, { + key: "convertStructureToCode", + value: function convertStructureToCode(structure) { + return structure.reduce(function (code, node) { + return code + escodegen.generate(node, { + sourceMapWithCode: true + }).code; + }, ''); + } + }, { + key: "getBlockScopeOfNode", + value: function getBlockScopeOfNode(node) { + return NodeUtils.getBlockScopesOfNodeRecursive(node, 1)[0]; + } + }, { + key: "getBlockScopesOfNode", + value: function getBlockScopesOfNode(node) { + return NodeUtils.getBlockScopesOfNodeRecursive(node); + } + }, { + key: "getNextSiblingStatement", + value: function getNextSiblingStatement(statement) { + return NodeUtils.getSiblingStatementByOffset(statement, 1); + } + }, { + key: "getPreviousSiblingStatement", + value: function getPreviousSiblingStatement(statement) { + return NodeUtils.getSiblingStatementByOffset(statement, -1); + } + }, { + key: "getRootStatementOfNode", + value: function getRootStatementOfNode(node) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + throw new Error('Unable to find root statement for `Program` node'); + } + + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (!NodeGuards_1.NodeGuards.isNodeHasScope(parentNode)) { + return NodeUtils.getRootStatementOfNode(parentNode); + } + + return node; + } + }, { + key: "getScopeOfNode", + value: function getScopeOfNode(node) { + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (!NodeGuards_1.NodeGuards.isNodeHasScope(parentNode)) { + return NodeUtils.getScopeOfNode(parentNode); + } + + return parentNode; + } + }, { + key: "getUnaryExpressionArgumentNode", + value: function getUnaryExpressionArgumentNode(unaryExpressionNode) { + if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) { + return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument); + } + + return unaryExpressionNode.argument; + } + }, { + key: "parentizeAst", + value: function parentizeAst(astTree) { + estraverse.replace(astTree, { + enter: NodeUtils.parentizeNode + }); + return astTree; + } + }, { + key: "parentizeNode", + value: function parentizeNode(node, parentNode) { + node.parentNode = parentNode || node; + return node; + } + }, { + key: "cloneRecursive", + value: function cloneRecursive(node) { + if (node === null) { + return node; + } + + var copy = {}; + (0, _keys.default)(node).forEach(function (property) { + if (property === 'parentNode') { + return; + } + + var value = node[property]; + var clonedValue; + + if (value === null || value instanceof RegExp) { + clonedValue = value; + } else if (Array.isArray(value)) { + clonedValue = value.map(NodeUtils.cloneRecursive); + } else if ((0, _typeof2.default)(value) === 'object') { + clonedValue = NodeUtils.cloneRecursive(value); + } else { + clonedValue = value; + } + + copy[property] = clonedValue; + }); + return copy; + } + }, { + key: "getBlockScopesOfNodeRecursive", + value: function getBlockScopesOfNodeRecursive(node) { + var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity; + var blockScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + + if (blockScopes.length >= maxSize) { + return blockScopes; + } + + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && parentNode === node) { + blockScopes.push(node); + } + + if (NodeGuards_1.NodeGuards.isProgramNode(node) || depth && NodeGuards_1.NodeGuards.isNodeHasBlockScope(node, parentNode)) { + blockScopes.push(node); + } + + if (node !== parentNode) { + return NodeUtils.getBlockScopesOfNodeRecursive(parentNode, maxSize, blockScopes, ++depth); + } + + return blockScopes; + } + }, { + key: "getSiblingStatementByOffset", + value: function getSiblingStatementByOffset(statement, offset) { + var scopeNode = NodeUtils.getScopeOfNode(statement); + var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent; + var indexInScope = scopeBody.indexOf(statement); + return scopeBody[indexInScope + offset] || null; + } + }]); + return NodeUtils; +}(); + +exports.NodeUtils = NodeUtils; + +/***/ }), + +/***/ "./src/options/Options.ts": +/*!********************************!*\ + !*** ./src/options/Options.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var Options_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); + +var ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts"); + +var Options = Options_1 = function Options(inputOptions, optionsNormalizer) { + (0, _classCallCheck2.default)(this, Options); + (0, _assign.default)(this, Default_1.DEFAULT_PRESET, inputOptions); + var errors = class_validator_1.validateSync(this, Options_1.validatorOptions); + + if (errors.length) { + throw new ReferenceError("Validation failed. errors:\n".concat(ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors))); + } + + (0, _assign.default)(this, optionsNormalizer.normalize(this)); +}; + +Options.validatorOptions = { + validationError: { + target: false + } +}; + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "controlFlowFlatteningThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "deadCodeInjection", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "deadCodeInjectionThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0); + +tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({ + each: true +}), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]), tslib_1.__metadata("design:type", String)], Options.prototype, "identifierNamesGenerator", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "identifiersPrefix", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "inputFileName", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "log", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "renameGlobals", void 0); + +tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({ + each: true +}), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) { + return Boolean(options.sourceMapBaseUrl); +}), class_validator_1.IsUrl({ + require_protocol: true, + require_tld: false, + require_valid_protocol: true +}), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapMode", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), tslib_1.__metadata("design:type", Object)], Options.prototype, "stringArrayEncoding", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "stringArrayThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), tslib_1.__metadata("design:type", String)], Options.prototype, "target", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "transformObjectKeys", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0); + +Options = Options_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), tslib_1.__metadata("design:paramtypes", [Object, Object])], Options); +exports.Options = Options; + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var OptionsNormalizer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts"); + +var DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts"); + +var DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts"); + +var DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts"); + +var InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts"); + +var SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts"); + +var SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts"); + +var SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts"); + +var StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts"); + +var StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts"); + +var StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts"); + +var OptionsNormalizer = OptionsNormalizer_1 = +/*#__PURE__*/ +function () { + function OptionsNormalizer() { + (0, _classCallCheck2.default)(this, OptionsNormalizer); + } + + (0, _createClass2.default)(OptionsNormalizer, [{ + key: "normalize", + value: function normalize(options) { + var normalizedOptions = (0, _assign.default)({}, options); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(OptionsNormalizer_1.normalizerRules), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var normalizerRule = _step.value; + normalizedOptions = normalizerRule(normalizedOptions); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return normalizedOptions; + } + }]); + return OptionsNormalizer; +}(); + +OptionsNormalizer.normalizerRules = [ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, DeadCodeInjectionRule_1.DeadCodeInjectionRule, DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, DomainLockRule_1.DomainLockRule, InputFileNameRule_1.InputFileNameRule, SelfDefendingRule_1.SelfDefendingRule, SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, SourceMapFileNameRule_1.SourceMapFileNameRule, StringArrayRule_1.StringArrayRule, StringArrayEncodingRule_1.StringArrayEncodingRule, StringArrayThresholdRule_1.StringArrayThresholdRule]; +OptionsNormalizer = OptionsNormalizer_1 = tslib_1.__decorate([inversify_1.injectable()], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var ValidationErrorsFormatter = +/*#__PURE__*/ +function () { + function ValidationErrorsFormatter() { + (0, _classCallCheck2.default)(this, ValidationErrorsFormatter); + } + + (0, _createClass2.default)(ValidationErrorsFormatter, null, [{ + key: "format", + value: function format(errors) { + return errors.reduce(function (errorMessages, error) { + return (0, _toConsumableArray2.default)(errorMessages).concat([ValidationErrorsFormatter.formatWithNestedConstraints(error)]); + }, []).join('\n'); + } + }, { + key: "formatWithNestedConstraints", + value: function formatWithNestedConstraints(error) { + var constraints = error.constraints; + var rootError = "`".concat(error.property, "` errors:\n"); + var nestedErrors = (0, _keys.default)(constraints).map(function (constraint) { + return " - ".concat(constraints[constraint], "\n"); + }).join(); + return "".concat(rootError).concat(nestedErrors); + } + }]); + return ValidationErrorsFormatter; +}(); + +exports.ValidationErrorsFormatter = ValidationErrorsFormatter; + +/***/ }), + +/***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts": +/*!****************************************************************************!*\ + !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.ControlFlowFlatteningThresholdRule = function (options) { + if (options.controlFlowFlatteningThreshold === 0) { + options = (0, _assign.default)({}, options, { + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); + +exports.DeadCodeInjectionRule = function (options) { + if (options.deadCodeInjection) { + options = (0, _assign.default)({}, options, { + deadCodeInjection: true, + stringArray: true + }); + + if (!options.stringArrayThreshold) { + options = (0, _assign.default)({}, options, { + stringArray: true, + stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold + }); + } + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.DeadCodeInjectionThresholdRule = function (options) { + if (options.deadCodeInjectionThreshold === 0) { + options = (0, _assign.default)({}, options, { + deadCodeInjection: false, + deadCodeInjectionThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); + +exports.DomainLockRule = function (options) { + if (options.domainLock.length) { + var normalizedDomains = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(options.domainLock), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var domain = _step.value; + normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain)); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + options = (0, _assign.default)({}, options, { + domainLock: normalizedDomains + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.InputFileNameRule = function (options) { + var _options = options, + inputFileName = _options.inputFileName; + + if (inputFileName) { + inputFileName = inputFileName.replace(/^\/+/, '').split('.').slice(0, -1).join('.') || inputFileName; + options = (0, _assign.default)({}, options, { + inputFileName: "".concat(inputFileName, ".js") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SelfDefendingRule = function (options) { + if (options.selfDefending) { + options = (0, _assign.default)({}, options, { + compact: true, + selfDefending: true + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SourceMapBaseUrlRule = function (options) { + var _options = options, + sourceMapBaseUrl = _options.sourceMapBaseUrl; + + if (!options.sourceMapFileName) { + options = (0, _assign.default)({}, options, { + sourceMapBaseUrl: '' + }); + return options; + } + + if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) { + options = (0, _assign.default)({}, options, { + sourceMapBaseUrl: "".concat(sourceMapBaseUrl, "/") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SourceMapFileNameRule = function (options) { + var _options = options, + sourceMapFileName = _options.sourceMapFileName; + + if (sourceMapFileName) { + sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0]; + options = (0, _assign.default)({}, options, { + sourceMapFileName: "".concat(sourceMapFileName, ".js.map") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +exports.StringArrayEncodingRule = function (options) { + if (options.stringArrayEncoding === true) { + options = (0, _assign.default)({}, options, { + stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.StringArrayRule = function (options) { + if (!options.stringArray) { + options = (0, _assign.default)({}, options, { + rotateStringArray: false, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts": +/*!******************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.StringArrayThresholdRule = function (options) { + if (options.stringArrayThreshold === 0) { + options = (0, _assign.default)({}, options, { + rotateStringArray: false, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _freeze = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +exports.DEFAULT_PRESET = (0, _freeze.default)({ + compact: true, + config: '', + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0.75, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0.4, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + inputFileName: '', + log: false, + renameGlobals: false, + reservedNames: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + stringArray: true, + stringArrayEncoding: false, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _freeze = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +exports.NO_ADDITIONAL_NODES_PRESET = (0, _freeze.default)({ + compact: true, + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + inputFileName: '', + log: false, + renameGlobals: false, + reservedNames: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + +/***/ }), + +/***/ "./src/source-map/SourceMapCorrector.ts": +/*!**********************************************!*\ + !*** ./src/source-map/SourceMapCorrector.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +var SourceMapCorrector = +/*#__PURE__*/ +function () { + function SourceMapCorrector(obfuscationResultFactory, cryptUtils, options) { + (0, _classCallCheck2.default)(this, SourceMapCorrector); + this.obfuscationResultFactory = obfuscationResultFactory; + this.cryptUtils = cryptUtils; + this.options = options; + } + + (0, _createClass2.default)(SourceMapCorrector, [{ + key: "correct", + value: function correct(obfuscatedCode, sourceMap) { + return this.obfuscationResultFactory(this.correctObfuscatedCode(obfuscatedCode, sourceMap), sourceMap); + } + }, { + key: "correctObfuscatedCode", + value: function correctObfuscatedCode(obfuscatedCode, sourceMap) { + if (!sourceMap) { + return obfuscatedCode; + } + + var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName; + var sourceMappingUrl = '//# sourceMappingURL='; + + switch (this.options.sourceMapMode) { + case SourceMapMode_1.SourceMapMode.Inline: + sourceMappingUrl += "data:application/json;base64,".concat(this.cryptUtils.btoa(sourceMap)); + break; + + case SourceMapMode_1.SourceMapMode.Separate: + default: + if (!sourceMapUrl) { + return obfuscatedCode; + } + + sourceMappingUrl += sourceMapUrl; + } + + return "".concat(obfuscatedCode, "\n").concat(sourceMappingUrl); + } + }]); + return SourceMapCorrector; +}(); + +SourceMapCorrector = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], SourceMapCorrector); +exports.SourceMapCorrector = SourceMapCorrector; + +/***/ }), + +/***/ "./src/storages/ArrayStorage.ts": +/*!**************************************!*\ + !*** ./src/storages/ArrayStorage.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var ArrayStorage = +/*#__PURE__*/ +function () { + function ArrayStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ArrayStorage); + this.storageLength = 0; + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(ArrayStorage, [{ + key: "initialize", + value: function initialize() { + this.storage = []; + this.storageId = this.randomGenerator.getRandomString(6); + } + }, { + key: "get", + value: function get(key) { + var value = this.storage[key]; + + if (!value) { + throw new Error("No value found in array storage with key `".concat(key, "`")); + } + + return value; + } + }, { + key: "getKeyOf", + value: function getKeyOf(value) { + var key = this.storage.indexOf(value); + return key >= 0 ? key : null; + } + }, { + key: "getLength", + value: function getLength() { + return this.storageLength; + } + }, { + key: "getStorage", + value: function getStorage() { + return this.storage; + } + }, { + key: "getStorageId", + value: function getStorageId() { + return this.storageId; + } + }, { + key: "mergeWith", + value: function mergeWith(storage) { + var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.storage = (0, _toConsumableArray2.default)(this.storage).concat((0, _toConsumableArray2.default)(storage.getStorage())); + + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + }, { + key: "set", + value: function set(key, value) { + if (key === this.storageLength) { + this.storage.push(value); + } else { + this.storage.splice(key, 0, value); + } + + this.storageLength++; + } + }]); + return ArrayStorage; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], ArrayStorage.prototype, "initialize", null); + +ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ArrayStorage); +exports.ArrayStorage = ArrayStorage; + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var MapStorage = +/*#__PURE__*/ +function () { + function MapStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MapStorage); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(MapStorage, [{ + key: "initialize", + value: function initialize() { + this.storage = new _map.default(); + this.storageId = this.randomGenerator.getRandomString(6); + } + }, { + key: "get", + value: function get(key) { + var value = this.storage.get(key); + + if (!value) { + throw new Error("No value found in map storage with key `".concat(key, "`")); + } + + return value; + } + }, { + key: "getKeyOf", + value: function getKeyOf(value) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(this.storage), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _step$value = (0, _slicedToArray2.default)(_step.value, 2), + key = _step$value[0], + storageValue = _step$value[1]; + + if (value === storageValue) { + return key; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + }, { + key: "getLength", + value: function getLength() { + return this.storage.size; + } + }, { + key: "getStorage", + value: function getStorage() { + return this.storage; + } + }, { + key: "getStorageId", + value: function getStorageId() { + return this.storageId; + } + }, { + key: "has", + value: function has(key) { + return this.storage.has(key); + } + }, { + key: "mergeWith", + value: function mergeWith(storage) { + var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.storage = new _map.default((0, _toConsumableArray2.default)(this.storage).concat((0, _toConsumableArray2.default)(storage.getStorage()))); + + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + }, { + key: "set", + value: function set(key, value) { + this.storage.set(key, value); + } + }]); + return MapStorage; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], MapStorage.prototype, "storage", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], MapStorage.prototype, "initialize", null); + +MapStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MapStorage); +exports.MapStorage = MapStorage; + +/***/ }), + +/***/ "./src/storages/control-flow/ControlFlowStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/control-flow/ControlFlowStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); + +var ControlFlowStorage = +/*#__PURE__*/ +function (_MapStorage_1$MapStor) { + (0, _inherits2.default)(ControlFlowStorage, _MapStorage_1$MapStor); + + function ControlFlowStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ControlFlowStorage); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ControlFlowStorage).call(this, randomGenerator, options)); + } + + return ControlFlowStorage; +}(MapStorage_1.MapStorage); + +ControlFlowStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ControlFlowStorage); +exports.ControlFlowStorage = ControlFlowStorage; + +/***/ }), + +/***/ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts": +/*!******************************************************************!*\ + !*** ./src/storages/custom-node-group/CustomNodeGroupStorage.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CustomNodeGroupStorage_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var CustomNodeGroup_1 = __webpack_require__(/*! ../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts"); + +var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); + +var CustomNodeGroupStorage = CustomNodeGroupStorage_1 = +/*#__PURE__*/ +function (_MapStorage_1$MapStor) { + (0, _inherits2.default)(CustomNodeGroupStorage, _MapStorage_1$MapStor); + + function CustomNodeGroupStorage(customNodeGroupFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CustomNodeGroupStorage); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CustomNodeGroupStorage).call(this, randomGenerator, options)); + _this.customNodeGroupFactory = customNodeGroupFactory; + return _this; + } + + (0, _createClass2.default)(CustomNodeGroupStorage, [{ + key: "initialize", + value: function initialize() { + var _this2 = this; + + (0, _get2.default)((0, _getPrototypeOf2.default)(CustomNodeGroupStorage.prototype), "initialize", this).call(this); + CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) { + var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName); + + if (!customNodeGroup) { + return; + } + + _this2.storage.set(customNodeGroupName, customNodeGroup); + }); + } + }]); + return CustomNodeGroupStorage; +}(MapStorage_1.MapStorage); + +CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup]; + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], CustomNodeGroupStorage.prototype, "initialize", null); + +CustomNodeGroupStorage = CustomNodeGroupStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CustomNodeGroupStorage); +exports.CustomNodeGroupStorage = CustomNodeGroupStorage; + +/***/ }), + +/***/ "./src/storages/string-array/StringArrayStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/string-array/StringArrayStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringArrayStorage_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts"); + +var StringArrayStorage = StringArrayStorage_1 = +/*#__PURE__*/ +function (_ArrayStorage_1$Array) { + (0, _inherits2.default)(StringArrayStorage, _ArrayStorage_1$Array); + + function StringArrayStorage(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayStorage); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayStorage).call(this, randomGenerator, options)); + _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + _this.arrayUtils = arrayUtils; + return _this; + } + + (0, _createClass2.default)(StringArrayStorage, [{ + key: "initialize", + value: function initialize() { + (0, _get2.default)((0, _getPrototypeOf2.default)(StringArrayStorage.prototype), "initialize", this).call(this); + var baseStringArrayName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength); + var baseStringArrayCallsWrapperName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength); + var stringArrayName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayName); + var stringArrayCallsWrapperName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayCallsWrapperName); + this.storageId = "".concat(stringArrayName, "|").concat(stringArrayCallsWrapperName); + } + }, { + key: "rotateArray", + value: function rotateArray(rotationValue) { + this.storage = this.arrayUtils.rotate(this.storage, rotationValue); + } + }, { + key: "toString", + value: function toString() { + return this.storage.map(function (value) { + return "'".concat(value, "'"); + }).toString(); + } + }]); + return StringArrayStorage; +}(ArrayStorage_1.ArrayStorage); + +StringArrayStorage.stringArrayNameLength = 7; + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], StringArrayStorage.prototype, "initialize", null); + +StringArrayStorage = StringArrayStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + +/***/ }), + +/***/ "./src/templates/AtobTemplate.ts": +/*!***************************************!*\ + !*** ./src/templates/AtobTemplate.ts ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function AtobTemplate() { + return "\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n "; +} + +exports.AtobTemplate = AtobTemplate; + +/***/ }), + +/***/ "./src/templates/GlobalVariableNoEvalTemplate.ts": +/*!*******************************************************!*\ + !*** ./src/templates/GlobalVariableNoEvalTemplate.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableNoEvalTemplate() { + return "\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "; +} + +exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate; + +/***/ }), + +/***/ "./src/templates/GlobalVariableTemplate1.ts": +/*!**************************************************!*\ + !*** ./src/templates/GlobalVariableTemplate1.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableTemplate1() { + return "\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "; +} + +exports.GlobalVariableTemplate1 = GlobalVariableTemplate1; + +/***/ }), + +/***/ "./src/templates/GlobalVariableTemplate2.ts": +/*!**************************************************!*\ + !*** ./src/templates/GlobalVariableTemplate2.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableTemplate2() { + return "\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n "; +} + +exports.GlobalVariableTemplate2 = GlobalVariableTemplate2; + +/***/ }), + +/***/ "./src/templates/Rc4Template.ts": +/*!**************************************!*\ + !*** ./src/templates/Rc4Template.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function Rc4Template() { + return "\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "; +} + +exports.Rc4Template = Rc4Template; + +/***/ }), + +/***/ "./src/templates/SingleNodeCallControllerTemplate.ts": +/*!***********************************************************!*\ + !*** ./src/templates/SingleNodeCallControllerTemplate.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SingleNodeCallControllerTemplate() { + return "\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "; +} + +exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate; + +/***/ }), + +/***/ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function ConsoleOutputDisableExpressionTemplate() { + return "\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "; +} + +exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts": +/*!*************************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts ***! + \*************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionCallTemplate() { + return "\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n "; +} + +exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts": +/*!*********************************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts ***! + \*********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionIntervalTemplate() { + return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "; +} + +exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionTemplate() { + return "\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "; +} + +exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts": +/*!*************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebuggerTemplate() { + return "\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "; +} + +exports.DebuggerTemplate = DebuggerTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts": +/*!*******************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebuggerTemplateNoEval() { + return "\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "; +} + +exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval; + +/***/ }), + +/***/ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts": +/*!************************************************************************************!*\ + !*** ./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DomainLockNodeTemplate() { + return "\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp(\"[{diff}]\", \"g\");\n var domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n "; +} + +exports.DomainLockNodeTemplate = DomainLockNodeTemplate; + +/***/ }), + +/***/ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts": +/*!*************************************************************************************************!*\ + !*** ./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(escapeSequenceEncoder) { + return "\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(escapeSequenceEncoder.encode("(\\\\[x|u](\\w){2,4})+", true), "');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('ind\u0435xOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('ind\u0435xOf');\n }\n })\n \n {selfDefendingFunctionName}();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts": +/*!**********************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts ***! + \**********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) { + var identifierLength = 6; + var rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength); + var statesIdentifier = randomGenerator.getRandomString(identifierLength); + var newStateIdentifier = randomGenerator.getRandomString(identifierLength); + var firstStateIdentifier = randomGenerator.getRandomString(identifierLength); + var secondStateIdentifier = randomGenerator.getRandomString(identifierLength); + var checkStateIdentifier = randomGenerator.getRandomString(identifierLength); + var runStateIdentifier = randomGenerator.getRandomString(identifierLength); + var getStateIdentifier = randomGenerator.getRandomString(identifierLength); + var stateResultIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n var StatesClass = function (".concat(rc4BytesIdentifier, ") {\n this.").concat(rc4BytesIdentifier, " = ").concat(rc4BytesIdentifier, ";\n this.").concat(statesIdentifier, " = [1, 0, 0];\n this.").concat(newStateIdentifier, " = function(){return 'newState';};\n this.").concat(firstStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *", true), "';\n this.").concat(secondStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("['|\"].+['|\"];? *}", true), "';\n };\n \n StatesClass.prototype.").concat(checkStateIdentifier, " = function () {\n var regExp = new RegExp(this.").concat(firstStateIdentifier, " + this.").concat(secondStateIdentifier, ");\n var expression = regExp.test(this.").concat(newStateIdentifier, ".toString())\n ? --this.").concat(statesIdentifier, "[1]\n : --this.").concat(statesIdentifier, "[0];\n \n return this.").concat(runStateIdentifier, "(expression);\n };\n \n StatesClass.prototype.").concat(runStateIdentifier, " = function (").concat(stateResultIdentifier, ") {\n if (!Boolean(~").concat(stateResultIdentifier, ")) {\n return ").concat(stateResultIdentifier, ";\n }\n \n return this.").concat(getStateIdentifier, "(this.").concat(rc4BytesIdentifier, ");\n };\n\n StatesClass.prototype.").concat(getStateIdentifier, " = function (").concat(rc4BytesIdentifier, ") {\n for (var i = 0, len = this.").concat(statesIdentifier, ".length; i < len; i++) {\n this.").concat(statesIdentifier, ".push(Math.round(Math.random()));\n len = this.").concat(statesIdentifier, ".length;\n }\n \n return ").concat(rc4BytesIdentifier, "(this.").concat(statesIdentifier, "[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(checkStateIdentifier, "();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts": +/*!************************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayBase64DecodeNodeTemplate(randomGenerator) { + var identifierLength = 6; + var initializedIdentifier = randomGenerator.getRandomString(identifierLength); + var base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength); + var dataIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, " = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, "(value);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n "); +} + +exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts": +/*!********************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayCallsWrapperTemplate() { + return "\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n "; +} + +exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts": +/*!*********************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts ***! + \*********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayRc4DecodeNodeTemplate(randomGenerator) { + var identifierLength = 6; + var initializedIdentifier = randomGenerator.getRandomString(identifierLength); + var rc4Identifier = randomGenerator.getRandomString(identifierLength); + var dataIdentifier = randomGenerator.getRandomString(identifierLength); + var onceIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(rc4Identifier, " = rc4;\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(onceIdentifier, " === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(onceIdentifier, " = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(rc4Identifier, "(value, key);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n "); +} + +exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts": +/*!***********************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayTemplate() { + return "\n var {stringArrayName} = [{stringArray}];\n "; +} + +exports.StringArrayTemplate = StringArrayTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts": +/*!*****************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts ***! + \*****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(escapeSequenceEncoder) { + return "\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts ***! + \*****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayRotateFunctionTemplate() { + return "\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n "; +} + +exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate; + +/***/ }), + +/***/ "./src/utils/ArrayUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/ArrayUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayUtils = +/*#__PURE__*/ +function () { + function ArrayUtils(randomGenerator) { + (0, _classCallCheck2.default)(this, ArrayUtils); + this.randomGenerator = randomGenerator; + } + + (0, _createClass2.default)(ArrayUtils, [{ + key: "createWithRange", + value: function createWithRange(length) { + var range = []; + + for (var i = 0; i < length; i++) { + range.push(i); + } + + return range; + } + }, { + key: "rotate", + value: function rotate(array, times) { + if (!array.length) { + throw new ReferenceError("Cannot rotate empty array."); + } + + if (times <= 0) { + return array; + } + + var newArray = array; + var temp; + + while (times--) { + temp = newArray.pop(); + + if (temp) { + newArray.unshift(temp); + } + } + + return newArray; + } + }, { + key: "shuffle", + value: function shuffle(array) { + var shuffledArray = (0, _toConsumableArray2.default)(array); + + for (var i = shuffledArray.length; i; i--) { + var j = Math.floor(this.randomGenerator.getMathRandom() * i); + var _ref = [shuffledArray[j], shuffledArray[i - 1]]; + shuffledArray[i - 1] = _ref[0]; + shuffledArray[j] = _ref[1]; + } + + return shuffledArray; + } + }]); + return ArrayUtils; +}(); + +ArrayUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], ArrayUtils); +exports.ArrayUtils = ArrayUtils; + +/***/ }), + +/***/ "./src/utils/CryptUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/CryptUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts"); + +var Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); + +var CryptUtils = +/*#__PURE__*/ +function () { + function CryptUtils(randomGenerator) { + (0, _classCallCheck2.default)(this, CryptUtils); + this.randomGenerator = randomGenerator; + } + + (0, _createClass2.default)(CryptUtils, [{ + key: "btoa", + value: function btoa(string) { + var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + var output = ''; + string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) { + return String.fromCharCode(parseInt("".concat(Utils_1.Utils.hexadecimalPrefix).concat(p1))); + }); + + for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) { + charCode = string.charCodeAt(idx += 3 / 4); + + if (charCode > 0xFF) { + throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."); + } + + block = block << 8 | charCode; + } + + return output; + } + }, { + key: "hideString", + value: function hideString(str, length) { + var _this = this; + + var escapeRegExp = function escapeRegExp(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + }; + + var randomMerge = function randomMerge(s1, s2) { + var i1 = -1; + var i2 = -1; + var result = ''; + + while (i1 < s1.length || i2 < s2.length) { + if (_this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) { + result += s2.charAt(++i2); + } else { + result += s1.charAt(++i1); + } + } + + return result; + }; + + var randomString = this.randomGenerator.getRandomGenerator().string({ + length: length, + pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool + }); + var randomStringDiff = randomString.replace(new RegExp("[".concat(escapeRegExp(str), "]"), 'g'), ''); + var randomStringDiffArray = randomStringDiff.split(''); + this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray); + randomStringDiff = randomStringDiffArray.join(''); + return [randomMerge(str, randomStringDiff), randomStringDiff]; + } + }, { + key: "rc4", + value: function rc4(string, key) { + var s = [], + j = 0, + x, + result = ''; + + for (var i = 0; i < 256; i++) { + s[i] = i; + } + + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + + i = 0; + j = 0; + + for (var y = 0; y < string.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + + return result; + } + }]); + return CryptUtils; +}(); + +CryptUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], CryptUtils); +exports.CryptUtils = CryptUtils; + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var EscapeSequenceEncoder = +/*#__PURE__*/ +function () { + function EscapeSequenceEncoder() { + (0, _classCallCheck2.default)(this, EscapeSequenceEncoder); + this.stringsCache = new _map.default(); + } + + (0, _createClass2.default)(EscapeSequenceEncoder, [{ + key: "encode", + value: function encode(string, encodeAllSymbols) { + var cacheKey = "".concat(string, "-").concat(String(encodeAllSymbols)); + + if (this.stringsCache.has(cacheKey)) { + return this.stringsCache.get(cacheKey); + } + + var radix = 16; + var replaceRegExp = new RegExp('[\\s\\S]', 'g'); + var escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]'); + var regExp = new RegExp('[\\x00-\\x7F]'); + var prefix; + var template; + var result = string.replace(replaceRegExp, function (character) { + if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) { + return character; + } + + if (regExp.exec(character)) { + prefix = '\\x'; + template = '00'; + } else { + prefix = "\\u"; + template = '0000'; + } + + return "".concat(prefix).concat((template + character.charCodeAt(0).toString(radix)).slice(-template.length)); + }); + this.stringsCache.set(cacheKey, result); + return result; + } + }]); + return EscapeSequenceEncoder; +}(); + +EscapeSequenceEncoder = tslib_1.__decorate([inversify_1.injectable()], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + +/***/ }), + +/***/ "./src/utils/NumberUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/NumberUtils.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NumberUtils = +/*#__PURE__*/ +function () { + function NumberUtils() { + (0, _classCallCheck2.default)(this, NumberUtils); + } + + (0, _createClass2.default)(NumberUtils, null, [{ + key: "toHex", + value: function toHex(dec) { + var radix = 16; + return dec.toString(radix); + } + }, { + key: "isCeil", + value: function isCeil(number) { + return number % 1 === 0; + } + }]); + return NumberUtils; +}(); + +exports.NumberUtils = NumberUtils; + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var RandomGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var md5_1 = tslib_1.__importDefault(__webpack_require__(/*! md5 */ "md5")); + +var chance_1 = __webpack_require__(/*! chance */ "chance"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var RandomGenerator = RandomGenerator_1 = +/*#__PURE__*/ +function () { + function RandomGenerator(sourceCode, options) { + (0, _classCallCheck2.default)(this, RandomGenerator); + this.sourceCode = sourceCode; + this.options = options; + } + + (0, _createClass2.default)(RandomGenerator, [{ + key: "initialize", + value: function initialize() { + var _this = this; + + var getRandomInteger = function getRandomInteger(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + }; + + var getSeed = function getSeed() { + var md5Hash = md5_1.default(_this.sourceCode.getSourceCode()); + return _this.seed + Number(md5Hash.replace(/\D/g, '')); + }; + + this.seed = this.options.seed !== 0 ? this.options.seed : getRandomInteger(0, 999999999); + this.randomGenerator = new chance_1.Chance(getSeed()); + } + }, { + key: "getMathRandom", + value: function getMathRandom() { + return this.getRandomInteger(0, 99999) / 100000; + } + }, { + key: "getRandomFloat", + value: function getRandomFloat(min, max) { + return this.getRandomGenerator().floating({ + min: min, + max: max, + fixed: 7 + }); + } + }, { + key: "getRandomGenerator", + value: function getRandomGenerator() { + return this.randomGenerator; + } + }, { + key: "getRandomInteger", + value: function getRandomInteger(min, max) { + return this.getRandomGenerator().integer({ + min: min, + max: max + }); + } + }, { + key: "getRandomString", + value: function getRandomString(length) { + var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGenerator_1.randomGeneratorPool; + return this.getRandomGenerator().string({ + length: length, + pool: pool + }); + } + }, { + key: "getSeed", + value: function getSeed() { + return this.seed; + } + }]); + return RandomGenerator; +}(); + +RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], RandomGenerator.prototype, "randomGenerator", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], RandomGenerator.prototype, "seed", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], RandomGenerator.prototype, "initialize", null); + +RandomGenerator = RandomGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], RandomGenerator); +exports.RandomGenerator = RandomGenerator; + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Utils = +/*#__PURE__*/ +function () { + function Utils() { + (0, _classCallCheck2.default)(this, Utils); + } + + (0, _createClass2.default)(Utils, null, [{ + key: "extractDomainFrom", + value: function extractDomainFrom(url) { + var domain; + + if (url.indexOf('://') > -1 || url.indexOf('//') === 0) { + domain = url.split('/')[2]; + } else { + domain = url.split('/')[0]; + } + + domain = domain.split(':')[0]; + return domain; + } + }]); + return Utils; +}(); + +Utils.hexadecimalPrefix = '0x'; +exports.Utils = Utils; + +/***/ }), + +/***/ "@babel/runtime/core-js/array/from": +/*!****************************************************!*\ + !*** external "@babel/runtime/core-js/array/from" ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/array/from"); + +/***/ }), + +/***/ "@babel/runtime/core-js/get-iterator": +/*!******************************************************!*\ + !*** external "@babel/runtime/core-js/get-iterator" ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/get-iterator"); + +/***/ }), + +/***/ "@babel/runtime/core-js/map": +/*!*********************************************!*\ + !*** external "@babel/runtime/core-js/map" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/map"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/assign": +/*!*******************************************************!*\ + !*** external "@babel/runtime/core-js/object/assign" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/assign"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/define-property": +/*!****************************************************************!*\ + !*** external "@babel/runtime/core-js/object/define-property" ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/define-property"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/freeze": +/*!*******************************************************!*\ + !*** external "@babel/runtime/core-js/object/freeze" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/freeze"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/get-own-property-descriptor": +/*!****************************************************************************!*\ + !*** external "@babel/runtime/core-js/object/get-own-property-descriptor" ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/get-own-property-descriptor"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/get-own-property-names": +/*!***********************************************************************!*\ + !*** external "@babel/runtime/core-js/object/get-own-property-names" ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/get-own-property-names"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/keys": +/*!*****************************************************!*\ + !*** external "@babel/runtime/core-js/object/keys" ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/keys"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/define-metadata": +/*!*****************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/define-metadata" ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/define-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/get-metadata": +/*!**************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/get-metadata" ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/get-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/has-metadata": +/*!**************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/has-metadata" ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/has-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/set": +/*!*********************************************!*\ + !*** external "@babel/runtime/core-js/set" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/set"); + +/***/ }), + +/***/ "@babel/runtime/helpers/classCallCheck": +/*!********************************************************!*\ + !*** external "@babel/runtime/helpers/classCallCheck" ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/classCallCheck"); + +/***/ }), + +/***/ "@babel/runtime/helpers/construct": +/*!***************************************************!*\ + !*** external "@babel/runtime/helpers/construct" ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/construct"); + +/***/ }), + +/***/ "@babel/runtime/helpers/createClass": +/*!*****************************************************!*\ + !*** external "@babel/runtime/helpers/createClass" ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/createClass"); + +/***/ }), + +/***/ "@babel/runtime/helpers/get": +/*!*********************************************!*\ + !*** external "@babel/runtime/helpers/get" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/get"); + +/***/ }), + +/***/ "@babel/runtime/helpers/getPrototypeOf": +/*!********************************************************!*\ + !*** external "@babel/runtime/helpers/getPrototypeOf" ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/getPrototypeOf"); + +/***/ }), + +/***/ "@babel/runtime/helpers/inherits": +/*!**************************************************!*\ + !*** external "@babel/runtime/helpers/inherits" ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/inherits"); + +/***/ }), + +/***/ "@babel/runtime/helpers/interopRequireDefault": +/*!***************************************************************!*\ + !*** external "@babel/runtime/helpers/interopRequireDefault" ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/interopRequireDefault"); + +/***/ }), + +/***/ "@babel/runtime/helpers/possibleConstructorReturn": +/*!*******************************************************************!*\ + !*** external "@babel/runtime/helpers/possibleConstructorReturn" ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/possibleConstructorReturn"); + +/***/ }), + +/***/ "@babel/runtime/helpers/slicedToArray": +/*!*******************************************************!*\ + !*** external "@babel/runtime/helpers/slicedToArray" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/slicedToArray"); + +/***/ }), + +/***/ "@babel/runtime/helpers/toConsumableArray": +/*!***********************************************************!*\ + !*** external "@babel/runtime/helpers/toConsumableArray" ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/toConsumableArray"); + +/***/ }), + +/***/ "@babel/runtime/helpers/typeof": +/*!************************************************!*\ + !*** external "@babel/runtime/helpers/typeof" ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/typeof"); + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chalk"); + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chance"); + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("class-validator"); + +/***/ }), + +/***/ "commander": +/*!****************************!*\ + !*** external "commander" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("commander"); + +/***/ }), + +/***/ "escodegen-wallaby": +/*!************************************!*\ + !*** external "escodegen-wallaby" ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("escodegen-wallaby"); + +/***/ }), + +/***/ "espree": +/*!*************************!*\ + !*** external "espree" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("espree"); + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("estraverse"); + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("events"); + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("fs"); + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("inversify"); + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("js-string-escape"); + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("md5"); + +/***/ }), + +/***/ "mkdirp": +/*!*************************!*\ + !*** external "mkdirp" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("mkdirp"); + +/***/ }), + +/***/ "multimatch": +/*!*****************************!*\ + !*** external "multimatch" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("multimatch"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("path"); + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("reflect-metadata"); + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("string-template"); + +/***/ }), + +/***/ "tslib": +/*!************************!*\ + !*** external "tslib" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("tslib"); + +/***/ }) + +/******/ }); //# sourceMappingURL=index.cli.js.map \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 7d3a2fb7..9942b538 100644 --- a/dist/index.js +++ b/dist/index.js @@ -21,5 +21,14126 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -require("source-map-support").install(),module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=226)}([function(e,t){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("inversify")},function(e,t){e.exports=require("@babel/runtime/helpers/createClass")},function(e,t){e.exports=require("tslib")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Factory__ICalleeDataExtractor="Factory",e.Factory__IControlFlowCustomNode="Factory",e.Factory__IControlFlowReplacer="Factory",e.Factory__ICustomNode="Factory",e.Factory__ICustomNodeGroup="Factory",e.Factory__IDeadCodeInjectionCustomNode="Factory",e.Factory__IIdentifierNamesGenerator="Factory",e.Factory__IIdentifierObfuscatingReplacer="Factory",e.Factory__INodeGuard="Factory",e.Factory__INodeTransformer="Factory",e.Factory__IObfuscationResult="Factory",e.Factory__IObfuscatingReplacer="Factory",e.Factory__IPropertiesExtractor="Factory",e.Factory__TControlFlowStorage="Factory",e.IArrayUtils="IArrayUtils",e.ICalleeDataExtractor="ICalleeDataExtractor",e.ICryptUtils="ICryptUtils",e.ICustomNode="ICustomNode",e.ICustomNodeGroup="ICustomNodeGroup",e.IControlFlowReplacer="IControlFlowReplacer",e.IEscapeSequenceEncoder="IEscapeSequenceEncoder",e.IIdentifierNamesGenerator="IIdentifierNamesGenerator",e.IIdentifierObfuscatingReplacer="IIdentifierObfuscatingReplacer",e.IJavaScriptObfuscator="IJavaScriptObfuscator",e.ILogger="ILogger",e.INodeGuard="INodeGuard",e.INodeTransformer="INodeTransformer",e.IObfuscationEventEmitter="IObfuscationEventEmitter",e.IObfuscationResult="IObfuscationResult",e.IOptions="IOptions",e.IOptionsNormalizer="IOptionsNormalizer",e.IObfuscatingReplacer="IObfuscatingReplacer",e.IPropertiesExtractor="IPropertiesExtractor",e.IRandomGenerator="IRandomGenerator",e.ISourceCode="ISourceCode",e.ISourceMapCorrector="ISourceMapCorrector",e.IStackTraceAnalyzer="IStackTraceAnalyzer",e.ITransformersRunner="ITransformersRunner",e.Newable__ICustomNode="Newable",e.Newable__TControlFlowStorage="Newable",e.TCustomNodeGroupStorage="TCustomNodeGroupStorage",e.TInputOptions="TInputOptions",e.TStringArrayStorage="TStringArrayStorage"}(t.ServiceIdentifiers||(t.ServiceIdentifiers={}))},function(e,t){e.exports=require("@babel/runtime/helpers/inherits")},function(e,t){e.exports=require("@babel/runtime/helpers/getPrototypeOf")},function(e,t){e.exports=require("@babel/runtime/helpers/possibleConstructorReturn")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(23),s=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"isArrayPatternNode",value:function(e){return e.type===i.NodeType.ArrayPattern}},{key:"isArrowFunctionExpressionNode",value:function(e){return e.type===i.NodeType.ArrowFunctionExpression}},{key:"isAssignmentExpressionNode",value:function(e){return e.type===i.NodeType.AssignmentExpression}},{key:"isAssignmentPatternNode",value:function(e){return e.type===i.NodeType.AssignmentPattern}},{key:"isAwaitExpressionNode",value:function(e){return e.type===i.NodeType.AwaitExpression}},{key:"isBlockStatementNode",value:function(e){return e.type===i.NodeType.BlockStatement}},{key:"isBreakStatementNode",value:function(e){return e.type===i.NodeType.BreakStatement}},{key:"isCallExpressionNode",value:function(e){return e.type===i.NodeType.CallExpression}},{key:"isCatchClauseNode",value:function(e){return e.type===i.NodeType.CatchClause}},{key:"isClassDeclarationNode",value:function(e){return e.type===i.NodeType.ClassDeclaration}},{key:"isContinueStatementNode",value:function(e){return e.type===i.NodeType.ContinueStatement}},{key:"isExportNamedDeclarationNode",value:function(e){return e.type===i.NodeType.ExportNamedDeclaration}},{key:"isExpressionStatementNode",value:function(e){return e.type===i.NodeType.ExpressionStatement}},{key:"isFunctionDeclarationNode",value:function(e){return e.type===i.NodeType.FunctionDeclaration}},{key:"isFunctionExpressionNode",value:function(e){return e.type===i.NodeType.FunctionExpression}},{key:"isIdentifierNode",value:function(e){return e.type===i.NodeType.Identifier}},{key:"isIfStatementNode",value:function(e){return e.type===i.NodeType.IfStatement}},{key:"isImportDeclarationNode",value:function(e){return e.type===i.NodeType.ImportDeclaration}},{key:"isImportDefaultSpecifierNode",value:function(e){return e.type===i.NodeType.ImportDefaultSpecifier}},{key:"isImportNamespaceSpecifierNode",value:function(e){return e.type===i.NodeType.ImportNamespaceSpecifier}},{key:"isImportSpecifierNode",value:function(e){return e.type===i.NodeType.ImportSpecifier}},{key:"isLabelIdentifierNode",value:function(t,r){var n=e.isLabeledStatementNode(r)&&r.label===t,o=e.isContinueStatementNode(r)&&r.label===t,a=e.isBreakStatementNode(r)&&r.label===t;return n||o||a}},{key:"isLabeledStatementNode",value:function(e){return e.type===i.NodeType.LabeledStatement}},{key:"isLiteralNode",value:function(e){return e.type===i.NodeType.Literal}},{key:"isMemberExpressionNode",value:function(e){return e.type===i.NodeType.MemberExpression}},{key:"isMethodDefinitionNode",value:function(e){return e.type===i.NodeType.MethodDefinition}},{key:"isNode",value:function(e){return e&&void 0!==!e.type}},{key:"isNodeHasBlockScope",value:function(t,r){return e.isProgramNode(t)||e.isBlockStatementNode(t)&&e.nodesWithBlockScope.includes(r.type)}},{key:"isNodeHasScope",value:function(t){return e.isProgramNode(t)||e.isBlockStatementNode(t)||e.isSwitchCaseNode(t)}},{key:"isNodeWithComments",value:function(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}},{key:"isObjectPatternNode",value:function(e){return e.type===i.NodeType.ObjectPattern}},{key:"isObjectExpressionNode",value:function(e){return e.type===i.NodeType.ObjectExpression}},{key:"isProgramNode",value:function(e){return e.type===i.NodeType.Program}},{key:"isPropertyNode",value:function(e){return e.type===i.NodeType.Property}},{key:"isReplaceableIdentifierNode",value:function(t,r){if(!e.isIdentifierNode(t))return!1;var n=e.isPropertyNode(r)&&!r.computed&&r.key===t,o=e.isMemberExpressionNode(r)&&!r.computed&&r.property===t,a=e.isMethodDefinitionNode(r)&&!r.computed,i=e.isLabelIdentifierNode(t,r);return!(n||o||a||i)}},{key:"isRestElementNode",value:function(e){return e.type===i.NodeType.RestElement}},{key:"isReturnStatementNode",value:function(e){return e.type===i.NodeType.ReturnStatement}},{key:"isSuperNode",value:function(e){return e.type===i.NodeType.Super}},{key:"isSwitchCaseNode",value:function(e){return e.type===i.NodeType.SwitchCase}},{key:"isTaggedTemplateExpressionNode",value:function(e){return e.type===i.NodeType.TaggedTemplateExpression}},{key:"isTemplateLiteralNode",value:function(e){return e.type===i.NodeType.TemplateLiteral}},{key:"isUnaryExpressionNode",value:function(e){return e.type===i.NodeType.UnaryExpression}},{key:"isUseStrictOperator",value:function(e){return e.type===i.NodeType.ExpressionStatement&&"use strict"===e.directive}},{key:"isVariableDeclarationNode",value:function(e){return e.type===i.NodeType.VariableDeclaration}},{key:"isVariableDeclaratorNode",value:function(e){return e.type===i.NodeType.VariableDeclarator}},{key:"isWhileStatementNode",value:function(e){return e.type===i.NodeType.WhileStatement}}]),e}();s.nodesWithBlockScope=[i.NodeType.ArrowFunctionExpression,i.NodeType.FunctionDeclaration,i.NodeType.FunctionExpression,i.NodeType.MethodDefinition],t.NodeGuards=s},function(e,t,r){"use strict";var n=r(0),o=n(r(64)),a=n(r(35)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c=r(4),d=c.__importStar(r(47)),u=c.__importStar(r(63)),l=c.__importStar(r(18)),f=r(9),p=r(19),m=function(){function e(){(0,i.default)(this,e)}return(0,s.default)(e,null,[{key:"addXVerbatimPropertyTo",value:function(e){return e["x-verbatim-property"]={content:e.raw,precedence:d.Precedence.Primary},e}},{key:"clone",value:function(t){return e.parentizeAst(e.cloneRecursive(t))}},{key:"convertCodeToStructure",value:function(t){var r=u.parse(t,{sourceType:"script"});return l.replace(r,{enter:function(t,r){return e.parentizeNode(t,r),f.NodeGuards.isLiteralNode(t)&&e.addXVerbatimPropertyTo(t),p.NodeMetadata.set(t,{ignoredNode:!1}),t}}),r.body}},{key:"convertStructureToCode",value:function(e){return e.reduce(function(e,t){return e+d.generate(t,{sourceMapWithCode:!0}).code},"")}},{key:"getBlockScopeOfNode",value:function(t){return e.getBlockScopesOfNodeRecursive(t,1)[0]}},{key:"getBlockScopesOfNode",value:function(t){return e.getBlockScopesOfNodeRecursive(t)}},{key:"getNextSiblingStatement",value:function(t){return e.getSiblingStatementByOffset(t,1)}},{key:"getPreviousSiblingStatement",value:function(t){return e.getSiblingStatementByOffset(t,-1)}},{key:"getRootStatementOfNode",value:function(t){if(f.NodeGuards.isProgramNode(t))throw new Error("Unable to find root statement for `Program` node");var r=t.parentNode;if(!r)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isNodeHasScope(r)?t:e.getRootStatementOfNode(r)}},{key:"getScopeOfNode",value:function(t){var r=t.parentNode;if(!r)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isNodeHasScope(r)?r:e.getScopeOfNode(r)}},{key:"getUnaryExpressionArgumentNode",value:function(t){return f.NodeGuards.isUnaryExpressionNode(t.argument)?e.getUnaryExpressionArgumentNode(t.argument):t.argument}},{key:"parentizeAst",value:function(t){return l.replace(t,{enter:e.parentizeNode}),t}},{key:"parentizeNode",value:function(e,t){return e.parentNode=t||e,e}},{key:"cloneRecursive",value:function(t){if(null===t)return t;var r={};return(0,a.default)(t).forEach(function(n){if("parentNode"!==n){var a,i=t[n];a=null===i||i instanceof RegExp?i:Array.isArray(i)?i.map(e.cloneRecursive):"object"===(0,o.default)(i)?e.cloneRecursive(i):i,r[n]=a}}),r}},{key:"getBlockScopesOfNodeRecursive",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(n.length>=r)return n;var a=t.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isBlockStatementNode(t)&&a===t&&n.push(t),(f.NodeGuards.isProgramNode(t)||o&&f.NodeGuards.isNodeHasBlockScope(t,a))&&n.push(t),t!==a?e.getBlockScopesOfNodeRecursive(a,r,n,++o):n}},{key:"getSiblingStatementByOffset",value:function(t,r){var n=e.getScopeOfNode(t),o=f.NodeGuards.isSwitchCaseNode(n)?n.consequent:n.body;return o[o.indexOf(t)+r]||null}}]),e}();t.NodeUtils=m},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(186)),i=n(r(185)),s=n(r(184)),c=n(r(183)),d=n(r(182)),u=n(r(181)),l=n(r(31)),f=n(r(35));Object.defineProperty(t,"__esModule",{value:!0});var p={configurable:!0,enumerable:!0},m="_initialized",N="_initializablePropertiesSet",g="_wrappedMethodsSet",v="constructor";function y(e,t,r){(0,u.default)(e,r)||(0,d.default)(e,t,r)}t.initializable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initialize",t=(0,f.default)(this)[0];return function(r,n){var u=r[e];if(!u||"function"!=typeof u)throw new Error("`".concat(e,"` method with initialization logic not ")+"found. `@".concat(t,"` decorator requires `").concat(e,"` method"));return y(m,!1,r),y(N,new l.default,r),y(g,new l.default,r),function(e,t){var r=(0,c.default)(e),n=[t,v];r.forEach(function(r){var c=(0,s.default)(N,e),d=(0,s.default)(g,e),u=n.includes(r)||c.has(r)||d.has(r);if(!u){var l=e[r];if("function"==typeof l){var f=(0,i.default)(e,r)||p,v=f.value;(0,a.default)(e,r,(0,o.default)({},f,{value:function(){if(!(0,s.default)(m,this))throw new Error("Class should be initialized with `".concat(t,"()` method"));return v.apply(this,arguments)}})),d.add(r)}}})}(r,e),function(e,t,r){var n=(0,i.default)(e,t)||p,s=n.value;(0,a.default)(e,t,(0,o.default)({},n,{value:function(){(0,d.default)(m,!0,this);var e=s.apply(this,arguments);return this[r],e}}))}(r,e,n),function(e,t){(0,s.default)(N,e).add(t);var r="_".concat(t.toString()),n=(0,i.default)(e,r)||p;return(0,a.default)(e,t,(0,o.default)({},n,{get:function(){if(void 0===this[r])throw new Error("Property `".concat(t.toString(),"` is not initialized! Initialize it first!"));return this[r]},set:function(e){this[r]=e}})),n}(r,n)}}},function(e,t){e.exports=require("@babel/runtime/core-js/object/assign")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Finalizing="Finalizing"}(t.TransformationStage||(t.TransformationStage={}))},function(e,t,r){"use strict";var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(2),i=r(5),s=function e(t,r){(0,n.default)(this,e),this.randomGenerator=t,this.options=r};s=o.__decorate([a.injectable(),o.__param(0,a.inject(i.ServiceIdentifiers.IRandomGenerator)),o.__param(1,a.inject(i.ServiceIdentifiers.IOptions)),o.__metadata("design:paramtypes",[Object,Object])],s),t.AbstractNodeTransformer=s},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=r(4).__importStar(r(47)),c=r(23),d=function(){function e(){(0,a.default)(this,e)}return(0,i.default)(e,null,[{key:"programNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}},{key:"arrayExpressionNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}},{key:"assignmentExpressionNode",value:function(e,t,r){return{type:c.NodeType.AssignmentExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"binaryExpressionNode",value:function(e,t,r){return{type:c.NodeType.BinaryExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"blockStatementNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}},{key:"breakStatement",value:function(e){var t={type:c.NodeType.BreakStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"callExpressionNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{type:c.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}},{key:"continueStatement",value:function(e){var t={type:c.NodeType.ContinueStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"expressionStatementNode",value:function(e){return{type:c.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}},{key:"functionDeclarationNode",value:function(t,r,n){return{type:c.NodeType.FunctionDeclaration,id:e.identifierNode(t),params:r,body:n,generator:!1,metadata:{ignoredNode:!1}}}},{key:"functionExpressionNode",value:function(e,t){return{type:c.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}},{key:"ifStatementNode",value:function(e,t,r){return(0,o.default)({type:c.NodeType.IfStatement,test:e,consequent:t},r&&{alternate:r},{metadata:{ignoredNode:!1}})}},{key:"identifierNode",value:function(e){return{type:c.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}},{key:"literalNode",value:function(e,t){return t=void 0!==t?t:"'".concat(e,"'"),{type:c.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:s.Precedence.Primary},metadata:{ignoredNode:!1}}}},{key:"logicalExpressionNode",value:function(e,t,r){return{type:c.NodeType.LogicalExpression,operator:e,left:t,right:r,metadata:{ignoredNode:!1}}}},{key:"memberExpressionNode",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.MemberExpression,computed:r,object:e,property:t,metadata:{ignoredNode:!1}}}},{key:"methodDefinitionNode",value:function(e,t,r,n){return{type:c.NodeType.MethodDefinition,key:e,value:t,kind:r,computed:n,static:!1,metadata:{ignoredNode:!1}}}},{key:"objectExpressionNode",value:function(e){return{type:c.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}},{key:"propertyNode",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:r,metadata:{ignoredNode:!1}}}},{key:"returnStatementNode",value:function(e){return{type:c.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}},{key:"switchStatementNode",value:function(e,t){return{type:c.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}},{key:"switchCaseNode",value:function(e,t){return{type:c.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}},{key:"unaryExpressionNode",value:function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:c.NodeType.UnaryExpression,operator:e,argument:t,prefix:r,metadata:{ignoredNode:!1}}}},{key:"updateExpressionNode",value:function(e,t){return{type:c.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}},{key:"variableDeclarationNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"var";return{type:c.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}},{key:"variableDeclaratorNode",value:function(e,t){return{type:c.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}},{key:"whileStatementNode",value:function(e,t){return{type:c.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}]),e}();t.NodeFactory=d},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i,s=r(4),c=r(2),d=r(5),u=r(175),l=r(174),f=i=function(){function e(t,r,n){(0,o.default)(this,e),this.cachedNode=null,this.identifierNamesGenerator=t(n),this.randomGenerator=r,this.options=n}return(0,a.default)(e,[{key:"getNode",value:function(){return this.cachedNode||(this.cachedNode=this.getNodeStructure()),this.cachedNode}},{key:"getGlobalVariableTemplate",value:function(){return this.randomGenerator.getRandomGenerator().pickone(i.globalVariableTemplateFunctions)}}]),e}();f.globalVariableTemplateFunctions=[u.GlobalVariableTemplate1(),l.GlobalVariableTemplate2()],f=i=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),s.__param(1,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s.__param(2,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Function,Object,Object])],f),t.AbstractCustomNode=f},function(e,t){e.exports=require("@babel/runtime/core-js/map")},function(e,t){e.exports=require("estraverse")},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(){(0,a.default)(this,e)}return(0,i.default)(e,null,[{key:"set",value:function(e,t){e.metadata=(0,o.default)(e.metadata||{},t)}},{key:"get",value:function(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}},{key:"isIgnoredNode",value:function(t){return!0===e.get(t,"ignoredNode")}},{key:"isRenamedIdentifier",value:function(t){return!0===e.get(t,"renamedIdentifier")}},{key:"isReplacedLiteral",value:function(t){return!0===e.get(t,"replacedLiteral")}}]),e}();t.NodeMetadata=s},function(e,t){e.exports=require("string-template")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BaseIdentifierObfuscatingReplacer="BaseIdentifierObfuscatingReplacer"}(t.IdentifierObfuscatingReplacer||(t.IdentifierObfuscatingReplacer={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",e.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",e.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",e.CallExpressionFunctionNode="CallExpressionFunctionNode",e.ControlFlowStorageNode="ControlFlowStorageNode",e.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",e.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",e.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode",e.StringLiteralNode="StringLiteralNode"}(t.ControlFlowCustomNode||(t.ControlFlowCustomNode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ArrayExpression="ArrayExpression",e.ArrayPattern="ArrayPattern",e.ArrowFunctionExpression="ArrowFunctionExpression",e.AssignmentExpression="AssignmentExpression",e.AssignmentPattern="AssignmentPattern",e.AwaitExpression="AwaitExpression",e.BinaryExpression="BinaryExpression",e.BlockStatement="BlockStatement",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.CatchClause="CatchClause",e.ClassDeclaration="ClassDeclaration",e.ContinueStatement="ContinueStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExpressionStatement="ExpressionStatement",e.FunctionDeclaration="FunctionDeclaration",e.FunctionExpression="FunctionExpression",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.ImportNamespaceSpecifier="ImportNamespaceSpecifier",e.ImportSpecifier="ImportSpecifier",e.LabeledStatement="LabeledStatement",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.MethodDefinition="MethodDefinition",e.ObjectExpression="ObjectExpression",e.ObjectPattern="ObjectPattern",e.Program="Program",e.Property="Property",e.RestElement="RestElement",e.ReturnStatement="ReturnStatement",e.Super="Super",e.SwitchCase="SwitchCase",e.SwitchStatement="SwitchStatement",e.TaggedTemplateExpression="TaggedTemplateExpression",e.TemplateLiteral="TemplateLiteral",e.TryStatement="TryStatement",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement"}(t.NodeType||(t.NodeType={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(210)),a=n(r(17)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c=r(2),d=r(5),u=r(209),l=r(204),f=r(196),p=r(188),m=r(135),N=r(134),g=r(131),v=r(130),y=r(117),_=r(101),h=r(91),b=r(86),S=r(80),I=r(67),C=r(77),F=r(75),O=r(74),j=r(73),T=r(72),k=function(){function e(){(0,i.default)(this,e),this.container=new c.Container}return(0,s.default)(e,[{key:"get",value:function(e){return this.container.get(e)}},{key:"getNamed",value:function(e,t){return this.container.getNamed(e,t)}},{key:"load",value:function(e,t){this.container.bind(d.ServiceIdentifiers.ISourceCode).toDynamicValue(function(){return new O.SourceCode(e)}).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.TInputOptions).toDynamicValue(function(){return t}).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.ILogger).to(I.Logger).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IJavaScriptObfuscator).to(S.JavaScriptObfuscator).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.ITransformersRunner).to(T.TransformersRunner).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IObfuscationResult).to(F.ObfuscationResult).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(function(e){return function(t,r){var n=e.container.get(d.ServiceIdentifiers.IObfuscationResult);return n.initialize(t,r),n}}),this.container.bind(d.ServiceIdentifiers.ISourceMapCorrector).to(j.SourceMapCorrector).inSingletonScope(),this.container.bind(d.ServiceIdentifiers.IObfuscationEventEmitter).to(C.ObfuscationEventEmitter).inSingletonScope(),this.container.load(u.analyzersModule),this.container.load(l.controlFlowTransformersModule),this.container.load(f.convertingTransformersModule),this.container.load(p.customNodesModule),this.container.load(m.finalizingTransformersModule),this.container.load(N.generatorsModule),this.container.load(g.nodeTransformersModule),this.container.load(v.obfuscatingTransformersModule),this.container.load(y.optionsModule),this.container.load(_.preparingTransformersModule),this.container.load(h.storagesModule),this.container.load(b.utilsModule)}},{key:"unload",value:function(){this.container.unbindAll()}}],[{key:"getFactory",value:function(e){return function(t){return function(r){return t.container.getNamed(e,r)}}}},{key:"getCacheFactory",value:function(e){return function(t){var r=new a.default;return function(n){if(r.has(n))return r.get(n);var o=t.container.getNamed(e,n);return r.set(n,o),o}}}},{key:"getConstructorFactory",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n3&&void 0!==arguments[3]?arguments[3]:0,a=t.length?e.getOptimalBlockScope(t,o):r;e.prepend(a,n)}},{key:"getOptimalBlockScope",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,o=t[r];if(n<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return n>1&&o.stackTrace.length?e.getOptimalBlockScope(o.stackTrace,0,--n):o.callee}},{key:"insertAfter",value:function(t,r,n){var o=e.getScopeStatements(t).indexOf(n);e.insertAtIndex(t,r,o+1)}},{key:"insertAtIndex",value:function(t,r,n){r=e.parentizeScopeStatementsBeforeAppend(t,r),e.setScopeStatements(t,(0,o.default)(e.getScopeStatements(t).slice(0,n)).concat((0,o.default)(r),(0,o.default)(e.getScopeStatements(t).slice(n))))}},{key:"prepend",value:function(t,r){r=e.parentizeScopeStatementsBeforeAppend(t,r),e.setScopeStatements(t,(0,o.default)(r).concat((0,o.default)(e.getScopeStatements(t))))}},{key:"getScopeStatements",value:function(e){return s.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}},{key:"parentizeScopeStatementsBeforeAppend",value:function(e,t){return t.forEach(function(t){t.parentNode=e}),t}},{key:"setScopeStatements",value:function(e,t){s.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}]),e}();t.NodeAppender=c},function(e,t){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputDisableExpressionNode="ConsoleOutputDisableExpressionNode",e.DebugProtectionFunctionCallNode="DebugProtectionFunctionCallNode",e.DebugProtectionFunctionIntervalNode="DebugProtectionFunctionIntervalNode",e.DebugProtectionFunctionNode="DebugProtectionFunctionNode",e.DomainLockNode="DomainLockNode",e.NodeCallsControllerFunctionNode="NodeCallsControllerFunctionNode",e.SelfDefendingUnicodeNode="SelfDefendingUnicodeNode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArrayNode="StringArrayNode",e.StringArrayRotateFunctionNode="StringArrayRotateFunctionNode"}(t.CustomNode||(t.CustomNode={}))},function(e,t){e.exports=require("@babel/runtime/helpers/slicedToArray")},function(e,t){e.exports=require("@babel/runtime/core-js/set")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.ClassDeclarationTransformer="ClassDeclarationTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomNodesTransformer="CustomNodesTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.CatchClauseTransformer="CatchClauseTransformer",e.FunctionDeclarationTransformer="FunctionDeclarationTransformer",e.FunctionTransformer="FunctionTransformer",e.ImportDeclarationTransformer="ImportDeclarationTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationTransformer="VariableDeclarationTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"extractDomainFrom",value:function(e){return(e.indexOf("://")>-1||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0]).split(":")[0]}}]),e}();i.hexadecimalPrefix="0x",t.Utils=i},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=function(){function e(t,r,n){(0,o.default)(this,e),this.identifierNamesGenerator=t(n),this.randomGenerator=r,this.options=n}return(0,a.default)(e,[{key:"getAppendEvent",value:function(){return this.appendEvent}},{key:"getCustomNodes",value:function(){return this.customNodes}},{key:"appendCustomNodeIfExist",value:function(e,t){var r=this.customNodes.get(e);r&&t(r)}},{key:"getRandomStackTraceIndex",value:function(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}}]),e}();d=i.__decorate([s.injectable(),i.__param(0,s.inject(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i.__param(1,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i.__param(2,s.inject(c.ServiceIdentifiers.IOptions)),i.__metadata("design:paramtypes",[Function,Object,Object])],d),t.AbstractCustomNodeGroup=d},function(e,t){e.exports=require("@babel/runtime/core-js/object/keys")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0}),r(68);var i=r(5),s=r(24),c=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"obfuscate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new s.InversifyContainerFacade;r.load(e,t);var n=r.get(i.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return r.unload(),n}}]),e}();c.version="0.17.0",t.JavaScriptObfuscator=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base64="base64",e.Rc4="rc4"}(t.StringArrayEncoding||(t.StringArrayEncoding={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Inline="inline",e.Separate="separate"}(t.SourceMapMode||(t.SourceMapMode={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.HexadecimalIdentifierNamesGenerator="hexadecimal",e.MangledIdentifierNamesGenerator="mangled"}(t.IdentifierNamesGenerator||(t.IdentifierNamesGenerator={}))},function(e,t,r){"use strict";var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var o=r(4),a=r(2),i=r(5),s=function e(t){(0,n.default)(this,e),this.options=t};s=o.__decorate([a.injectable(),o.__param(0,a.inject(i.ServiceIdentifiers.IOptions)),o.__metadata("design:paramtypes",[Object])],s),t.AbstractObfuscatingReplacer=s},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"toHex",value:function(e){return e.toString(16)}},{key:"isCeil",value:function(e){return e%1==0}}]),e}();t.NumberUtils=i},function(e,t){e.exports=require("@babel/runtime/helpers/get")},function(e,t,r){"use strict";var n=r(0)(r(56));Object.defineProperty(t,"__esModule",{value:!0});var o=r(39),a=r(25),i=r(38);t.NO_ADDITIONAL_NODES_PRESET=(0,n.default)({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:o.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!1,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:i.SourceMapMode.Separate,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:a.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t){e.exports=require("@babel/runtime/core-js/get-iterator")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=function(){return"\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=s=function(){function e(t,r,n){(0,a.default)(this,e),this.replacerDataByControlFlowStorageId=new o.default,this.controlFlowCustomNodeFactory=t,this.randomGenerator=r,this.options=n}return(0,i.default)(e,[{key:"insertCustomNodeToControlFlowStorage",value:function(e,t,r,n){var o=this,a=t.getStorageId(),i=s.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,a),c=i.get(r);if(this.randomGenerator.getMathRandom()1&&void 0!==arguments[1]?arguments[1]:i.randomGeneratorPool;return this.getRandomGenerator().string({length:e,pool:t})}},{key:"getSeed",value:function(){return this.seed}}]),e}();p.randomGeneratorPool="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",s.__decorate([f.initializable(),s.__metadata("design:type",Object)],p.prototype,"randomGenerator",void 0),s.__decorate([f.initializable(),s.__metadata("design:type",Number)],p.prototype,"seed",void 0),s.__decorate([c.postConstruct(),s.__metadata("design:type",Function),s.__metadata("design:paramtypes",[]),s.__metadata("design:returntype",void 0)],p.prototype,"initialize",null),p=i=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.ISourceCode)),s.__param(1,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Object,Object])],p),t.RandomGenerator=p},function(e,t,r){"use strict";var n=r(0),o=n(r(28)),a=n(r(30)),i=n(r(44)),s=n(r(17)),c=n(r(1)),d=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=function(){function e(t,r){(0,c.default)(this,e),this.randomGenerator=t,this.options=r}return(0,d.default)(e,[{key:"initialize",value:function(){this.storage=new s.default,this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage.get(e);if(!t)throw new Error("No value found in map storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=!0,r=!1,n=void 0;try{for(var o,s=(0,i.default)(this.storage);!(t=(o=s.next()).done);t=!0){var c=(0,a.default)(o.value,2),d=c[0];if(e===c[1])return d}}catch(e){r=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(r)throw n}}return null}},{key:"getLength",value:function(){return this.storage.size}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"has",value:function(e){return this.storage.has(e)}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=new s.default((0,o.default)(this.storage).concat((0,o.default)(e.getStorage()))),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){this.storage.set(e,t)}}]),e}();u.__decorate([p.initializable(),u.__metadata("design:type",String)],m.prototype,"storageId",void 0),u.__decorate([p.initializable(),u.__metadata("design:type",s.default)],m.prototype,"storage",void 0),u.__decorate([l.postConstruct(),u.__metadata("design:type",Function),u.__metadata("design:paramtypes",[]),u.__metadata("design:returntype",void 0)],m.prototype,"initialize",null),m=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],m),t.MapStorage=m},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlackListNodeGuard="BlackListNodeGuard",e.ConditionalCommentNodeGuard="ConditionalCommentNodeGuard"}(t.ObfuscatingGuard||(t.ObfuscatingGuard={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BooleanLiteralObfuscatingReplacer="BooleanLiteralObfuscatingReplacer",e.NumberLiteralObfuscatingReplacer="NumberLiteralObfuscatingReplacer",e.StringLiteralObfuscatingReplacer="StringLiteralObfuscatingReplacer"}(t.LiteralObfuscatingReplacer||(t.LiteralObfuscatingReplacer={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=function(){function e(t,r){(0,o.default)(this,e),this.randomGenerator=t,this.options=r}return(0,a.default)(e,[{key:"isValidIdentifierName",value:function(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(function(t){return null!==new RegExp(t,"g").exec(e)})}}]),e}();d=i.__decorate([s.injectable(),i.__param(0,s.inject(c.ServiceIdentifiers.IRandomGenerator)),i.__param(1,s.inject(c.ServiceIdentifiers.IOptions)),i.__metadata("design:paramtypes",[Object,Object])],d),t.AbstractIdentifierNamesGenerator=d},function(e,t){e.exports=require("@babel/runtime/core-js/object/freeze")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputCustomNodeGroup="ConsoleOutputCustomNodeGroup",e.DebugProtectionCustomNodeGroup="DebugProtectionCustomNodeGroup",e.DomainLockCustomNodeGroup="DomainLockCustomNodeGroup",e.SelfDefendingCustomNodeGroup="SelfDefendingCustomNodeGroup",e.StringArrayCustomNodeGroup="StringArrayCustomNodeGroup"}(t.CustomNodeGroup||(t.CustomNodeGroup={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(17)),i=n(r(1)),s=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var c,d=r(4),u=r(2),l=r(5),f=r(27),p=r(15),m=r(9),N=r(10),g=c=function(){function e(t,r){(0,i.default)(this,e),this.cachedHostScopesMap=new a.default,this.cachedHostStatementsMap=new a.default,this.randomGenerator=t,this.options=r}return(0,s.default)(e,[{key:"extractPropertiesToExpressionStatements",value:function(e,t){for(var r=e.length,n=[],o=[],a=0;a"),c="...".concat(o.substring(a,i).replace(/^\s+/,""),"...");throw new Error("Line ".concat(n.line,": ").concat(r,"\n").concat(s," ").concat(c))}}]),e}();u.colorError=d.default.red,u.nearestSymbolsCount=15,u.sourceTypes=["script","module"],t.EspreeFacade=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.TransformationStage="Transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=c.__importStar(r(47)),f=r(79),p=r(32),m=r(13),N=r(78),g=r(9),v=s=function(){function e(t,r,n,o,i){(0,a.default)(this,e),this.transformersRunner=t,this.sourceMapCorrector=r,this.randomGenerator=n,this.logger=o,this.options=i}return(0,i.default)(e,[{key:"obfuscate",value:function(e){var t=Date.now();this.logger.info(f.LoggingMessage.Version,"0.17.0"),this.logger.info(f.LoggingMessage.ObfuscationStarted),this.logger.info(f.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getSeed());var r=this.parseCode(e),n=this.transformAstTree(r),o=this.generateCode(e,n),a=(Date.now()-t)/1e3;return this.logger.success(f.LoggingMessage.ObfuscationCompleted,a),this.getObfuscationResult(o)}},{key:"parseCode",value:function(e){return N.EspreeFacade.parse(e,s.espreeParseOptions)}},{key:"transformAstTree",value:function(e){return!g.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runTransformationStage(e,m.TransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runTransformationStage(e,m.TransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runTransformationStage(e,m.TransformationStage.ControlFlowFlattening)),e=this.runTransformationStage(e,m.TransformationStage.Converting),e=this.runTransformationStage(e,m.TransformationStage.Obfuscating),e=this.runTransformationStage(e,m.TransformationStage.Finalizing)):(this.logger.warn(f.LoggingMessage.EmptySourceCode),e)}},{key:"generateCode",value:function(e,t){var r=(0,o.default)({},s.escodegenParams);this.options.sourceMap&&(r.sourceMap=this.options.inputFileName||"sourceMap",r.sourceContent=e);var n=l.generate(t,(0,o.default)({},r,{format:{compact:this.options.compact}}));return n.map=n.map?n.map.toString():"",n}},{key:"getObfuscationResult",value:function(e){return this.sourceMapCorrector.correct(e.code,e.map)}},{key:"runTransformationStage",value:function(e,t){return this.logger.info(f.LoggingMessage.TransformationStage,t),this.transformersRunner.transform(e,s.transformersList,t)}}]),e}();v.espreeParseOptions={attachComment:!0,comment:!0,ecmaFeatures:{experimentalObjectRestSpread:!0},ecmaVersion:9,loc:!0,range:!0},v.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},v.transformersList=[p.NodeTransformer.BlockStatementControlFlowTransformer,p.NodeTransformer.ClassDeclarationTransformer,p.NodeTransformer.CommentsTransformer,p.NodeTransformer.CustomNodesTransformer,p.NodeTransformer.DeadCodeInjectionTransformer,p.NodeTransformer.EvalCallExpressionTransformer,p.NodeTransformer.FunctionControlFlowTransformer,p.NodeTransformer.CatchClauseTransformer,p.NodeTransformer.FunctionDeclarationTransformer,p.NodeTransformer.FunctionTransformer,p.NodeTransformer.ImportDeclarationTransformer,p.NodeTransformer.LabeledStatementTransformer,p.NodeTransformer.LiteralTransformer,p.NodeTransformer.MemberExpressionTransformer,p.NodeTransformer.MetadataTransformer,p.NodeTransformer.MethodDefinitionTransformer,p.NodeTransformer.ObfuscatingGuardsTransformer,p.NodeTransformer.ObjectExpressionKeysTransformer,p.NodeTransformer.ObjectExpressionTransformer,p.NodeTransformer.ParentificationTransformer,p.NodeTransformer.TemplateLiteralTransformer,p.NodeTransformer.VariableDeclarationTransformer],v=s=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.ITransformersRunner)),c.__param(1,d.inject(u.ServiceIdentifiers.ISourceMapCorrector)),c.__param(2,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c.__param(3,d.inject(u.ServiceIdentifiers.ILogger)),c.__param(4,d.inject(u.ServiceIdentifiers.IOptions)),c.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],v),t.JavaScriptObfuscator=v},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s=r(4),c=r(2),d=function(){function e(){(0,a.default)(this,e),this.stringsCache=new o.default}return(0,i.default)(e,[{key:"encode",value:function(e,t){var r="".concat(e,"-").concat(String(t));if(this.stringsCache.has(r))return this.stringsCache.get(r);var n,o,a=new RegExp("[\\s\\S]","g"),i=new RegExp("['\"\\\\\\s]"),s=new RegExp("[\\x00-\\x7F]"),c=e.replace(a,function(e){return t||i.exec(e)?(s.exec(e)?(n="\\x",o="00"):(n="\\u",o="0000"),"".concat(n).concat((o+e.charCodeAt(0).toString(16)).slice(-o.length))):e});return this.stringsCache.set(r,c),c}}]),e}();d=s.__decorate([c.injectable()],d),t.EscapeSequenceEncoder=d},function(e,t){e.exports=require("chance")},function(e,t){e.exports=require("md5")},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i=r(4),s=r(2),c=r(5),d=r(51),u=r(33),l=function(){function e(t){(0,o.default)(this,e),this.randomGenerator=t}return(0,a.default)(e,[{key:"btoa",value:function(e){var t="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode(parseInt("".concat(u.Utils.hexadecimalPrefix).concat(t)))});for(var r,n,o=0,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.charAt(0|o)||(a="=",o%1);t+=a.charAt(63&r>>8-o%1*8)){if((n=e.charCodeAt(o+=.75))>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");r=r<<8|n}return t}},{key:"hideString",value:function(e,t){var r=this,n=this.randomGenerator.getRandomGenerator().string({length:t,pool:d.RandomGenerator.randomGeneratorPool}).replace(new RegExp("[".concat(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"]"),"g"),""),o=n.split("");return this.randomGenerator.getRandomGenerator().shuffle(o),[function(e,t){for(var n=-1,o=-1,a="";n=0?t:null}},{key:"getLength",value:function(){return this.storageLength}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=(0,o.default)(this.storage).concat((0,o.default)(e.getStorage())),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}}]),e}();s.__decorate([u.initializable(),s.__metadata("design:type",Array)],l.prototype,"storage",void 0),s.__decorate([u.initializable(),s.__metadata("design:type",String)],l.prototype,"storageId",void 0),s.__decorate([c.postConstruct(),s.__metadata("design:type",Function),s.__metadata("design:paramtypes",[]),s.__metadata("design:returntype",void 0)],l.prototype,"initialize",null),l=s.__decorate([c.injectable(),s.__param(0,c.inject(d.ServiceIdentifiers.IRandomGenerator)),s.__param(1,c.inject(d.ServiceIdentifiers.IOptions)),s.__metadata("design:paramtypes",[Object,Object])],l),t.ArrayStorage=l},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(87),N=u=function(e){function t(e,r,n,a){var c;return(0,o.default)(this,t),(c=(0,i.default)(this,(0,s.default)(t).call(this,n,a))).identifierNamesGenerator=e(a),c.arrayUtils=r,c}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){(0,c.default)((0,s.default)(t.prototype),"initialize",this).call(this);var e=this.identifierNamesGenerator.generate().slice(0,u.stringArrayNameLength),r=this.identifierNamesGenerator.generate().slice(0,u.stringArrayNameLength),n="".concat(this.options.identifiersPrefix).concat(e),o="".concat(this.options.identifiersPrefix).concat(r);this.storageId="".concat(n,"|").concat(o)}},{key:"rotateArray",value:function(e){this.storage=this.arrayUtils.rotate(this.storage,e)}},{key:"toString",value:function(){return this.storage.map(function(e){return"'".concat(e,"'")}).toString()}}]),t}(m.ArrayStorage);N.stringArrayNameLength=7,l.__decorate([f.postConstruct(),l.__metadata("design:type",Function),l.__metadata("design:paramtypes",[]),l.__metadata("design:returntype",void 0)],N.prototype,"initialize",null),N=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IArrayUtils)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object,Object])],N),t.StringArrayStorage=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(57),N=r(52),g=u=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).customNodeGroupFactory=e,a}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){var e=this;(0,c.default)((0,s.default)(t.prototype),"initialize",this).call(this),u.customNodeGroupsList.forEach(function(t){var r=e.customNodeGroupFactory(t);r&&e.storage.set(t,r)})}}]),t}(N.MapStorage);g.customNodeGroupsList=[m.CustomNodeGroup.ConsoleOutputCustomNodeGroup,m.CustomNodeGroup.DebugProtectionCustomNodeGroup,m.CustomNodeGroup.DomainLockCustomNodeGroup,m.CustomNodeGroup.SelfDefendingCustomNodeGroup,m.CustomNodeGroup.StringArrayCustomNodeGroup],l.__decorate([f.postConstruct(),l.__metadata("design:type",Function),l.__metadata("design:paramtypes",[]),l.__metadata("design:returntype",void 0)],g.prototype,"initialize",null),g=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__ICustomNodeGroup)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],g),t.CustomNodeGroupStorage=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(8)),i=n(r(7)),s=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var c=r(4),d=r(2),u=r(5),l=function(e){function t(e,r){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).call(this,e,r))}return(0,s.default)(t,e),t}(r(52).MapStorage);l=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.IRandomGenerator)),c.__param(1,d.inject(u.ServiceIdentifiers.IOptions)),c.__metadata("design:paramtypes",[Object,Object])],l),t.ControlFlowStorage=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(5),a=r(90),i=r(89),s=r(88);t.storagesModule=new n.ContainerModule(function(e){e(o.ServiceIdentifiers.TCustomNodeGroupStorage).to(i.CustomNodeGroupStorage).inSingletonScope(),e(o.ServiceIdentifiers.TStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(o.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(a.ControlFlowStorage),e(o.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function(e){return function(){var t=new(e.container.get(o.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(o.ServiceIdentifiers.IRandomGenerator),e.container.get(o.ServiceIdentifiers.IOptions));return t.initialize(),t}})})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(10),N=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return m.NodeUtils.parentizeNode(e,t)}}]),t}(p.AbstractNodeTransformer);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],N),t.ParentificationTransformer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(53),m=r(13),N=r(14),g=r(19),v=d=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).obfuscatingGuards=d.obfuscatingGuardsList.map(e),a}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=this.obfuscatingGuards.every(function(t){return t.check(e)});return g.NodeMetadata.set(e,{ignoredNode:!r}),e}}]),t}(N.AbstractNodeTransformer);v.obfuscatingGuardsList=[p.ObfuscatingGuard.BlackListNodeGuard,p.ObfuscatingGuard.ConditionalCommentNodeGuard],v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__INodeGuard)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.ObfuscatingGuardsTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(9),N=r(19),g=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Preparing:return{enter:function(e,r){return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return N.NodeMetadata.set(e,{ignoredNode:!1}),m.NodeGuards.isIdentifierNode(e)&&N.NodeMetadata.set(e,{renamedIdentifier:!1}),m.NodeGuards.isLiteralNode(e)&&N.NodeMetadata.set(e,{replacedLiteral:!1}),e}}]),t}(p.AbstractNodeTransformer);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],g),t.MetadataTransformer=g},function(e,t){e.exports=require("js-string-escape")},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importDefault(r(95)),N=r(13),g=r(14),v=r(15),y=r(9),_=r(10),h=u=function(e){function t(e,r){var n;return(0,a.default)(this,t),(n=(0,s.default)(this,(0,c.default)(t).call(this,e,r))).evalRootAstHostNodeSet=new o.default,n}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.Preparing:return{enter:function(e,r){if(r&&y.NodeGuards.isCallExpressionNode(e)&&y.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return t.transformNode(e,r)}};case N.TransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:function(e,r){if(r&&t.isEvalRootAstHostNode(e))return t.restoreNode(e,r)}}:null;default:return null}}},{key:"transformNode",value:function(e,t){var r=e.arguments[0];if(!r)return e;var n,o=u.extractEvalStringFromCallExpressionArgument(r);if(!o)return e;try{n=_.NodeUtils.convertCodeToStructure(o)}catch(t){return e}var a=v.NodeFactory.functionExpressionNode([],v.NodeFactory.blockStatementNode(n));return this.evalRootAstHostNodeSet.add(a),a}},{key:"restoreNode",value:function(e,t){var r=e.body.body,n=_.NodeUtils.convertStructureToCode(r);return v.NodeFactory.callExpressionNode(v.NodeFactory.identifierNode("eval"),[v.NodeFactory.literalNode(m.default(n))])}},{key:"isEvalRootAstHostNode",value:function(e){return y.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}}],[{key:"extractEvalStringFromCallExpressionArgument",value:function(e){return y.NodeGuards.isLiteralNode(e)?u.extractEvalStringFromLiteralNode(e):y.NodeGuards.isTemplateLiteralNode(e)?u.extractEvalStringFromTemplateLiteralNode(e):null}},{key:"extractEvalStringFromLiteralNode",value:function(e){return"string"==typeof e.value?e.value:null}},{key:"extractEvalStringFromTemplateLiteralNode",value:function(e){var t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}}]),t}(g.AbstractNodeTransformer);h=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],h),t.EvalCallExpressionTransformer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(26),p=r(13),m=r(14),N=r(9),g=function(e){function t(e,r,n,a,c){var d;return(0,o.default)(this,t),(d=(0,i.default)(this,(0,s.default)(t).call(this,a,c))).stackTraceData=[],d.stackTraceAnalyzer=e,d.obfuscationEventEmitter=r,d.customNodeGroupStorage=n,d}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Preparing:return{leave:function(e,r){if(N.NodeGuards.isProgramNode(e))return t.analyzeNode(e,r),t.appendCustomNodesBeforeObfuscation(e,r),t.transformNode(e,r)}};case p.TransformationStage.Finalizing:return{leave:function(e,r){N.NodeGuards.isProgramNode(e)&&t.appendCustomNodesAfterObfuscation(e,r)}};default:return null}}},{key:"analyzeNode",value:function(e,t){this.stackTraceData=this.stackTraceAnalyzer.analyze(e)}},{key:"transformNode",value:function(e,t){return e}},{key:"appendCustomNodesBeforeObfuscation",value:function(e,t){var r=this;this.customNodeGroupStorage.getStorage().forEach(function(e){e.initialize(),r.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendCustomNodes.bind(e))}),this.obfuscationEventEmitter.emit(f.ObfuscationEvent.BeforeObfuscation,e,this.stackTraceData)}},{key:"appendCustomNodesAfterObfuscation",value:function(e,t){this.obfuscationEventEmitter.emit(f.ObfuscationEvent.AfterObfuscation,e,this.stackTraceData)}}]),t}(m.AbstractNodeTransformer);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IStackTraceAnalyzer)),d.__param(1,u.inject(l.ServiceIdentifiers.IObfuscationEventEmitter)),d.__param(2,u.inject(l.ServiceIdentifiers.TCustomNodeGroupStorage)),d.__param(3,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(4,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],g),t.CustomNodesTransformer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var i,s=r(4),c=r(2),d=r(9),u=i=function(){function e(){(0,o.default)(this,e),this.obfuscationAllowedForCurrentNode=!0,this.obfuscationAllowedForNextNode=null}return(0,a.default)(e,[{key:"check",value:function(e){if(this.obfuscationAllowedForNextNode&&(this.obfuscationAllowedForCurrentNode=this.obfuscationAllowedForNextNode,this.obfuscationAllowedForNextNode=null),!d.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowedForCurrentNode;var t=e.leadingComments,r=e.trailingComments;return t&&(this.obfuscationAllowedForCurrentNode=this.checkComments(t)),r&&(this.obfuscationAllowedForNextNode=this.checkComments(r)),this.obfuscationAllowedForCurrentNode}},{key:"checkComments",value:function(e){for(var t=e.length,r=this.obfuscationAllowedForCurrentNode,n=0;n=u.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}},{key:"getStringArrayHexadecimalIndex",value:function(e,t){if(this.stringLiteralHexadecimalIndexCache.has(e))return{fromCache:!0,index:this.stringLiteralHexadecimalIndexCache.get(e)};var r=y.NumberUtils.toHex(t),n="".concat(_.Utils.hexadecimalPrefix).concat(r);return this.stringLiteralHexadecimalIndexCache.set(e,n),{fromCache:!1,index:n}}},{key:"getEncodedValue",value:function(e){var t,r=null;switch(this.options.stringArrayEncoding){case m.StringArrayEncoding.Rc4:r=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),t=this.cryptUtils.btoa(this.cryptUtils.rc4(e,r));break;case m.StringArrayEncoding.Base64:t=this.cryptUtils.btoa(e);break;default:t=e}return{encodedValue:t,key:r}}},{key:"replaceWithLiteralNode",value:function(e){return v.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(e,this.options.unicodeEscapeSequence))}},{key:"replaceWithStringArrayCallNode",value:function(e){var t=this.getEncodedValue(e),r=t.encodedValue,n=t.key,o=this.escapeSequenceEncoder.encode(r,this.options.unicodeEscapeSequence),a=this.stringArrayStorage.getLength(),i=this.stringArrayStorage.getStorageId().split("|")[1],s=this.getStringArrayHexadecimalIndex(o,a),c=s.fromCache,d=s.index;c||this.stringArrayStorage.set(a,o);var l=[u.getHexadecimalLiteralNode(d)];n&&l.push(u.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(n,this.options.unicodeEscapeSequence)));var f=v.NodeFactory.identifierNode(i);return g.NodeMetadata.set(f,{renamedIdentifier:!0}),v.NodeFactory.callExpressionNode(f,l)}}],[{key:"getHexadecimalLiteralNode",value:function(e){var t=v.NodeFactory.literalNode(e);return g.NodeMetadata.set(t,{replacedLiteral:!0}),t}},{key:"getRc4KeyLiteralNode",value:function(e){var t=v.NodeFactory.literalNode(e);return g.NodeMetadata.set(t,{replacedLiteral:!0}),t}}]),t}(N.AbstractObfuscatingReplacer);h.minimumLengthForStringArray=3,h.rc4KeyLength=4,h.rc4KeysCount=50,h=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.TStringArrayStorage)),l.__param(1,f.inject(p.ServiceIdentifiers.IEscapeSequenceEncoder)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.ICryptUtils)),l.__param(4,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object,Object,Object,Object])],h),t.StringLiteralObfuscatingReplacer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(40),m=r(15),N=r(41),g=r(33),v=function(e){function t(e){var r;return(0,a.default)(this,t),(r=(0,s.default)(this,(0,c.default)(t).call(this,e))).numberLiteralCache=new o.default,r}return(0,d.default)(t,e),(0,i.default)(t,[{key:"replace",value:function(e){var t;return this.numberLiteralCache.has(e)?t=this.numberLiteralCache.get(e):(t=N.NumberUtils.isCeil(e)?"".concat(g.Utils.hexadecimalPrefix).concat(N.NumberUtils.toHex(e)):String(e),this.numberLiteralCache.set(e,t)),m.NodeFactory.literalNode(e,t)}}]),t}(p.AbstractObfuscatingReplacer);v=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object])],v),t.NumberLiteralObfuscatingReplacer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(64)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(54),m=r(13),N=r(14),g=r(9),v=r(19),y=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).literalObfuscatingReplacerFactory=e,o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&g.NodeGuards.isLiteralNode(e)&&!v.NodeMetadata.isReplacedLiteral(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.isProhibitedNode(e,t))return e;switch((0,o.default)(e.value)){case"boolean":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(e.value);case"number":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(e.value);case"string":return this.literalObfuscatingReplacerFactory(p.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(e.value);default:return e}}},{key:"isProhibitedNode",value:function(e,t){return!(!g.NodeGuards.isPropertyNode(t)||t.key!==e)||!!g.NodeGuards.isImportDeclarationNode(t)}}]),t}(N.AbstractNodeTransformer);y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IObfuscatingReplacer)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],y),t.LiteralTransformer=y},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importStar(r(18)),p=r(21),m=r(13),N=r(14),g=r(9),v=r(10),y=function(e){function t(e,r,n){var a;return(0,o.default)(this,t),(a=(0,i.default)(this,(0,s.default)(t).call(this,r,n))).identifierObfuscatingReplacer=e(p.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),a}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case m.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&g.NodeGuards.isLabeledStatementNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=v.NodeUtils.getBlockScopeOfNode(e);return this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e}},{key:"storeLabeledStatementName",value:function(e,t){this.identifierObfuscatingReplacer.storeLocalName(e.label.name,t)}},{key:"replaceLabeledStatementName",value:function(e,t){var r=this;f.replace(e,{enter:function(e,n){if(n&&g.NodeGuards.isLabelIdentifierNode(e,n)){var o=r.identifierObfuscatingReplacer.replace(e.name,t);e.name=o.name}}})}}]),t}(N.AbstractNodeTransformer);y=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],y),t.LabeledStatementTransformer=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importStar(r(18)),N=r(21),g=r(13),v=r(14),y=r(9),_=r(19),h=r(10),b=u=function(e){function t(e,r,n){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).replaceableIdentifiers=new o.default,i.identifierObfuscatingReplacer=e(N.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case g.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&y.NodeGuards.isImportDeclarationNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=h.NodeUtils.getBlockScopeOfNode(e);return this.storeImportSpecifierNames(e,r),this.replaceableIdentifiers.has(r)?this.replaceScopeCachedIdentifiers(r):this.replaceScopeIdentifiers(r),e}},{key:"storeImportSpecifierNames",value:function(e,t){var r=this;e.specifiers.forEach(function(e){u.isProhibitedImportSpecifierNode(e)||r.identifierObfuscatingReplacer.storeGlobalName(e.local.name,t)})}},{key:"replaceScopeCachedIdentifiers",value:function(e){var t=this;this.replaceableIdentifiers.get(e).forEach(function(r){var n=t.identifierObfuscatingReplacer.replace(r.name,e);r.name=n.name,_.NodeMetadata.set(r,{renamedIdentifier:!0})})}},{key:"replaceScopeIdentifiers",value:function(e){var t=this,r=[];m.replace(e,{enter:function(n,o){if(o&&y.NodeGuards.isReplaceableIdentifierNode(n,o)&&!_.NodeMetadata.isRenamedIdentifier(n)){var a=t.identifierObfuscatingReplacer.replace(n.name,e).name;n.name!==a?(n.name=a,_.NodeMetadata.set(n,{renamedIdentifier:!0})):r.push(n)}}}),this.replaceableIdentifiers.set(e,r)}}],[{key:"isProhibitedImportSpecifierNode",value:function(e){return y.NodeGuards.isImportSpecifierNode(e)&&e.imported.name===e.local.name}}]),t}(v.AbstractNodeTransformer);b=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],b),t.ImportDeclarationTransformer=b},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(21),N=r(13),g=r(14),v=r(9),y=r(19),_=r(10),h=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).identifierObfuscatingReplacer=e(m.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&(v.NodeGuards.isFunctionDeclarationNode(e)||v.NodeGuards.isFunctionExpressionNode(e)||v.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=v.NodeGuards.isBlockStatementNode(e.body)?e.body:_.NodeUtils.getBlockScopeOfNode(e.body);return this.storeFunctionParams(e,r),this.replaceFunctionParams(e,r),e}},{key:"storeFunctionParams",value:function(e,t){var r=this;e.params.forEach(function(e){p.traverse(e,{enter:function(n){return v.NodeGuards.isPropertyNode(e)?p.VisitorOption.Skip:v.NodeGuards.isAssignmentPatternNode(n)&&v.NodeGuards.isIdentifierNode(n.left)?(r.identifierObfuscatingReplacer.storeLocalName(n.left.name,t),p.VisitorOption.Skip):void(v.NodeGuards.isIdentifierNode(n)&&r.identifierObfuscatingReplacer.storeLocalName(n.name,t))}})})}},{key:"addIdentifiersToIgnoredIdentifierNamesSet",value:function(e,t){e.forEach(function(e){e.key&&v.NodeGuards.isIdentifierNode(e.key)&&t.add(e.key.name)})}},{key:"replaceFunctionParams",value:function(e,t){var r=this,n=new o.default,a={enter:function(e,o){if(v.NodeGuards.isObjectPatternNode(e)&&r.addIdentifiersToIgnoredIdentifierNamesSet(e.properties,n),o&&v.NodeGuards.isReplaceableIdentifierNode(e,o)&&!n.has(e.name)){var a=r.identifierObfuscatingReplacer.replace(e.name,t).name;e.name!==a&&(e.name=a,y.NodeMetadata.set(e,{renamedIdentifier:!0}))}}};e.params.forEach(function(e){return p.replace(e,a)}),p.replace(e.body,a)}}]),t}(g.AbstractNodeTransformer);h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],h),t.FunctionTransformer=h},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(21),N=r(23),g=r(13),v=r(14),y=r(9),_=r(19),h=r(10),b=function(e){function t(e,r,n){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).replaceableIdentifiers=new o.default,i.identifierObfuscatingReplacer=e(m.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case g.TransformationStage.Obfuscating:return{enter:function(e,r){if(r&&y.NodeGuards.isFunctionDeclarationNode(e)&&!y.NodeGuards.isExportNamedDeclarationNode(r))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=h.NodeUtils.getBlockScopeOfNode(e),n=r.type===N.NodeType.Program;return!this.options.renameGlobals&&n?e:(this.storeFunctionName(e,r,n),this.replaceableIdentifiers.has(r)?this.replaceScopeCachedIdentifiers(e,r):this.replaceScopeIdentifiers(r),e)}},{key:"storeFunctionName",value:function(e,t,r){r?this.identifierObfuscatingReplacer.storeGlobalName(e.id.name,t):this.identifierObfuscatingReplacer.storeLocalName(e.id.name,t)}},{key:"replaceScopeCachedIdentifiers",value:function(e,t){var r=this.replaceableIdentifiers.get(t);if(r){var n=r.get(e.id.name);if(n)for(var o=n.length,a=0;a=0);return"a".concat(n(r))},r=t(e);return this.isValidIdentifierName(r)||(r=this.generateNewMangledName(r)),r}}]),t}(m.AbstractIdentifierNamesGenerator);N.initMangledNameCharacter="9",N.nameSequence="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),N.reservedNames=["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"],N=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],N),t.MangledIdentifierNamesGenerator=N},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(55),N=r(41),g=r(33),v=u=function(e){function t(e,r){var n;return(0,a.default)(this,t),(n=(0,s.default)(this,(0,c.default)(t).call(this,e,r))).randomVariableNameSet=new o.default,n}return(0,d.default)(t,e),(0,i.default)(t,[{key:"generate",value:function(){var e=this.randomGenerator.getRandomInteger(1e4,99999999),t=N.NumberUtils.toHex(e).substr(0,u.baseIdentifierNameLength),r="_".concat(g.Utils.hexadecimalPrefix).concat(t);return this.randomVariableNameSet.has(r)?this.generate():(this.randomVariableNameSet.add(r),r)}},{key:"generateWithPrefix",value:function(){var e=this.generate();return"".concat(this.options.identifiersPrefix).concat(e).replace("__","_")}}]),t}(m.AbstractIdentifierNamesGenerator);v.baseIdentifierNameLength=6,v=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Object,Object])],v),t.HexadecimalIdentifierNamesGenerator=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(5),a=r(39),i=r(133),s=r(132);t.generatorsModule=new n.ContainerModule(function(e){e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(i.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(o.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(o.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(e){var t=null;return function(r){if(t)return t;var n;switch(r.identifierNamesGenerator){case a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:n=e.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:n=e.container.getNamed(o.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return t=n,n}})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2);t.finalizingTransformersModule=new n.ContainerModule(function(e){})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.literalValue=e}},{key:"getNodeStructure",value:function(){return[m.NodeFactory.expressionStatementNode(m.NodeFactory.literalNode(this.literalValue))]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],N.prototype,"literalValue",void 0),N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],N),t.StringLiteralNode=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(10),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(this.controlFlowStorageName),m.NodeFactory.identifierNode(this.controlFlowStorageKey)));return N.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"controlFlowStorageKey",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"controlFlowStorageName",void 0),g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],g),t.StringLiteralControlFlowStorageCallNode=g},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n ")}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),N=r(43),g=r(139),v=r(138),y=r(16),_=r(36),h=r(10),b=r(41),S=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayRotateValue=t}},{key:"getNodeStructure",value:function(){return h.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),r="";return r=this.options.selfDefending?p.default(g.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):"".concat(t,"(++").concat(e,")"),_.JavaScriptObfuscator.obfuscate(p.default(v.StringArrayRotateFunctionTemplate(),{code:r,timesName:e,stringArrayName:this.stringArrayName,stringArrayRotateValue:b.NumberUtils.toHex(this.stringArrayRotateValue),whileFunctionName:t}),(0,o.default)({},N.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}}]),t}(y.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",String)],S.prototype,"stringArrayName",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",Number)],S.prototype,"stringArrayRotateValue",void 0),S=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],S),t.StringArrayRotateFunctionNode=S},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=function(){return"\n var {stringArrayName} = [{stringArray}];\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(42)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),N=r(141),g=r(16),v=r(10),y=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,d.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r){this.stringArrayStorage=e,this.stringArrayName=t,this.stringArrayRotateValue=r}},{key:"getNode",value:function(){return this.stringArrayStorage.rotateArray(this.stringArrayRotateValue),(0,c.default)((0,s.default)(t.prototype),"getNode",this).call(this)}},{key:"getNodeStructure",value:function(){return v.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return p.default(N.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArray:this.stringArrayStorage.toString()})}}]),t}(g.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",Object)],y.prototype,"stringArrayStorage",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",String)],y.prototype,"stringArrayName",void 0),u.__decorate([m.initializable(),u.__metadata("design:type",Number)],y.prototype,"stringArrayRotateValue",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],y),t.StringArrayNode=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRc4DecodeNodeTemplate=function(e){var t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(r," = rc4;\n \n {stringArrayCallsWrapperName}.").concat(n," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(n,"[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(o," === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(o," = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(r,"(value, key);\n {stringArrayCallsWrapperName}.").concat(n,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=function(){return"\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeNodeTemplate=function(e){var t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(r," = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(n," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(n,"[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(r,"(value);\n {stringArrayCallsWrapperName}.").concat(n,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e,t){var r=e.getRandomString(6),n=e.getRandomString(6),o=e.getRandomString(6),a=e.getRandomString(6),i=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),d=e.getRandomString(6),u=e.getRandomString(6);return"\n var StatesClass = function (".concat(r,") {\n this.").concat(r," = ").concat(r,";\n this.").concat(n," = [1, 0, 0];\n this.").concat(o," = function(){return 'newState';};\n this.").concat(a," = '").concat(t.encode("\\w+ *\\(\\) *{\\w+ *",!0),"';\n this.").concat(i," = '").concat(t.encode("['|\"].+['|\"];? *}",!0),"';\n };\n \n StatesClass.prototype.").concat(s," = function () {\n var regExp = new RegExp(this.").concat(a," + this.").concat(i,");\n var expression = regExp.test(this.").concat(o,".toString())\n ? --this.").concat(n,"[1]\n : --this.").concat(n,"[0];\n \n return this.").concat(c,"(expression);\n };\n \n StatesClass.prototype.").concat(c," = function (").concat(u,") {\n if (!Boolean(~").concat(u,")) {\n return ").concat(u,";\n }\n \n return this.").concat(d,"(this.").concat(r,");\n };\n\n StatesClass.prototype.").concat(d," = function (").concat(r,") {\n for (var i = 0, len = this.").concat(n,".length; i < len; i++) {\n this.").concat(n,".push(Math.round(Math.random()));\n len = this.").concat(n,".length;\n }\n \n return ").concat(r,"(this.").concat(n,"[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(s,"();\n ")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=function(){return"\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=function(){return"\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(25),N=r(37),g=r(11),v=r(43),y=r(148),_=r(45),h=r(147),b=r(146),S=r(145),I=r(144),C=r(143),F=r(16),O=r(36),j=r(10),T=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayCallsWrapperName=t}},{key:"getNodeStructure",value:function(){return j.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.getDecodeStringArrayTemplate();return O.JavaScriptObfuscator.obfuscate(p.default(I.StringArrayCallsWrapperTemplate(),{decodeNodeTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}),(0,o.default)({},v.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}},{key:"getDecodeStringArrayTemplate",value:function(){var e=this.options.target!==m.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate(),t=p.default(y.AtobTemplate(),{globalVariableTemplate:e}),r="",n="";switch(this.options.selfDefending&&(n=p.default(b.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName})),this.options.stringArrayEncoding){case N.StringArrayEncoding.Rc4:r=p.default(C.StringArrayRc4DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:h.Rc4Template(),selfDefendingCode:n,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName});break;case N.StringArrayEncoding.Base64:r=p.default(S.StringArrayBase64DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:n,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}return r}}]),t}(F.AbstractCustomNode);u.__decorate([g.initializable(),u.__metadata("design:type",String)],T.prototype,"stringArrayName",void 0),u.__decorate([g.initializable(),u.__metadata("design:type",String)],T.prototype,"stringArrayCallsWrapperName",void 0),T=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],T),t.StringArrayCallsWrapper=T},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(e.encode("(\\\\[x|u](\\w){2,4})+",!0),"');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('indеxOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('indеxOf');\n }\n })\n \n {selfDefendingFunctionName}();\n ")}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(11),N=r(43),g=r(150),v=r(16),y=r(36),_=r(10),h=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).escapeSequenceEncoder=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return y.JavaScriptObfuscator.obfuscate(p.default(g.SelfDefendingTemplate(this.escapeSequenceEncoder),{selfDefendingFunctionName:this.identifierNamesGenerator.generate(),singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,o.default)({},N.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed,unicodeEscapeSequence:!0})).getObfuscatedCode()}}]),t}(v.AbstractCustomNode);u.__decorate([m.initializable(),u.__metadata("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IEscapeSequenceEncoder)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],h),t.SelfDefendingUnicodeNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleNodeCallControllerTemplate=function(){return"\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(26),N=r(11),g=r(152),v=r(43),y=r(16),_=r(36),h=r(10),b=function(e){function t(e,r,n){return(0,a.default)(this,t),(0,s.default)(this,(0,c.default)(t).call(this,e,r,n))}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return h.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return this.appendEvent===m.ObfuscationEvent.AfterObfuscation?_.JavaScriptObfuscator.obfuscate(p.default(g.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,o.default)({},v.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode():p.default(g.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(y.AbstractCustomNode);u.__decorate([N.initializable(),u.__metadata("design:type",String)],b.prototype,"callsControllerFunctionName",void 0),u.__decorate([N.initializable(),u.__metadata("design:type",String)],b.prototype,"appendEvent",void 0),b=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],b),t.NodeCallsControllerFunctionNode=b},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(10),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.functionExpressionNode([m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")],m.NodeFactory.blockStatementNode([m.NodeFactory.returnStatementNode(m.NodeFactory.logicalExpressionNode(this.operator,m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"operator",void 0),g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],g),t.LogicalExpressionFunctionNode=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(10),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=n}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.callExpressionNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(this.controlFlowStorageName),m.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return N.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"controlFlowStorageKey",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"controlFlowStorageName",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Object)],g.prototype,"leftValue",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Object)],g.prototype,"rightValue",void 0),g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],g),t.ExpressionWithOperatorControlFlowStorageCallNode=g},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockNodeTemplate=function(){return'\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp("[{diff}]", "g");\n var domains = "{domains}".replace(regExp, "").split(";");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=u.__importDefault(r(20)),m=r(25),N=r(11),g=r(156),v=r(45),y=r(16),_=r(10),h=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,e,r,o))).cryptUtils=n,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.domainLock.join(";"),t=this.cryptUtils.hideString(e,3*e.length),r=(0,o.default)(t,2),n=r[0],a=r[1],i=this.options.target!==m.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():v.GlobalVariableNoEvalTemplate();return p.default(g.DomainLockNodeTemplate(),{domainLockFunctionName:this.identifierNamesGenerator.generate(),diff:a,domains:n,globalVariableTemplate:i,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(y.AbstractCustomNode);u.__decorate([N.initializable(),u.__metadata("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),h=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.ICryptUtils)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],h),t.DomainLockNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(25),m=r(11),N=r(160),g=r(159),v=r(158),y=r(16),_=r(10),h=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==p.ObfuscationTarget.BrowserNoEval?N.DebuggerTemplate():g.DebuggerTemplateNoEval();return f.default(v.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(y.AbstractCustomNode);d.__decorate([m.initializable(),d.__metadata("design:type",String)],h.prototype,"debugProtectionFunctionName",void 0),h=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],h),t.DebugProtectionFunctionNode=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(11),m=r(162),N=r(16),g=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return g.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return f.default(m.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(N.AbstractCustomNode);d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.DebugProtectionFunctionIntervalNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(11),m=r(164),N=r(16),g=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return g.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return f.default(m.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(N.AbstractCustomNode);d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"callsControllerFunctionName",void 0),d.__decorate([p.initializable(),d.__metadata("design:type",String)],v.prototype,"debugProtectionFunctionName",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.DebugProtectionFunctionCallNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableExpressionTemplate=function(){return"\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importDefault(r(20)),p=r(25),m=r(166),N=r(45),g=r(11),v=r(16),y=r(10),_=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return y.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==p.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():N.GlobalVariableNoEvalTemplate();return f.default(m.ConsoleOutputDisableExpressionTemplate(),{consoleLogDisableFunctionName:this.identifierNamesGenerator.generate(),globalVariableTemplate:e,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(v.AbstractCustomNode);d.__decorate([g.initializable(),d.__metadata("design:type",String)],_.prototype,"callsControllerFunctionName",void 0),_=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ConsoleOutputDisableExpressionNode=_},function(e,t){e.exports=require("@babel/runtime/core-js/array/from")},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(168)),i=n(r(1)),s=n(r(3)),c=n(r(8)),d=n(r(7)),u=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var l=r(4),f=r(2),p=r(5),m=r(11),N=r(16),g=r(15),v=r(9),y=r(10),_=function(e){function t(e,r,n){return(0,i.default)(this,t),(0,c.default)(this,(0,d.default)(t).call(this,e,r,n))}return(0,u.default)(t,e),(0,s.default)(t,[{key:"initialize",value:function(e){this.controlFlowStorage=e}},{key:"getNodeStructure",value:function(){var e=(0,a.default)(this.controlFlowStorage.getStorage()).map(function(e){var t=(0,o.default)(e,2),r=t[0],n=t[1].getNode()[0];if(!v.NodeGuards.isExpressionStatementNode(n))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return g.NodeFactory.propertyNode(g.NodeFactory.identifierNode(r),n.expression)}),t=g.NodeFactory.variableDeclarationNode([g.NodeFactory.variableDeclaratorNode(g.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),g.NodeFactory.objectExpressionNode(e))]);return[t=y.NodeUtils.parentizeAst(t)]}}]),t}(N.AbstractCustomNode);l.__decorate([m.initializable(),l.__metadata("design:type",Object)],_.prototype,"controlFlowStorage",void 0),_=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ControlFlowStorageNode=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(10),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.expressionArguments=e}},{key:"getNodeStructure",value:function(){for(var e=m.NodeFactory.identifierNode("callee"),t=[],r=this.expressionArguments.length,n=0;n.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",n=this.randomGenerator.getRandomString(5),a=t?n:this.randomGenerator.getRandomString(5),i=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=(0,o.default)(i,2),c=s[0],d=s[1],u=N.NodeFactory.blockStatementNode([N.NodeFactory.ifStatementNode(N.NodeFactory.binaryExpressionNode(r,N.NodeFactory.literalNode(n),N.NodeFactory.literalNode(a)),c,d)]);return g.NodeUtils.parentizeAst(u),[u]}}]),t}(m.AbstractCustomNode);u.__decorate([p.initializable(),u.__metadata("design:type",Object)],v.prototype,"blockStatementNode",void 0),u.__decorate([p.initializable(),u.__metadata("design:type",Object)],v.prototype,"deadCodeInjectionRootAstHostNode",void 0),v=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.BlockStatementDeadCodeInjectionNode=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(9),g=r(10),v=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}},{key:"getNodeStructure",value:function(){var e=this,t=this.randomGenerator.getRandomString(6),r=this.randomGenerator.getRandomString(6),n=m.NodeFactory.blockStatementNode([m.NodeFactory.variableDeclarationNode([m.NodeFactory.variableDeclaratorNode(m.NodeFactory.identifierNode(t),m.NodeFactory.callExpressionNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join("|")),m.NodeFactory.identifierNode("split")),[m.NodeFactory.literalNode("|")])),m.NodeFactory.variableDeclaratorNode(m.NodeFactory.identifierNode(r),m.NodeFactory.literalNode(0))]),m.NodeFactory.whileStatementNode(m.NodeFactory.literalNode(!0),m.NodeFactory.blockStatementNode([m.NodeFactory.switchStatementNode(m.NodeFactory.memberExpressionNode(m.NodeFactory.identifierNode(t),m.NodeFactory.updateExpressionNode("++",m.NodeFactory.identifierNode(r)),!0),this.shuffledKeys.map(function(t,r){var n=e.blockStatementBody[t],o=[n];return N.NodeGuards.isReturnStatementNode(n)||o.push(m.NodeFactory.continueStatement()),m.NodeFactory.switchCaseNode(m.NodeFactory.literalNode(String(r)),o)})),m.NodeFactory.breakStatement()]))]);return g.NodeUtils.parentizeAst(n),[n]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"blockStatementBody",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"originalKeysIndexesInShuffledArray",void 0),d.__decorate([f.initializable(),d.__metadata("design:type",Array)],v.prototype,"shuffledKeys",void 0),v=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],v),t.BlockStatementControlFlowFlatteningNode=v},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=function(){return"\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n "}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=function(){return"\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(11),p=r(16),m=r(15),N=r(10),g=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=m.NodeFactory.expressionStatementNode(m.NodeFactory.functionExpressionNode([m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")],m.NodeFactory.blockStatementNode([m.NodeFactory.returnStatementNode(m.NodeFactory.binaryExpressionNode(this.operator,m.NodeFactory.identifierNode("x"),m.NodeFactory.identifierNode("y")))])));return N.NodeUtils.parentizeAst(e),[e]}}]),t}(p.AbstractCustomNode);d.__decorate([f.initializable(),d.__metadata("design:type",String)],g.prototype,"operator",void 0),g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(2,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Function,Object,Object])],g),t.BinaryExpressionFunctionNode=g},function(e,t,r){"use strict";var n=r(0),o=n(r(30)),a=n(r(17)),i=n(r(1)),s=n(r(3)),c=n(r(8)),d=n(r(7)),u=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var l=r(4),f=r(2),p=r(5),m=r(11),N=r(29),g=r(26),v=r(34),y=r(27),_=function(e){function t(e,r,n,o,a){var s;return(0,i.default)(this,t),(s=(0,c.default)(this,(0,d.default)(t).call(this,n,o,a))).appendEvent=g.ObfuscationEvent.AfterObfuscation,s.customNodeFactory=e,s.stringArrayStorage=r,s}return(0,u.default)(t,e),(0,s.default)(t,[{key:"appendCustomNodes",value:function(e,t){this.stringArrayStorage.getLength()&&(this.appendCustomNodeIfExist(N.CustomNode.StringArrayNode,function(t){y.NodeAppender.prepend(e,t.getNode())}),this.appendCustomNodeIfExist(N.CustomNode.StringArrayCallsWrapper,function(t){y.NodeAppender.insertAtIndex(e,t.getNode(),1)}),this.appendCustomNodeIfExist(N.CustomNode.StringArrayRotateFunctionNode,function(t){y.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}},{key:"initialize",value:function(){if(this.customNodes=new a.default,this.options.stringArray){var e,t=this.customNodeFactory(N.CustomNode.StringArrayNode),r=this.customNodeFactory(N.CustomNode.StringArrayCallsWrapper),n=this.customNodeFactory(N.CustomNode.StringArrayRotateFunctionNode),i=this.stringArrayStorage.getStorageId().split("|"),s=(0,o.default)(i,2),c=s[0],d=s[1];e=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(100,500):0,t.initialize(this.stringArrayStorage,c,e),r.initialize(c,d),n.initialize(c,e),this.customNodes.set(N.CustomNode.StringArrayNode,t),this.customNodes.set(N.CustomNode.StringArrayCallsWrapper,r),this.options.rotateStringArray&&this.customNodes.set(N.CustomNode.StringArrayRotateFunctionNode,n)}}}]),t}(v.AbstractCustomNodeGroup);l.__decorate([m.initializable(),l.__metadata("design:type",a.default)],_.prototype,"customNodes",void 0),_=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__ICustomNode)),l.__param(1,f.inject(p.ServiceIdentifiers.TStringArrayStorage)),l.__param(2,f.inject(p.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(4,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Function,Object,Object])],_),t.StringArrayCustomNodeGroup=_},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),N=r(26),g=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=N.ObfuscationEvent.AfterObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.SelfDefendingUnicodeNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.selfDefending){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.SelfDefendingUnicodeNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.SelfDefendingUnicodeNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(g.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.SelfDefendingCustomNodeGroup=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),N=r(26),g=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=N.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.DomainLockNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.domainLock.length){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.DomainLockNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.DomainLockNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(g.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.DomainLockCustomNodeGroup=y},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),N=r(26),g=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=N.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this,n=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionCallNode,function(r){v.NodeAppender.appendToOptimalBlockScope(t,e,r.getNode(),n)}),this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionNode,function(t){v.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(m.CustomNode.DebugProtectionFunctionIntervalNode,function(t){var n=e.body.length,o=r.randomGenerator.getRandomInteger(0,n);v.NodeAppender.insertAtIndex(e,t.getNode(),o)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(r){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,n,1):e,v.NodeAppender.prepend(o,r.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.debugProtection){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),r=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionNode),n=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionCallNode),a=this.customNodeFactory(m.CustomNode.DebugProtectionFunctionIntervalNode),i=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);r.initialize(e),n.initialize(e,t),a.initialize(e),i.initialize(this.appendEvent,t),this.customNodes.set(m.CustomNode.DebugProtectionFunctionNode,r),this.customNodes.set(m.CustomNode.DebugProtectionFunctionCallNode,n),this.options.debugProtectionInterval&&this.customNodes.set(m.CustomNode.DebugProtectionFunctionIntervalNode,a),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,i)}}}]),t}(g.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.DebugProtectionCustomNodeGroup=y},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/has-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/define-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/object/get-own-property-names")},function(e,t){e.exports=require("@babel/runtime/core-js/reflect/get-metadata")},function(e,t){e.exports=require("@babel/runtime/core-js/object/get-own-property-descriptor")},function(e,t){e.exports=require("@babel/runtime/core-js/object/define-property")},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u=r(4),l=r(2),f=r(5),p=r(11),m=r(29),N=r(26),g=r(34),v=r(27),y=function(e){function t(e,r,n,o){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,c.default)(t).call(this,r,n,o))).appendEvent=N.ObfuscationEvent.BeforeObfuscation,i.customNodeFactory=e,i}return(0,d.default)(t,e),(0,i.default)(t,[{key:"appendCustomNodes",value:function(e,t){var r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(m.CustomNode.ConsoleOutputDisableExpressionNode,function(n){v.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(m.CustomNode.NodeCallsControllerFunctionNode,function(n){var o;o=t.length?v.NodeAppender.getOptimalBlockScope(t,r,1):e,v.NodeAppender.prepend(o,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new o.default,this.options.disableConsoleOutput){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(m.CustomNode.ConsoleOutputDisableExpressionNode),r=this.customNodeFactory(m.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),r.initialize(this.appendEvent,e),this.customNodes.set(m.CustomNode.ConsoleOutputDisableExpressionNode,t),this.customNodes.set(m.CustomNode.NodeCallsControllerFunctionNode,r)}}}]),t}(g.AbstractCustomNodeGroup);u.__decorate([p.initializable(),u.__metadata("design:type",o.default)],y.prototype,"customNodes",void 0),y=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__ICustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Function,Object,Object])],y),t.ConsoleOutputCustomNodeGroup=y},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(22),s=r(29),c=r(57),d=r(60),u=r(187),l=r(180),f=r(179),p=r(178),m=r(177),N=r(176),g=r(173),v=r(172),y=r(171),_=r(170),h=r(169),b=r(167),S=r(165),I=r(163),C=r(161),F=r(157),O=r(155),j=r(154),T=r(153),k=r(151),x=r(149),E=r(142),w=r(140),G=r(137),R=r(136);t.customNodesModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.ICustomNode).to(b.ConsoleOutputDisableExpressionNode).whenTargetNamed(s.CustomNode.ConsoleOutputDisableExpressionNode),e(a.ServiceIdentifiers.ICustomNode).to(S.DebugProtectionFunctionCallNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionCallNode),e(a.ServiceIdentifiers.ICustomNode).to(I.DebugProtectionFunctionIntervalNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionIntervalNode),e(a.ServiceIdentifiers.ICustomNode).to(C.DebugProtectionFunctionNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(F.DomainLockNode).whenTargetNamed(s.CustomNode.DomainLockNode),e(a.ServiceIdentifiers.ICustomNode).to(T.NodeCallsControllerFunctionNode).whenTargetNamed(s.CustomNode.NodeCallsControllerFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(k.SelfDefendingUnicodeNode).whenTargetNamed(s.CustomNode.SelfDefendingUnicodeNode),e(a.ServiceIdentifiers.ICustomNode).to(x.StringArrayCallsWrapper).whenTargetNamed(s.CustomNode.StringArrayCallsWrapper),e(a.ServiceIdentifiers.ICustomNode).to(E.StringArrayNode).whenTargetNamed(s.CustomNode.StringArrayNode),e(a.ServiceIdentifiers.ICustomNode).to(w.StringArrayRotateFunctionNode).whenTargetNamed(s.CustomNode.StringArrayRotateFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.BinaryExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.BlockStatementControlFlowFlatteningNode).whenTargetNamed(i.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.CallExpressionControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(_.CallExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.CallExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.ControlFlowStorageNode).whenTargetNamed(i.ControlFlowCustomNode.ControlFlowStorageNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(O.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(j.LogicalExpressionFunctionNode).whenTargetNamed(i.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(R.StringLiteralNode).whenTargetNamed(i.ControlFlowCustomNode.StringLiteralNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(G.StringLiteralControlFlowStorageCallNode).whenTargetNamed(i.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.BlockStatementDeadCodeInjectionNode).whenTargetNamed(d.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(a.ServiceIdentifiers.ICustomNodeGroup).to(u.ConsoleOutputCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.ConsoleOutputCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(l.DebugProtectionCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.DebugProtectionCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(f.DomainLockCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.DomainLockCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(p.SelfDefendingCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.SelfDefendingCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(m.StringArrayCustomNodeGroup).whenTargetNamed(c.CustomNodeGroup.StringArrayCustomNodeGroup),e(a.ServiceIdentifiers.Factory__ICustomNode).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNode)),e(a.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNodeGroup))})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=d.__importStar(r(18)),p=r(58),m=r(9),N=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){return!m.NodeGuards.isIdentifierNode(t.id)||this.isProhibitedObjectExpressionNode(e,t.id)?e:this.transformObjectExpressionNode(e,t.id)}},{key:"getHostVariableDeclaratorNode",value:function(e){var t=e.parentNode;if(!t||!m.NodeGuards.isVariableDeclaratorNode(t))throw new Error("Cannot get `VariableDeclarator` node for `ObjectExpression` node");return t}},{key:"getHostVariableDeclarationNode",value:function(e){var t=e.parentNode;if(!t||!m.NodeGuards.isVariableDeclarationNode(t))throw new Error("Cannot get `VariableDeclaration` node for `VariableDeclarator` node");return t}},{key:"isProhibitedObjectExpressionNode",value:function(e,t){var r=this.getHostVariableDeclaratorNode(e),n=this.getHostVariableDeclarationNode(r).declarations,o=n.indexOf(r);if(o===n.length-1)return!1;var a=!1;return n.slice(o).forEach(function(e){f.traverse(e,{enter:function(e){return m.NodeGuards.isMemberExpressionNode(e)&&m.NodeGuards.isIdentifierNode(e.object)&&e.object.name===t.name?(a=!0,f.VisitorOption.Break):e}})}),a}}]),t}(p.AbstractPropertiesExtractor);N=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],N),t.VariableDeclaratorPropertiesExtractor=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(13),m=r(14),N=r(15),g=r(9),v=d=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Converting:return{leave:function(e,r){if(r&&d.isValidTemplateLiteralNode(e,r))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){var r=e.expressions,n=[];if(e.quasis.forEach(function(e){n.push(N.NodeFactory.literalNode(e.value.cooked));var t=r.shift();t&&n.push(t)}),n=n.filter(function(e){return!(g.NodeGuards.isLiteralNode(e)&&""===e.value)}),d.isLiteralNodeWithStringValue(n[0])||d.isLiteralNodeWithStringValue(n[1])||n.unshift(N.NodeFactory.literalNode("")),n.length>1){var o=N.NodeFactory.binaryExpressionNode("+",n.shift(),n.shift());return n.forEach(function(e){o=N.NodeFactory.binaryExpressionNode("+",o,e)}),o}return n[0]}}],[{key:"isLiteralNodeWithStringValue",value:function(e){return e&&g.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}},{key:"isValidTemplateLiteralNode",value:function(e,t){return g.NodeGuards.isTemplateLiteralNode(e)&&!g.NodeGuards.isTaggedTemplateExpressionNode(t)}}]),t}(m.AbstractNodeTransformer);v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],v),t.TemplateLiteralTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(15),N=r(9),g=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Converting:return{enter:function(e,r){if(r&&N.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return e.properties.forEach(function(e){!e.computed&&e.key&&(e.shorthand&&(e.shorthand=!1),N.NodeGuards.isIdentifierNode(e.key)&&(e.key=m.NodeFactory.literalNode(e.key.name)))}),e}}]),t}(p.AbstractNodeTransformer);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],g),t.ObjectExpressionTransformer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(17)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=r(23),N=r(59),g=r(13),v=r(14),y=r(9),_=u=function(e){function t(e,r,n){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,c.default)(t).call(this,r,n))).propertiesExtractorFactory=e,o}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;return e!==g.TransformationStage.Converting?null:{enter:function(e,r){if(t.options.transformObjectKeys&&r&&y.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,r)}}}},{key:"transformNode",value:function(e,t){if(!e.properties.length)return e;var r=u.propertiesExtractorsMap.get(t.type);return r?this.propertiesExtractorFactory(r).extract(e,t):e}}]),t}(v.AbstractNodeTransformer);_.propertiesExtractorsMap=new o.default([[m.NodeType.AssignmentExpression,N.PropertiesExtractor.AssignmentExpressionPropertiesExtractor],[m.NodeType.VariableDeclarator,N.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]),_=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IPropertiesExtractor)),l.__param(1,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(2,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object])],_),t.ObjectExpressionKeysTransformer=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(13),m=r(14),N=r(15),g=r(9),v=d=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case p.TransformationStage.Converting:return{enter:function(e,r){if(r&&g.NodeGuards.isMethodDefinitionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){return g.NodeGuards.isIdentifierNode(e.key)&&!d.ignoredNames.includes(e.key.name)&&!1===e.computed&&(e.computed=!0,e.key=N.NodeFactory.literalNode(e.key.name)),e}}]),t}(m.AbstractNodeTransformer);v.ignoredNames=["constructor"],v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(1,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Object,Object])],v),t.MethodDefinitionTransformer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(13),p=r(14),m=r(15),N=r(9),g=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case f.TransformationStage.Converting:return{enter:function(e,r){if(r&&N.NodeGuards.isMemberExpressionNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(N.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=m.NodeFactory.literalNode(e.property.name)}return e}}]),t}(p.AbstractNodeTransformer);g=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],g),t.MemberExpressionTransformer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=r(5),f=r(58),p=function(e){function t(e,r){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var r=t.left;return f.AbstractPropertiesExtractor.isProhibitedPattern(r)?e:this.transformObjectExpressionNode(e,r)}}]),t}(f.AbstractPropertiesExtractor);p=d.__decorate([u.injectable(),d.__param(0,u.inject(l.ServiceIdentifiers.IRandomGenerator)),d.__param(1,u.inject(l.ServiceIdentifiers.IOptions)),d.__metadata("design:paramtypes",[Object,Object])],p),t.AssignmentExpressionPropertiesExtractor=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(2),o=r(24),a=r(5),i=r(32),s=r(59),c=r(195),d=r(194),u=r(193),l=r(192),f=r(191),p=r(190),m=r(189);t.convertingTransformersModule=new n.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(d.MemberExpressionTransformer).whenTargetNamed(i.NodeTransformer.MemberExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(u.MethodDefinitionTransformer).whenTargetNamed(i.NodeTransformer.MethodDefinitionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.ObjectExpressionKeysTransformer).whenTargetNamed(i.NodeTransformer.ObjectExpressionKeysTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.ObjectExpressionTransformer).whenTargetNamed(i.NodeTransformer.ObjectExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(p.TemplateLiteralTransformer).whenTargetNamed(i.NodeTransformer.TemplateLiteralTransformer),e(a.ServiceIdentifiers.IPropertiesExtractor).to(c.AssignmentExpressionPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.AssignmentExpressionPropertiesExtractor),e(a.ServiceIdentifiers.IPropertiesExtractor).to(m.VariableDeclaratorPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.VariableDeclaratorPropertiesExtractor),e(a.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(o.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IPropertiesExtractor))})},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(46),N=r(9),g=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){if(N.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if("string"!=typeof e.value||e.value.length<3)return e;var n=String(e.value),o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.StringLiteralNode);o.initialize(e.value);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a)}},{key:"getControlFlowStorageCallNode",value:function(e,t){var r=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);var n=r.getNode()[0];if(!n||!N.NodeGuards.isExpressionStatementNode(n))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return n.expression}}]),t}(m.AbstractControlFlowReplacer);g.usingExistingIdentifierChance=1,g=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],g),t.StringLiteralControlFlowReplacer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(61),N=r(9),g=r(10),v=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){if(this.checkForProhibitedExpressions(e.left,e.right))return e;var n=e.operator,o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.LogicalExpressionFunctionNode);o.initialize(n);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}},{key:"checkForProhibitedExpressions",value:function(e,t){return[e,t].some(function(e){var t;return t=N.NodeGuards.isUnaryExpressionNode(e)?g.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(N.NodeGuards.isLiteralNode(t)||N.NodeGuards.isIdentifierNode(t)||N.NodeGuards.isObjectExpressionNode(t)||N.NodeGuards.isExpressionStatementNode(t))})}}]),t}(m.ExpressionWithOperatorControlFlowReplacer);v.usingExistingIdentifierChance=.5,v=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],v),t.LogicalExpressionControlFlowReplacer=v},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(31)),i=n(r(17)),s=n(r(1)),c=n(r(3)),d=n(r(8)),u=n(r(7)),l=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var f,p=r(4),m=r(2),N=r(5),g=p.__importStar(r(18)),v=r(22),y=r(62),_=r(23),h=r(13),b=r(14),S=r(27),I=r(9),C=r(19),F=r(10),O=f=function(e){function t(e,r,n,o,c){var l;return(0,s.default)(this,t),(l=(0,d.default)(this,(0,u.default)(t).call(this,o,c))).controlFlowData=new i.default,l.visitedFunctionNodes=new a.default,l.hostNodesWithControlFlowNode=new a.default,l.controlFlowStorageFactory=e,l.controlFlowReplacerFactory=r,l.controlFlowCustomNodeFactory=n,l}return(0,l.default)(t,e),(0,c.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case h.TransformationStage.ControlFlowFlattening:return{leave:function(e,r){if(r&&(I.NodeGuards.isFunctionDeclarationNode(e)||I.NodeGuards.isFunctionExpressionNode(e)||I.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.visitedFunctionNodes.add(e),!I.NodeGuards.isBlockStatementNode(e.body))return e;var r=this.getHostNode(e.body),n=this.getControlFlowStorage(r);if(this.controlFlowData.set(r,n),this.transformFunctionBody(e.body,n),!n.getLength())return e;var o=this.controlFlowCustomNodeFactory(v.ControlFlowCustomNode.ControlFlowStorageNode);return o.initialize(n),S.NodeAppender.prepend(r,o.getNode()),this.hostNodesWithControlFlowNode.add(r),e}},{key:"getControlFlowStorage",value:function(e){var t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&e.body.shift();var r=this.controlFlowData.get(e);t.mergeWith(r,!0)}return t}},{key:"getHostNode",value:function(e){var t=F.NodeUtils.getBlockScopesOfNode(e);return 1===t.length?e:(t.pop(),t.length>f.hostNodeSearchMinDepth&&t.splice(0,f.hostNodeSearchMinDepth),t.length>f.hostNodeSearchMaxDepth&&(t.length=f.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}},{key:"isVisitedFunctionNode",value:function(e){return(I.NodeGuards.isFunctionDeclarationNode(e)||I.NodeGuards.isFunctionExpressionNode(e)||I.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}},{key:"transformFunctionBody",value:function(e,t){var r=this;g.replace(e,{enter:function(e,n){if(C.NodeMetadata.isIgnoredNode(e))return g.VisitorOption.Skip;if(r.isVisitedFunctionNode(e)||!n)return g.VisitorOption.Skip;if(!f.controlFlowReplacersMap.has(e.type))return e;if(r.randomGenerator.getMathRandom()>r.options.controlFlowFlatteningThreshold)return e;var a=f.controlFlowReplacersMap.get(e.type);return void 0===a?e:(0,o.default)({},r.controlFlowReplacerFactory(a).replace(e,n,t),{parentNode:n})}})}}]),t}(b.AbstractNodeTransformer);O.controlFlowReplacersMap=new i.default([[_.NodeType.BinaryExpression,y.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[_.NodeType.CallExpression,y.ControlFlowReplacer.CallExpressionControlFlowReplacer],[_.NodeType.LogicalExpression,y.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[_.NodeType.Literal,y.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),O.hostNodeSearchMinDepth=0,O.hostNodeSearchMaxDepth=2,O=f=p.__decorate([m.injectable(),p.__param(0,m.inject(N.ServiceIdentifiers.Factory__TControlFlowStorage)),p.__param(1,m.inject(N.ServiceIdentifiers.Factory__IControlFlowReplacer)),p.__param(2,m.inject(N.ServiceIdentifiers.Factory__IControlFlowCustomNode)),p.__param(3,m.inject(N.ServiceIdentifiers.IRandomGenerator)),p.__param(4,m.inject(N.ServiceIdentifiers.IOptions)),p.__metadata("design:paramtypes",[Function,Function,Function,Object,Object])],O),t.FunctionControlFlowTransformer=O},function(e,t,r){"use strict";var n=r(0),o=n(r(31)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=r(5),m=l.__importStar(r(18)),N=r(60),g=r(32),v=r(23),y=r(13),_=r(14),h=r(15),b=r(9),S=r(10),I=u=function(e){function t(e,r,n,i){var d;return(0,a.default)(this,t),(d=(0,s.default)(this,(0,c.default)(t).call(this,n,i))).deadCodeInjectionRootAstHostNodeSet=new o.default,d.collectedBlockStatements=[],d.collectedBlockStatementsTotalLength=0,d.deadCodeInjectionCustomNodeFactory=e,d.transformersRunner=r,d}return(0,d.default)(t,e),(0,i.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case y.TransformationStage.DeadCodeInjection:return{enter:function(e,r){if(r&&b.NodeGuards.isProgramNode(e))return t.analyzeNode(e,r),e},leave:function(e,r){if(r&&b.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,r)}};case y.TransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:function(e,r){if(r&&t.isDeadCodeInjectionRootAstHostNode(e))return t.restoreNode(e,r)}}:null;default:return null}}},{key:"analyzeNode",value:function(e,t){var r=this;m.traverse(e,{enter:function(e){if(b.NodeGuards.isBlockStatementNode(e)){var t=S.NodeUtils.clone(e);u.isValidCollectedBlockStatementNode(t)&&(S.NodeUtils.parentizeNode(t,t),t=r.makeClonedBlockStatementNodeUnique(t),r.collectedBlockStatements.push(t))}}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}},{key:"transformNode",value:function(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!u.isValidWrappedBlockStatementNode(e))return e;var r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),o=this.collectedBlockStatements.splice(n,1)[0];return o===e?e:this.replaceBlockStatementNode(e,o,t)}},{key:"restoreNode",value:function(e,t){var r=e.body[0];if(!b.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}},{key:"isDeadCodeInjectionRootAstHostNode",value:function(e){return b.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}},{key:"makeClonedBlockStatementNodeUnique",value:function(e){return this.transformersRunner.transform(e,u.transformersToRenameBlockScopeIdentifiers,y.TransformationStage.Obfuscating)}},{key:"replaceBlockStatementNode",value:function(e,t,r){var n=h.NodeFactory.blockStatementNode([h.NodeFactory.functionDeclarationNode(u.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);var o=this.deadCodeInjectionCustomNodeFactory(N.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);o.initialize(e,n);var a=o.getNode()[0];return S.NodeUtils.parentizeNode(a,r),a}}],[{key:"isProhibitedNodeInsideCollectedBlockStatement",value:function(e){return b.NodeGuards.isBreakStatementNode(e)||b.NodeGuards.isContinueStatementNode(e)||b.NodeGuards.isAwaitExpressionNode(e)||b.NodeGuards.isSuperNode(e)}},{key:"isScopeHoistingFunctionDeclaration",value:function(e){if(!b.NodeGuards.isFunctionDeclarationNode(e))return!1;var t=S.NodeUtils.getScopeOfNode(e),r=b.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,n=r.indexOf(e);if(0===n)return!1;var o=r.slice(0,n),a=h.NodeFactory.blockStatementNode(o),i=e.id.name,s=!1;return m.traverse(a,{enter:function(e){if(b.NodeGuards.isIdentifierNode(e)&&e.name===i)return s=!0,m.VisitorOption.Break}}),s}},{key:"isValidCollectedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=0,r=!0;return m.traverse(e,{enter:function(e){if(b.NodeGuards.isBlockStatementNode(e)&&t++,t>u.maxNestedBlockStatementsCount||u.isProhibitedNodeInsideCollectedBlockStatement(e)||u.isScopeHoistingFunctionDeclaration(e))return r=!1,m.VisitorOption.Break}}),r}},{key:"isValidWrappedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=!0;return m.traverse(e,{enter:function(e){if(u.isScopeHoistingFunctionDeclaration(e))return t=!1,m.VisitorOption.Break}}),!!t&&S.NodeUtils.getBlockScopeOfNode(e).type!==v.NodeType.Program}}]),t}(_.AbstractNodeTransformer);I.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",I.maxNestedBlockStatementsCount=4,I.minCollectedBlockStatementsCount=5,I.transformersToRenameBlockScopeIdentifiers=[g.NodeTransformer.CatchClauseTransformer,g.NodeTransformer.ClassDeclarationTransformer,g.NodeTransformer.FunctionDeclarationTransformer,g.NodeTransformer.FunctionTransformer,g.NodeTransformer.LabeledStatementTransformer,g.NodeTransformer.VariableDeclarationTransformer],I=u=l.__decorate([f.injectable(),l.__param(0,f.inject(p.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),l.__param(1,f.inject(p.ServiceIdentifiers.ITransformersRunner)),l.__param(2,f.inject(p.ServiceIdentifiers.IRandomGenerator)),l.__param(3,f.inject(p.ServiceIdentifiers.IOptions)),l.__metadata("design:paramtypes",[Function,Object,Object,Object])],I),t.DeadCodeInjectionTransformer=I},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(46),N=r(9),g=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){var n=e.callee;if(!N.NodeGuards.isIdentifierNode(n))return e;var o=String(e.arguments.length),a=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.CallExpressionFunctionNode),i=e.arguments;a.initialize(i);var s=this.insertCustomNodeToControlFlowStorage(a,r,o,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),s,n,i)}},{key:"getControlFlowStorageCallNode",value:function(e,t,r,n){var o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);o.initialize(e,t,r,n);var a=o.getNode()[0];if(!a||!N.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}}]),t}(m.AbstractControlFlowReplacer);g.usingExistingIdentifierChance=.5,g=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],g),t.CallExpressionControlFlowReplacer=g},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=u.__importStar(r(18)),m=r(22),N=r(13),g=r(14),v=r(9),y=r(10),_=d=function(e){function t(e,r,n,a){var c;return(0,o.default)(this,t),(c=(0,i.default)(this,(0,s.default)(t).call(this,n,a))).controlFlowCustomNodeFactory=e,c.arrayUtils=r,c}return(0,c.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.ControlFlowFlattening:return{leave:function(e,r){if(r&&v.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,r)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!d.canTransformBlockStatementNode(e))return e;var r=e.body,n=this.arrayUtils.createWithRange(r.length),o=this.arrayUtils.shuffle(n),a=n.map(function(e){return o.indexOf(e)}),i=this.controlFlowCustomNodeFactory(m.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);i.initialize(r,o,a);var s=i.getNode()[0];return y.NodeUtils.parentizeNode(s,t),s}}],[{key:"blockStatementHasProhibitedStatements",value:function(e){return e.body.some(function(e){var t=v.NodeGuards.isBreakStatementNode(e)||v.NodeGuards.isContinueStatementNode(e),r=v.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),n=v.NodeGuards.isClassDeclarationNode(e);return v.NodeGuards.isFunctionDeclarationNode(e)||t||r||n})}},{key:"canTransformBlockStatementNode",value:function(e){var t=!0;return p.traverse(e,{enter:function(e){if(v.NodeGuards.isWhileStatementNode(e))return p.VisitorOption.Skip;v.NodeGuards.isBlockStatementNode(e)&&d.blockStatementHasProhibitedStatements(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}}]),t}(g.AbstractNodeTransformer);_=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IArrayUtils)),u.__param(2,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(3,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object,Object])],_),t.BlockStatementControlFlowTransformer=_},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d,u=r(4),l=r(2),f=r(5),p=r(22),m=r(61),N=d=function(e){function t(e,r,n){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).call(this,e,r,n))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"replace",value:function(e,t,r){var n=e.operator,o=this.controlFlowCustomNodeFactory(p.ControlFlowCustomNode.BinaryExpressionFunctionNode);o.initialize(n);var a=this.insertCustomNodeToControlFlowStorage(o,r,n,d.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),a,e.left,e.right)}}]),t}(m.ExpressionWithOperatorControlFlowReplacer);N.usingExistingIdentifierChance=.5,N=d=u.__decorate([l.injectable(),u.__param(0,l.inject(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u.__param(1,l.inject(f.ServiceIdentifiers.IRandomGenerator)),u.__param(2,l.inject(f.ServiceIdentifiers.IOptions)),u.__metadata("design:paramtypes",[Function,Object,Object])],N),t.BinaryExpressionControlFlowReplacer=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(62),s=r(32),c=r(203),d=r(202),u=r(201),l=r(200),f=r(199),p=r(198),m=r(197);t.controlFlowTransformersModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(d.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.DeadCodeInjectionTransformer).whenTargetNamed(s.NodeTransformer.DeadCodeInjectionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(u.CallExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(m.StringLiteralControlFlowReplacer).whenTargetNamed(i.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(a.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IControlFlowReplacer))})},function(e,t,r){"use strict";var n=r(0),o=n(r(12)),a=n(r(1)),i=n(r(3));Object.defineProperty(t,"__esModule",{value:!0});var s,c=r(4),d=r(2),u=r(5),l=c.__importStar(r(18)),f=r(65),p=r(9),m=r(10),N=s=function(){function e(t){(0,a.default)(this,e),this.calleeDataExtractorFactory=t}return(0,i.default)(e,[{key:"analyze",value:function(e){return this.analyzeRecursive(e.body)}},{key:"analyzeRecursive",value:function(e){for(var t=this,r=s.getLimitIndex(e.length),n=[],o=e.length,a=function(o){if(o>r)return"break";var a=e[o];l.traverse(a,{enter:function(r){if(p.NodeGuards.isCallExpressionNode(r))return a.parentNode!==m.NodeUtils.getBlockScopeOfNode(r)?l.VisitorOption.Skip:void t.analyzeCallExpressionNode(n,e,r)}})},i=0;ir&&(n=Math.round(r+t*s.limitThreshold))>t&&(n=t),n}}]),e}();N.calleeDataExtractorsList=[f.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,f.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,f.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],N.limitThresholdActivationLength=25,N.limitThreshold=.002,N=s=c.__decorate([d.injectable(),c.__param(0,d.inject(u.ServiceIdentifiers.Factory__ICalleeDataExtractor)),c.__metadata("design:paramtypes",[Function])],N),t.StackTraceAnalyzer=N},function(e,t,r){"use strict";var n=r(0),o=n(r(44)),a=n(r(1)),i=n(r(3)),s=n(r(8)),c=n(r(7)),d=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var u,l=r(4),f=r(2),p=l.__importStar(r(18)),m=r(48),N=r(9),g=r(10),v=u=function(e){function t(){return(0,a.default)(this,t),(0,s.default)(this,(0,c.default)(t).apply(this,arguments))}return(0,d.default)(t,e),(0,i.default)(t,[{key:"extract",value:function(e,t){if(!N.NodeGuards.isMemberExpressionNode(t))return null;var r=this.createObjectMembersCallsChain([],t);if(!r.length)return null;var n=r[r.length-1],o=this.getCalleeBlockStatement(g.NodeUtils.getBlockScopeOfNode(e[0]),r);return o?{callee:o,name:n}:null}},{key:"createObjectMembersCallsChain",value:function(e,t){if(N.NodeGuards.isIdentifierNode(t.property)&&!1===t.computed)e.unshift(t.property.name);else{if(!N.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return N.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(N.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}},{key:"getCalleeBlockStatement",value:function(e,t){var r=this,n=t.shift();if(!n)return null;var o=null;return p.traverse(e,{enter:function(e){if(N.NodeGuards.isVariableDeclaratorNode(e)&&N.NodeGuards.isIdentifierNode(e.id)&&e.init&&N.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===n)return o=r.findCalleeBlockStatement(e.init.properties,t),p.VisitorOption.Break}}),o}},{key:"findCalleeBlockStatement",value:function(e,t){var r=t.shift();if(!r)return null;var n=!0,a=!1,i=void 0;try{for(var s,c=(0,o.default)(e);!(n=(s=c.next()).done);n=!0){var d=s.value;if(u.isValidTargetPropertyNode(d,r)){if(N.NodeGuards.isObjectExpressionNode(d.value))return this.findCalleeBlockStatement(d.value.properties,t);if(N.NodeGuards.isFunctionExpressionNode(d.value))return d.value.body}}}catch(e){a=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(a)throw i}}return null}}],[{key:"isValidTargetPropertyNode",value:function(e,t){if(!e.key)return!1;var r=N.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,n=N.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return r||n}}]),t}(m.AbstractCalleeDataExtractor);v=u=l.__decorate([f.injectable()],v),t.ObjectExpressionCalleeDataExtractor=v},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=d.__importStar(r(18)),f=r(48),p=r(9),m=r(10),N=function(e){function t(){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var r=null;return p.NodeGuards.isIdentifierNode(t)&&(r=this.getCalleeBlockStatement(m.NodeUtils.getBlockScopeOfNode(e[0]),t.name)),p.NodeGuards.isFunctionExpressionNode(t)&&(r=t.body),r?{callee:r,name:t.name||null}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var r=null;return l.traverse(e,{enter:function(e,n){if(p.NodeGuards.isFunctionExpressionNode(e)&&n&&p.NodeGuards.isVariableDeclaratorNode(n)&&p.NodeGuards.isIdentifierNode(n.id)&&n.id.name===t)return r=e.body,l.VisitorOption.Break}}),r}}]),t}(f.AbstractCalleeDataExtractor);N=d.__decorate([u.injectable()],N),t.FunctionExpressionCalleeDataExtractor=N},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(3)),i=n(r(8)),s=n(r(7)),c=n(r(6));Object.defineProperty(t,"__esModule",{value:!0});var d=r(4),u=r(2),l=d.__importStar(r(18)),f=r(48),p=r(9),m=r(10),N=function(e){function t(){return(0,o.default)(this,t),(0,i.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){if(!p.NodeGuards.isIdentifierNode(t))return null;var r=this.getCalleeBlockStatement(m.NodeUtils.getBlockScopeOfNode(e[0]),t.name);return r?{callee:r,name:t.name}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var r=null;return l.traverse(e,{enter:function(e){if(p.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,l.VisitorOption.Break}}),r}}]),t}(f.AbstractCalleeDataExtractor);N=d.__decorate([u.injectable()],N),t.FunctionDeclarationCalleeDataExtractor=N},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(24),o=r(2),a=r(5),i=r(65),s=r(208),c=r(207),d=r(206),u=r(205);t.analyzersModule=new o.ContainerModule(function(e){e(a.ServiceIdentifiers.IStackTraceAnalyzer).to(u.StackTraceAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(s.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionExpressionCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(i.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.ICalleeDataExtractor))})},function(e,t){e.exports=require("@babel/runtime/helpers/construct")},,,,,,,,,,,,,,,,function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(36);e.exports=n.JavaScriptObfuscator}]); + +require("source-map-support").install(); + + +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./index.ts"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./index.ts": +/*!******************!*\ + !*** ./index.ts ***! + \******************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ./src/JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +module.exports = JavaScriptObfuscatorFacade_1.JavaScriptObfuscator; + +/***/ }), + +/***/ "./src/EspreeFacade.ts": +/*!*****************************!*\ + !*** ./src/EspreeFacade.ts ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree")); + +var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk")); + +var EspreeFacade = +/*#__PURE__*/ +function () { + function EspreeFacade() { + (0, _classCallCheck2.default)(this, EspreeFacade); + } + + (0, _createClass2.default)(EspreeFacade, null, [{ + key: "parse", + value: function parse(input, config) { + var sourceTypeLength = EspreeFacade.sourceTypes.length; + + for (var i = 0; i < sourceTypeLength; i++) { + try { + return EspreeFacade.parseType(input, config, EspreeFacade.sourceTypes[i]); + } catch (error) { + if (i < sourceTypeLength - 1) { + continue; + } + + throw new Error(EspreeFacade.processParsingError(input, error.message, { + line: error.lineNumber, + column: error.column + })); + } + } + + throw new Error("Espree parsing error"); + } + }, { + key: "parseType", + value: function parseType(input, inputConfig, sourceType) { + var config = (0, _assign.default)({}, inputConfig, { + sourceType: sourceType + }); + return espree.parse(input, config); + } + }, { + key: "processParsingError", + value: function processParsingError(sourceCode, errorMessage, position) { + if (!position || !position.line || !position.column) { + throw new Error(errorMessage); + } + + var sourceCodeLines = sourceCode.split(/\r?\n/); + var errorLine = sourceCodeLines[position.line - 1]; + + if (!errorLine) { + throw new Error(errorMessage); + } + + var startErrorIndex = Math.max(0, position.column - EspreeFacade.nearestSymbolsCount); + var endErrorIndex = Math.min(errorLine.length, position.column + EspreeFacade.nearestSymbolsCount); + var formattedPointer = EspreeFacade.colorError('>'); + var formattedCodeSlice = "...".concat(errorLine.substring(startErrorIndex, endErrorIndex).replace(/^\s+/, ''), "..."); + throw new Error("Line ".concat(position.line, ": ").concat(errorMessage, "\n").concat(formattedPointer, " ").concat(formattedCodeSlice)); + } + }]); + return EspreeFacade; +}(); + +EspreeFacade.colorError = chalk_1.default.red; +EspreeFacade.nearestSymbolsCount = 15; +EspreeFacade.sourceTypes = ['script', 'module']; +exports.EspreeFacade = EspreeFacade; + +/***/ }), + +/***/ "./src/JavaScriptObfuscator.ts": +/*!*************************************!*\ + !*** ./src/JavaScriptObfuscator.ts ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var JavaScriptObfuscator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var LoggingMessage_1 = __webpack_require__(/*! ./enums/logger/LoggingMessage */ "./src/enums/logger/LoggingMessage.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ./enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ./enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var EspreeFacade_1 = __webpack_require__(/*! ./EspreeFacade */ "./src/EspreeFacade.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ./node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var JavaScriptObfuscator = JavaScriptObfuscator_1 = +/*#__PURE__*/ +function () { + function JavaScriptObfuscator(transformersRunner, sourceMapCorrector, randomGenerator, logger, options) { + (0, _classCallCheck2.default)(this, JavaScriptObfuscator); + this.transformersRunner = transformersRunner; + this.sourceMapCorrector = sourceMapCorrector; + this.randomGenerator = randomGenerator; + this.logger = logger; + this.options = options; + } + + (0, _createClass2.default)(JavaScriptObfuscator, [{ + key: "obfuscate", + value: function obfuscate(sourceCode) { + var timeStart = Date.now(); + this.logger.info(LoggingMessage_1.LoggingMessage.Version, "0.17.0"); + this.logger.info(LoggingMessage_1.LoggingMessage.ObfuscationStarted); + this.logger.info(LoggingMessage_1.LoggingMessage.RandomGeneratorSeed, this.randomGenerator.getSeed()); + var astTree = this.parseCode(sourceCode); + var obfuscatedAstTree = this.transformAstTree(astTree); + var generatorOutput = this.generateCode(sourceCode, obfuscatedAstTree); + var obfuscationTime = (Date.now() - timeStart) / 1000; + this.logger.success(LoggingMessage_1.LoggingMessage.ObfuscationCompleted, obfuscationTime); + return this.getObfuscationResult(generatorOutput); + } + }, { + key: "parseCode", + value: function parseCode(sourceCode) { + return EspreeFacade_1.EspreeFacade.parse(sourceCode, JavaScriptObfuscator_1.espreeParseOptions); + } + }, { + key: "transformAstTree", + value: function transformAstTree(astTree) { + var isEmptyAstTree = NodeGuards_1.NodeGuards.isProgramNode(astTree) && !astTree.body.length && !astTree.leadingComments && !astTree.trailingComments; + + if (isEmptyAstTree) { + this.logger.warn(LoggingMessage_1.LoggingMessage.EmptySourceCode); + return astTree; + } + + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Preparing); + + if (this.options.deadCodeInjection) { + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.DeadCodeInjection); + } + + if (this.options.controlFlowFlattening) { + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.ControlFlowFlattening); + } + + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Converting); + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Obfuscating); + astTree = this.runTransformationStage(astTree, TransformationStage_1.TransformationStage.Finalizing); + return astTree; + } + }, { + key: "generateCode", + value: function generateCode(sourceCode, astTree) { + var escodegenParams = (0, _assign.default)({}, JavaScriptObfuscator_1.escodegenParams); + + if (this.options.sourceMap) { + escodegenParams.sourceMap = this.options.inputFileName || 'sourceMap'; + escodegenParams.sourceContent = sourceCode; + } + + var generatorOutput = escodegen.generate(astTree, (0, _assign.default)({}, escodegenParams, { + format: { + compact: this.options.compact + } + })); + generatorOutput.map = generatorOutput.map ? generatorOutput.map.toString() : ''; + return generatorOutput; + } + }, { + key: "getObfuscationResult", + value: function getObfuscationResult(generatorOutput) { + return this.sourceMapCorrector.correct(generatorOutput.code, generatorOutput.map); + } + }, { + key: "runTransformationStage", + value: function runTransformationStage(astTree, transformationStage) { + this.logger.info(LoggingMessage_1.LoggingMessage.TransformationStage, transformationStage); + return this.transformersRunner.transform(astTree, JavaScriptObfuscator_1.transformersList, transformationStage); + } + }]); + return JavaScriptObfuscator; +}(); + +JavaScriptObfuscator.espreeParseOptions = { + attachComment: true, + comment: true, + ecmaFeatures: { + experimentalObjectRestSpread: true + }, + ecmaVersion: 9, + loc: true, + range: true +}; +JavaScriptObfuscator.escodegenParams = { + comment: true, + verbatim: 'x-verbatim-property', + sourceMapWithCode: true +}; +JavaScriptObfuscator.transformersList = [NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.CommentsTransformer, NodeTransformer_1.NodeTransformer.CustomNodesTransformer, NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer, NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer, NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer, NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.LiteralTransformer, NodeTransformer_1.NodeTransformer.MemberExpressionTransformer, NodeTransformer_1.NodeTransformer.MetadataTransformer, NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer, NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer, NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer, NodeTransformer_1.NodeTransformer.ParentificationTransformer, NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer]; +JavaScriptObfuscator = JavaScriptObfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ILogger)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], JavaScriptObfuscator); +exports.JavaScriptObfuscator = JavaScriptObfuscator; + +/***/ }), + +/***/ "./src/JavaScriptObfuscatorFacade.ts": +/*!*******************************************!*\ + !*** ./src/JavaScriptObfuscatorFacade.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +__webpack_require__(/*! reflect-metadata */ "reflect-metadata"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ./container/InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var JavaScriptObfuscatorFacade = +/*#__PURE__*/ +function () { + function JavaScriptObfuscatorFacade() { + (0, _classCallCheck2.default)(this, JavaScriptObfuscatorFacade); + } + + (0, _createClass2.default)(JavaScriptObfuscatorFacade, null, [{ + key: "obfuscate", + value: function obfuscate(sourceCode) { + var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var inversifyContainerFacade = new InversifyContainerFacade_1.InversifyContainerFacade(); + inversifyContainerFacade.load(sourceCode, inputOptions); + var javaScriptObfuscator = inversifyContainerFacade.get(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator); + var obfuscationResult = javaScriptObfuscator.obfuscate(sourceCode); + inversifyContainerFacade.unload(); + return obfuscationResult; + } + }]); + return JavaScriptObfuscatorFacade; +}(); + +JavaScriptObfuscatorFacade.version = "0.17.0" || 'unknown'; +exports.JavaScriptObfuscator = JavaScriptObfuscatorFacade; + +/***/ }), + +/***/ "./src/ObfuscationResult.ts": +/*!**********************************!*\ + !*** ./src/ObfuscationResult.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var Initializable_1 = __webpack_require__(/*! ./decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var ObfuscationResult = +/*#__PURE__*/ +function () { + function ObfuscationResult() { + (0, _classCallCheck2.default)(this, ObfuscationResult); + } + + (0, _createClass2.default)(ObfuscationResult, [{ + key: "initialize", + value: function initialize(obfuscatedCode, sourceMap) { + this.obfuscatedCode = obfuscatedCode; + this.sourceMap = sourceMap; + } + }, { + key: "getObfuscatedCode", + value: function getObfuscatedCode() { + return this.obfuscatedCode; + } + }, { + key: "getSourceMap", + value: function getSourceMap() { + return this.sourceMap; + } + }, { + key: "toString", + value: function toString() { + return this.obfuscatedCode; + } + }]); + return ObfuscationResult; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "obfuscatedCode", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ObfuscationResult.prototype, "sourceMap", void 0); + +ObfuscationResult = tslib_1.__decorate([inversify_1.injectable()], ObfuscationResult); +exports.ObfuscationResult = ObfuscationResult; + +/***/ }), + +/***/ "./src/SourceCode.ts": +/*!***************************!*\ + !*** ./src/SourceCode.ts ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var SourceCode = +/*#__PURE__*/ +function () { + function SourceCode(sourceCode) { + (0, _classCallCheck2.default)(this, SourceCode); + this.sourceCode = sourceCode; + } + + (0, _createClass2.default)(SourceCode, [{ + key: "getSourceCode", + value: function getSourceCode() { + return this.sourceCode; + } + }]); + return SourceCode; +}(); + +exports.SourceCode = SourceCode; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts": +/*!******************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StackTraceAnalyzer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var CalleeDataExtractor_1 = __webpack_require__(/*! ../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StackTraceAnalyzer = StackTraceAnalyzer_1 = +/*#__PURE__*/ +function () { + function StackTraceAnalyzer(calleeDataExtractorFactory) { + (0, _classCallCheck2.default)(this, StackTraceAnalyzer); + this.calleeDataExtractorFactory = calleeDataExtractorFactory; + } + + (0, _createClass2.default)(StackTraceAnalyzer, [{ + key: "analyze", + value: function analyze(astTree) { + return this.analyzeRecursive(astTree.body); + } + }, { + key: "analyzeRecursive", + value: function analyzeRecursive(blockScopeBody) { + var _this = this; + + var limitIndex = StackTraceAnalyzer_1.getLimitIndex(blockScopeBody.length); + var stackTraceData = []; + var blockScopeBodyLength = blockScopeBody.length; + + var _loop = function _loop(index) { + if (index > limitIndex) { + return "break"; + } + + var blockScopeBodyNode = blockScopeBody[index]; + estraverse.traverse(blockScopeBodyNode, { + enter: function enter(node) { + if (!NodeGuards_1.NodeGuards.isCallExpressionNode(node)) { + return; + } + + if (blockScopeBodyNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopeOfNode(node)) { + return estraverse.VisitorOption.Skip; + } + + _this.analyzeCallExpressionNode(stackTraceData, blockScopeBody, node); + } + }); + }; + + for (var index = 0; index < blockScopeBodyLength; index++) { + var _ret = _loop(index); + + if (_ret === "break") break; + } + + return stackTraceData; + } + }, { + key: "analyzeCallExpressionNode", + value: function analyzeCallExpressionNode(stackTraceData, blockScopeBody, callExpressionNode) { + var _this2 = this; + + StackTraceAnalyzer_1.calleeDataExtractorsList.forEach(function (calleeDataExtractorName) { + var calleeData = _this2.calleeDataExtractorFactory(calleeDataExtractorName).extract(blockScopeBody, callExpressionNode.callee); + + if (!calleeData) { + return; + } + + stackTraceData.push((0, _assign.default)({}, calleeData, { + stackTrace: _this2.analyzeRecursive(calleeData.callee.body) + })); + }); + } + }], [{ + key: "getLimitIndex", + value: function getLimitIndex(blockScopeBodyLength) { + var lastIndex = blockScopeBodyLength - 1; + var limitThresholdActivationIndex = StackTraceAnalyzer_1.limitThresholdActivationLength - 1; + var limitIndex = lastIndex; + + if (lastIndex > limitThresholdActivationIndex) { + limitIndex = Math.round(limitThresholdActivationIndex + lastIndex * StackTraceAnalyzer_1.limitThreshold); + + if (limitIndex > lastIndex) { + limitIndex = lastIndex; + } + } + + return limitIndex; + } + }]); + return StackTraceAnalyzer; +}(); + +StackTraceAnalyzer.calleeDataExtractorsList = [CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor, CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor]; +StackTraceAnalyzer.limitThresholdActivationLength = 25; +StackTraceAnalyzer.limitThreshold = 0.002; +StackTraceAnalyzer = StackTraceAnalyzer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor)), tslib_1.__metadata("design:paramtypes", [Function])], StackTraceAnalyzer); +exports.StackTraceAnalyzer = StackTraceAnalyzer; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts": +/*!**************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts ***! + \**************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var AbstractCalleeDataExtractor = function AbstractCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, AbstractCalleeDataExtractor); +}; + +AbstractCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], AbstractCalleeDataExtractor); +exports.AbstractCalleeDataExtractor = AbstractCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionDeclarationCalleeDataExtractor = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(FunctionDeclarationCalleeDataExtractor, _AbstractCalleeDataEx); + + function FunctionDeclarationCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, FunctionDeclarationCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionDeclarationCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(FunctionDeclarationCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return null; + } + + var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), callee.name); + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: callee.name + }; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, name) { + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && node.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }]); + return FunctionDeclarationCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +FunctionDeclarationCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionDeclarationCalleeDataExtractor); +exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionExpressionCalleeDataExtractor = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(FunctionExpressionCalleeDataExtractor, _AbstractCalleeDataEx); + + function FunctionExpressionCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, FunctionExpressionCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionExpressionCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(FunctionExpressionCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + var calleeBlockStatement = null; + + if (NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), callee.name); + } + + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(callee)) { + calleeBlockStatement = callee.body; + } + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: callee.name || null + }; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, name) { + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node, parentNode) { + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && parentNode && NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode) && NodeGuards_1.NodeGuards.isIdentifierNode(parentNode.id) && parentNode.id.name === name) { + calleeBlockStatement = node.body; + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }]); + return FunctionExpressionCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +FunctionExpressionCalleeDataExtractor = tslib_1.__decorate([inversify_1.injectable()], FunctionExpressionCalleeDataExtractor); +exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor; + +/***/ }), + +/***/ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObjectExpressionCalleeDataExtractor_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractCalleeDataExtractor_1 = __webpack_require__(/*! ./AbstractCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/AbstractCalleeDataExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = +/*#__PURE__*/ +function (_AbstractCalleeDataEx) { + (0, _inherits2.default)(ObjectExpressionCalleeDataExtractor, _AbstractCalleeDataEx); + + function ObjectExpressionCalleeDataExtractor() { + (0, _classCallCheck2.default)(this, ObjectExpressionCalleeDataExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionCalleeDataExtractor).apply(this, arguments)); + } + + (0, _createClass2.default)(ObjectExpressionCalleeDataExtractor, [{ + key: "extract", + value: function extract(blockScopeBody, callee) { + if (!NodeGuards_1.NodeGuards.isMemberExpressionNode(callee)) { + return null; + } + + var objectMembersCallsChain = this.createObjectMembersCallsChain([], callee); + + if (!objectMembersCallsChain.length) { + return null; + } + + var functionExpressionName = objectMembersCallsChain[objectMembersCallsChain.length - 1]; + var calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockScopeBody[0]), objectMembersCallsChain); + + if (!calleeBlockStatement) { + return null; + } + + return { + callee: calleeBlockStatement, + name: functionExpressionName + }; + } + }, { + key: "createObjectMembersCallsChain", + value: function createObjectMembersCallsChain(currentChain, memberExpression) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { + currentChain.unshift(memberExpression.property.name); + } else if (NodeGuards_1.NodeGuards.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) { + currentChain.unshift(memberExpression.property.value); + } else { + return currentChain; + } + + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(memberExpression.object)) { + return this.createObjectMembersCallsChain(currentChain, memberExpression.object); + } else if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpression.object)) { + currentChain.unshift(memberExpression.object.name); + } + + return currentChain; + } + }, { + key: "getCalleeBlockStatement", + value: function getCalleeBlockStatement(targetNode, objectMembersCallsChain) { + var _this = this; + + var objectName = objectMembersCallsChain.shift(); + + if (!objectName) { + return null; + } + + var calleeBlockStatement = null; + estraverse.traverse(targetNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isVariableDeclaratorNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.id) && node.init && NodeGuards_1.NodeGuards.isObjectExpressionNode(node.init) && node.id.name === objectName) { + calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); + return estraverse.VisitorOption.Break; + } + } + }); + return calleeBlockStatement; + } + }, { + key: "findCalleeBlockStatement", + value: function findCalleeBlockStatement(objectExpressionProperties, objectMembersCallsChain) { + var nextItemInCallsChain = objectMembersCallsChain.shift(); + + if (!nextItemInCallsChain) { + return null; + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(objectExpressionProperties), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var propertyNode = _step.value; + + if (!ObjectExpressionCalleeDataExtractor_1.isValidTargetPropertyNode(propertyNode, nextItemInCallsChain)) { + continue; + } + + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(propertyNode.value)) { + return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); + } + + if (NodeGuards_1.NodeGuards.isFunctionExpressionNode(propertyNode.value)) { + return propertyNode.value.body; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + }], [{ + key: "isValidTargetPropertyNode", + value: function isValidTargetPropertyNode(propertyNode, nextItemInCallsChain) { + if (!propertyNode.key) { + return false; + } + + var isTargetPropertyNodeWithIdentifierKey = NodeGuards_1.NodeGuards.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + var isTargetPropertyNodeWithLiteralKey = NodeGuards_1.NodeGuards.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain; + return isTargetPropertyNodeWithIdentifierKey || isTargetPropertyNodeWithLiteralKey; + } + }]); + return ObjectExpressionCalleeDataExtractor; +}(AbstractCalleeDataExtractor_1.AbstractCalleeDataExtractor); + +ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor_1 = tslib_1.__decorate([inversify_1.injectable()], ObjectExpressionCalleeDataExtractor); +exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor; + +/***/ }), + +/***/ "./src/container/InversifyContainerFacade.ts": +/*!***************************************************!*\ + !*** ./src/container/InversifyContainerFacade.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ "@babel/runtime/helpers/construct")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ./ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AnalyzersModule_1 = __webpack_require__(/*! ./modules/analyzers/AnalyzersModule */ "./src/container/modules/analyzers/AnalyzersModule.ts"); + +var ControlFlowTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ControlFlowTransformersModule */ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts"); + +var ConvertingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ConvertingTransformersModule */ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts"); + +var CustomNodesModule_1 = __webpack_require__(/*! ./modules/custom-nodes/CustomNodesModule */ "./src/container/modules/custom-nodes/CustomNodesModule.ts"); + +var FinalizingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/FinalizingTransformersModule */ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts"); + +var GeneratorsModule_1 = __webpack_require__(/*! ./modules/generators/GeneratorsModule */ "./src/container/modules/generators/GeneratorsModule.ts"); + +var NodeTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/NodeTransformersModule */ "./src/container/modules/node-transformers/NodeTransformersModule.ts"); + +var ObfuscatingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/ObfuscatingTransformersModule */ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts"); + +var OptionsModule_1 = __webpack_require__(/*! ./modules/options/OptionsModule */ "./src/container/modules/options/OptionsModule.ts"); + +var PreparingTransformersModule_1 = __webpack_require__(/*! ./modules/node-transformers/PreparingTransformersModule */ "./src/container/modules/node-transformers/PreparingTransformersModule.ts"); + +var StoragesModule_1 = __webpack_require__(/*! ./modules/storages/StoragesModule */ "./src/container/modules/storages/StoragesModule.ts"); + +var UtilsModule_1 = __webpack_require__(/*! ./modules/utils/UtilsModule */ "./src/container/modules/utils/UtilsModule.ts"); + +var JavaScriptObfuscator_1 = __webpack_require__(/*! ../JavaScriptObfuscator */ "./src/JavaScriptObfuscator.ts"); + +var Logger_1 = __webpack_require__(/*! ../logger/Logger */ "./src/logger/Logger.ts"); + +var ObfuscationEventEmitter_1 = __webpack_require__(/*! ../event-emitters/ObfuscationEventEmitter */ "./src/event-emitters/ObfuscationEventEmitter.ts"); + +var ObfuscationResult_1 = __webpack_require__(/*! ../ObfuscationResult */ "./src/ObfuscationResult.ts"); + +var SourceCode_1 = __webpack_require__(/*! ../SourceCode */ "./src/SourceCode.ts"); + +var SourceMapCorrector_1 = __webpack_require__(/*! ../source-map/SourceMapCorrector */ "./src/source-map/SourceMapCorrector.ts"); + +var TransformersRunner_1 = __webpack_require__(/*! ../node-transformers/TransformersRunner */ "./src/node-transformers/TransformersRunner.ts"); + +var InversifyContainerFacade = +/*#__PURE__*/ +function () { + function InversifyContainerFacade() { + (0, _classCallCheck2.default)(this, InversifyContainerFacade); + this.container = new inversify_1.Container(); + } + + (0, _createClass2.default)(InversifyContainerFacade, [{ + key: "get", + value: function get(serviceIdentifier) { + return this.container.get(serviceIdentifier); + } + }, { + key: "getNamed", + value: function getNamed(serviceIdentifier, named) { + return this.container.getNamed(serviceIdentifier, named); + } + }, { + key: "load", + value: function load(sourceCode, options) { + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode).toDynamicValue(function () { + return new SourceCode_1.SourceCode(sourceCode); + }).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions).toDynamicValue(function () { + return options; + }).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ILogger).to(Logger_1.Logger).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IJavaScriptObfuscator).to(JavaScriptObfuscator_1.JavaScriptObfuscator).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner).to(TransformersRunner_1.TransformersRunner).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult).to(ObfuscationResult_1.ObfuscationResult).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(function (context) { + return function (obfuscatedCode, sourceMap) { + var obfuscationResult = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationResult); + obfuscationResult.initialize(obfuscatedCode, sourceMap); + return obfuscationResult; + }; + }); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.ISourceMapCorrector).to(SourceMapCorrector_1.SourceMapCorrector).inSingletonScope(); + this.container.bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter).to(ObfuscationEventEmitter_1.ObfuscationEventEmitter).inSingletonScope(); + this.container.load(AnalyzersModule_1.analyzersModule); + this.container.load(ControlFlowTransformersModule_1.controlFlowTransformersModule); + this.container.load(ConvertingTransformersModule_1.convertingTransformersModule); + this.container.load(CustomNodesModule_1.customNodesModule); + this.container.load(FinalizingTransformersModule_1.finalizingTransformersModule); + this.container.load(GeneratorsModule_1.generatorsModule); + this.container.load(NodeTransformersModule_1.nodeTransformersModule); + this.container.load(ObfuscatingTransformersModule_1.obfuscatingTransformersModule); + this.container.load(OptionsModule_1.optionsModule); + this.container.load(PreparingTransformersModule_1.preparingTransformersModule); + this.container.load(StoragesModule_1.storagesModule); + this.container.load(UtilsModule_1.utilsModule); + } + }, { + key: "unload", + value: function unload() { + this.container.unbindAll(); + } + }], [{ + key: "getFactory", + value: function getFactory(serviceIdentifier) { + return function (context) { + return function (bindingName) { + return context.container.getNamed(serviceIdentifier, bindingName); + }; + }; + } + }, { + key: "getCacheFactory", + value: function getCacheFactory(serviceIdentifier) { + return function (context) { + var cache = new _map.default(); + return function (bindingName) { + if (cache.has(bindingName)) { + return cache.get(bindingName); + } + + var object = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, object); + return object; + }; + }; + } + }, { + key: "getConstructorFactory", + value: function getConstructorFactory(serviceIdentifier) { + for (var _len = arguments.length, dependencies = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + dependencies[_key - 1] = arguments[_key]; + } + + return function (context) { + var cache = new _map.default(); + var cachedDependencies = []; + return function (bindingName) { + dependencies.forEach(function (dependency, index) { + if (!cachedDependencies[index]) { + cachedDependencies[index] = context.container.get(dependency); + } + }); + + if (cache.has(bindingName)) { + return (0, _construct2.default)(cache.get(bindingName), cachedDependencies); + } + + var constructor = context.container.getNamed(serviceIdentifier, bindingName); + cache.set(bindingName, constructor); + return (0, _construct2.default)(constructor, cachedDependencies); + }; + }; + } + }]); + return InversifyContainerFacade; +}(); + +exports.InversifyContainerFacade = InversifyContainerFacade; + +/***/ }), + +/***/ "./src/container/ServiceIdentifiers.ts": +/*!*********************************************!*\ + !*** ./src/container/ServiceIdentifiers.ts ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ServiceIdentifiers; + +(function (ServiceIdentifiers) { + ServiceIdentifiers["Factory__ICalleeDataExtractor"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IControlFlowReplacer"] = "Factory"; + ServiceIdentifiers["Factory__ICustomNode"] = "Factory"; + ServiceIdentifiers["Factory__ICustomNodeGroup"] = "Factory"; + ServiceIdentifiers["Factory__IDeadCodeInjectionCustomNode"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierNamesGenerator"] = "Factory"; + ServiceIdentifiers["Factory__IIdentifierObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__INodeGuard"] = "Factory"; + ServiceIdentifiers["Factory__INodeTransformer"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscationResult"] = "Factory"; + ServiceIdentifiers["Factory__IObfuscatingReplacer"] = "Factory"; + ServiceIdentifiers["Factory__IPropertiesExtractor"] = "Factory"; + ServiceIdentifiers["Factory__TControlFlowStorage"] = "Factory"; + ServiceIdentifiers["IArrayUtils"] = "IArrayUtils"; + ServiceIdentifiers["ICalleeDataExtractor"] = "ICalleeDataExtractor"; + ServiceIdentifiers["ICryptUtils"] = "ICryptUtils"; + ServiceIdentifiers["ICustomNode"] = "ICustomNode"; + ServiceIdentifiers["ICustomNodeGroup"] = "ICustomNodeGroup"; + ServiceIdentifiers["IControlFlowReplacer"] = "IControlFlowReplacer"; + ServiceIdentifiers["IEscapeSequenceEncoder"] = "IEscapeSequenceEncoder"; + ServiceIdentifiers["IIdentifierNamesGenerator"] = "IIdentifierNamesGenerator"; + ServiceIdentifiers["IIdentifierObfuscatingReplacer"] = "IIdentifierObfuscatingReplacer"; + ServiceIdentifiers["IJavaScriptObfuscator"] = "IJavaScriptObfuscator"; + ServiceIdentifiers["ILogger"] = "ILogger"; + ServiceIdentifiers["INodeGuard"] = "INodeGuard"; + ServiceIdentifiers["INodeTransformer"] = "INodeTransformer"; + ServiceIdentifiers["IObfuscationEventEmitter"] = "IObfuscationEventEmitter"; + ServiceIdentifiers["IObfuscationResult"] = "IObfuscationResult"; + ServiceIdentifiers["IOptions"] = "IOptions"; + ServiceIdentifiers["IOptionsNormalizer"] = "IOptionsNormalizer"; + ServiceIdentifiers["IObfuscatingReplacer"] = "IObfuscatingReplacer"; + ServiceIdentifiers["IPropertiesExtractor"] = "IPropertiesExtractor"; + ServiceIdentifiers["IRandomGenerator"] = "IRandomGenerator"; + ServiceIdentifiers["ISourceCode"] = "ISourceCode"; + ServiceIdentifiers["ISourceMapCorrector"] = "ISourceMapCorrector"; + ServiceIdentifiers["IStackTraceAnalyzer"] = "IStackTraceAnalyzer"; + ServiceIdentifiers["ITransformersRunner"] = "ITransformersRunner"; + ServiceIdentifiers["Newable__ICustomNode"] = "Newable"; + ServiceIdentifiers["Newable__TControlFlowStorage"] = "Newable"; + ServiceIdentifiers["TCustomNodeGroupStorage"] = "TCustomNodeGroupStorage"; + ServiceIdentifiers["TInputOptions"] = "TInputOptions"; + ServiceIdentifiers["TStringArrayStorage"] = "TStringArrayStorage"; +})(ServiceIdentifiers = exports.ServiceIdentifiers || (exports.ServiceIdentifiers = {})); + +/***/ }), + +/***/ "./src/container/modules/analyzers/AnalyzersModule.ts": +/*!************************************************************!*\ + !*** ./src/container/modules/analyzers/AnalyzersModule.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var CalleeDataExtractor_1 = __webpack_require__(/*! ../../../enums/analyzers/stack-trace-analyzer/CalleeDataExtractor */ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts"); + +var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts"); + +var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts"); + +var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor */ "./src/analyzers/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts"); + +var StackTraceAnalyzer_1 = __webpack_require__(/*! ../../../analyzers/stack-trace-analyzer/StackTraceAnalyzer */ "./src/analyzers/stack-trace-analyzer/StackTraceAnalyzer.ts"); + +exports.analyzersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer).to(StackTraceAnalyzer_1.StackTraceAnalyzer).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionDeclarationCalleeDataExtractor_1.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(FunctionExpressionCalleeDataExtractor_1.FunctionExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor).to(ObjectExpressionCalleeDataExtractor_1.ObjectExpressionCalleeDataExtractor).whenTargetNamed(CalleeDataExtractor_1.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICalleeDataExtractor)); +}); + +/***/ }), + +/***/ "./src/container/modules/custom-nodes/CustomNodesModule.ts": +/*!*****************************************************************!*\ + !*** ./src/container/modules/custom-nodes/CustomNodesModule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var CustomNodeGroup_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts"); + +var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); + +var ConsoleOutputCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup */ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts"); + +var DebugProtectionCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup */ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts"); + +var DomainLockCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup */ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts"); + +var SelfDefendingCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup */ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts"); + +var StringArrayCustomNodeGroup_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup */ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts"); + +var BinaryExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts"); + +var BlockStatementControlFlowFlatteningNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode */ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts"); + +var BlockStatementDeadCodeInjectionNode_1 = __webpack_require__(/*! ../../../custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode */ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts"); + +var CallExpressionControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts"); + +var CallExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts"); + +var ControlFlowStorageNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts"); + +var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(/*! ../../../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode */ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts"); + +var DebugProtectionFunctionCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts"); + +var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts"); + +var DebugProtectionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode */ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts"); + +var DomainLockNode_1 = __webpack_require__(/*! ../../../custom-nodes/domain-lock-nodes/DomainLockNode */ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts"); + +var ExpressionWithOperatorControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts"); + +var LogicalExpressionFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode */ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts"); + +var NodeCallsControllerFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode */ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts"); + +var SelfDefendingUnicodeNode_1 = __webpack_require__(/*! ../../../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode */ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts"); + +var StringArrayCallsWrapper_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayCallsWrapper */ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts"); + +var StringArrayNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayNode */ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts"); + +var StringArrayRotateFunctionNode_1 = __webpack_require__(/*! ../../../custom-nodes/string-array-nodes/StringArrayRotateFunctionNode */ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts"); + +var StringLiteralControlFlowStorageCallNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode */ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts"); + +var StringLiteralNode_1 = __webpack_require__(/*! ../../../custom-nodes/control-flow-flattening-nodes/StringLiteralNode */ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts"); + +exports.customNodesModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode).whenTargetNamed(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionCallNode_1.DebugProtectionFunctionCallNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionIntervalNode_1.DebugProtectionFunctionIntervalNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DebugProtectionFunctionNode_1.DebugProtectionFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.DebugProtectionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(DomainLockNode_1.DomainLockNode).whenTargetNamed(CustomNode_1.CustomNode.DomainLockNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(NodeCallsControllerFunctionNode_1.NodeCallsControllerFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(SelfDefendingUnicodeNode_1.SelfDefendingUnicodeNode).whenTargetNamed(CustomNode_1.CustomNode.SelfDefendingUnicodeNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayCallsWrapper_1.StringArrayCallsWrapper).whenTargetNamed(CustomNode_1.CustomNode.StringArrayCallsWrapper); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayNode_1.StringArrayNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode).to(StringArrayRotateFunctionNode_1.StringArrayRotateFunctionNode).whenTargetNamed(CustomNode_1.CustomNode.StringArrayRotateFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BinaryExpressionFunctionNode_1.BinaryExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementControlFlowFlatteningNode_1.BlockStatementControlFlowFlatteningNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionControlFlowStorageCallNode_1.CallExpressionControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(CallExpressionFunctionNode_1.CallExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ControlFlowStorageNode_1.ControlFlowStorageNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(ExpressionWithOperatorControlFlowStorageCallNode_1.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(LogicalExpressionFunctionNode_1.LogicalExpressionFunctionNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralNode_1.StringLiteralNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(StringLiteralControlFlowStorageCallNode_1.StringLiteralControlFlowStorageCallNode).whenTargetNamed(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode).toConstructor(BlockStatementDeadCodeInjectionNode_1.BlockStatementDeadCodeInjectionNode).whenTargetNamed(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(ConsoleOutputCustomNodeGroup_1.ConsoleOutputCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DebugProtectionCustomNodeGroup_1.DebugProtectionCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(DomainLockCustomNodeGroup_1.DomainLockCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(SelfDefendingCustomNodeGroup_1.SelfDefendingCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup).to(StringArrayCustomNodeGroup_1.StringArrayCustomNodeGroup).whenTargetNamed(CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNode)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getConstructorFactory(ServiceIdentifiers_1.ServiceIdentifiers.Newable__ICustomNode, ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator, ServiceIdentifiers_1.ServiceIdentifiers.IOptions)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getFactory(ServiceIdentifiers_1.ServiceIdentifiers.ICustomNodeGroup)); +}); + +/***/ }), + +/***/ "./src/container/modules/generators/GeneratorsModule.ts": +/*!**************************************************************!*\ + !*** ./src/container/modules/generators/GeneratorsModule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var HexadecimalIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts"); + +var MangledIdentifierNamesGenerator_1 = __webpack_require__(/*! ../../../generators/identifier-names-generators/MangledIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts"); + +exports.generatorsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(HexadecimalIdentifierNamesGenerator_1.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator).to(MangledIdentifierNamesGenerator_1.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function (context) { + var cachedIdentifierNamesGenerator = null; + return function (options) { + if (cachedIdentifierNamesGenerator) { + return cachedIdentifierNamesGenerator; + } + + var identifierNamesGenerator; + + switch (options.identifierNamesGenerator) { + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator); + break; + + case IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator: + default: + identifierNamesGenerator = context.container.getNamed(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator); + } + + cachedIdentifierNamesGenerator = identifierNamesGenerator; + return identifierNamesGenerator; + }; + }); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ControlFlowTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ControlFlowTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var BinaryExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts"); + +var BlockStatementControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts"); + +var CallExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts"); + +var DeadCodeInjectionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer */ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts"); + +var FunctionControlFlowTransformer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/FunctionControlFlowTransformer */ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts"); + +var LogicalExpressionControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts"); + +var StringLiteralControlFlowReplacer_1 = __webpack_require__(/*! ../../../node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts"); + +exports.controlFlowTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.BlockStatementControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(DeadCodeInjectionTransformer_1.DeadCodeInjectionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.DeadCodeInjectionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(BinaryExpressionControlFlowReplacer_1.BinaryExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(CallExpressionControlFlowReplacer_1.CallExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(LogicalExpressionControlFlowReplacer_1.LogicalExpressionControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer).to(StringLiteralControlFlowReplacer_1.StringLiteralControlFlowReplacer).whenTargetNamed(ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IControlFlowReplacer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ConvertingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ConvertingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var PropertiesExtractor_1 = __webpack_require__(/*! ../../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts"); + +var AssignmentExpressionPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts"); + +var MemberExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MemberExpressionTransformer */ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts"); + +var MethodDefinitionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/MethodDefinitionTransformer */ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts"); + +var ObjectExpressionKeysTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionKeysTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts"); + +var ObjectExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/ObjectExpressionTransformer */ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts"); + +var TemplateLiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/TemplateLiteralTransformer */ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts"); + +var VariableDeclaratorPropertiesExtractor_1 = __webpack_require__(/*! ../../../node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts"); + +exports.convertingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MemberExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MethodDefinitionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionKeysTransformer_1.ObjectExpressionKeysTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionKeysTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObjectExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.TemplateLiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(AssignmentExpressionPropertiesExtractor_1.AssignmentExpressionPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor).to(VariableDeclaratorPropertiesExtractor_1.VariableDeclaratorPropertiesExtractor).whenTargetNamed(PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IPropertiesExtractor)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/FinalizingTransformersModule.ts": +/*!*********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/FinalizingTransformersModule.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +exports.finalizingTransformersModule = new inversify_1.ContainerModule(function (bind) {}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/NodeTransformersModule.ts": +/*!***************************************************************************!*\ + !*** ./src/container/modules/node-transformers/NodeTransformersModule.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts": +/*!**********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/ObfuscatingTransformersModule.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var BaseIdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts"); + +var BooleanLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts"); + +var CatchClauseTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/CatchClauseTransformer */ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts"); + +var ClassDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ClassDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts"); + +var FunctionDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts"); + +var FunctionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/FunctionTransformer */ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts"); + +var ImportDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/ImportDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts"); + +var LabeledStatementTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LabeledStatementTransformer */ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts"); + +var LiteralTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/LiteralTransformer */ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts"); + +var NumberLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts"); + +var StringLiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts"); + +var VariableDeclarationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/obfuscating-transformers/VariableDeclarationTransformer */ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts"); + +exports.obfuscatingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CatchClauseTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ClassDeclarationTransformer_1.ClassDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.FunctionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ImportDeclarationTransformer_1.ImportDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ImportDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LabeledStatementTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.LiteralTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(BooleanLiteralObfuscatingReplacer_1.BooleanLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(NumberLiteralObfuscatingReplacer_1.NumberLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer).to(StringLiteralObfuscatingReplacer_1.StringLiteralObfuscatingReplacer).whenTargetNamed(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(BaseIdentifierObfuscatingReplacer_1.BaseIdentifierObfuscatingReplacer).whenTargetNamed(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscatingReplacer)); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.IIdentifierObfuscatingReplacer)); +}); + +/***/ }), + +/***/ "./src/container/modules/node-transformers/PreparingTransformersModule.ts": +/*!********************************************************************************!*\ + !*** ./src/container/modules/node-transformers/PreparingTransformersModule.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var InversifyContainerFacade_1 = __webpack_require__(/*! ../../InversifyContainerFacade */ "./src/container/InversifyContainerFacade.ts"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var ObfuscatingGuard_1 = __webpack_require__(/*! ../../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); + +var BlackListObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts"); + +var CommentsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CommentsTransformer */ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts"); + +var ConditionalCommentObfuscatingGuard_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard */ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts"); + +var CustomNodesTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/CustomNodesTransformer */ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts"); + +var EvaCallExpressionTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/EvaCallExpressionTransformer */ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts"); + +var MetadataTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/MetadataTransformer */ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts"); + +var ObfuscatingGuardsTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ObfuscatingGuardsTransformer */ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts"); + +var ParentificationTransformer_1 = __webpack_require__(/*! ../../../node-transformers/preparing-transformers/ParentificationTransformer */ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts"); + +exports.preparingTransformersModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CommentsTransformer_1.CommentsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CommentsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CustomNodesTransformer_1.CustomNodesTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.CustomNodesTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(EvaCallExpressionTransformer_1.EvalCallExpressionTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.EvalCallExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MetadataTransformer_1.MetadataTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.MetadataTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObfuscatingGuardsTransformer_1.ObfuscatingGuardsTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ObfuscatingGuardsTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ParentificationTransformer_1.ParentificationTransformer).whenTargetNamed(NodeTransformer_1.NodeTransformer.ParentificationTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(BlackListObfuscatingGuard_1.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard).to(ConditionalCommentObfuscatingGuard_1.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard).toFactory(InversifyContainerFacade_1.InversifyContainerFacade.getCacheFactory(ServiceIdentifiers_1.ServiceIdentifiers.INodeGuard)); +}); + +/***/ }), + +/***/ "./src/container/modules/options/OptionsModule.ts": +/*!********************************************************!*\ + !*** ./src/container/modules/options/OptionsModule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Options_1 = __webpack_require__(/*! ../../../options/Options */ "./src/options/Options.ts"); + +var OptionsNormalizer_1 = __webpack_require__(/*! ../../../options/OptionsNormalizer */ "./src/options/OptionsNormalizer.ts"); + +exports.optionsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptions).to(Options_1.Options).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer).to(OptionsNormalizer_1.OptionsNormalizer).inSingletonScope(); +}); + +/***/ }), + +/***/ "./src/container/modules/storages/StoragesModule.ts": +/*!**********************************************************!*\ + !*** ./src/container/modules/storages/StoragesModule.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowStorage_1 = __webpack_require__(/*! ../../../storages/control-flow/ControlFlowStorage */ "./src/storages/control-flow/ControlFlowStorage.ts"); + +var CustomNodeGroupStorage_1 = __webpack_require__(/*! ../../../storages/custom-node-group/CustomNodeGroupStorage */ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts"); + +var StringArrayStorage_1 = __webpack_require__(/*! ../../../storages/string-array/StringArrayStorage */ "./src/storages/string-array/StringArrayStorage.ts"); + +exports.storagesModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage).to(CustomNodeGroupStorage_1.CustomNodeGroupStorage).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage).to(StringArrayStorage_1.StringArrayStorage).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(ControlFlowStorage_1.ControlFlowStorage); + bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function (context) { + return function () { + var constructor = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.Newable__TControlFlowStorage); + var randomGenerator = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator); + var options = context.container.get(ServiceIdentifiers_1.ServiceIdentifiers.IOptions); + var storage = new constructor(randomGenerator, options); + storage.initialize(); + return storage; + }; + }); +}); + +/***/ }), + +/***/ "./src/container/modules/utils/UtilsModule.ts": +/*!****************************************************!*\ + !*** ./src/container/modules/utils/UtilsModule.ts ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayUtils_1 = __webpack_require__(/*! ../../../utils/ArrayUtils */ "./src/utils/ArrayUtils.ts"); + +var CryptUtils_1 = __webpack_require__(/*! ../../../utils/CryptUtils */ "./src/utils/CryptUtils.ts"); + +var EscapeSequenceEncoder_1 = __webpack_require__(/*! ../../../utils/EscapeSequenceEncoder */ "./src/utils/EscapeSequenceEncoder.ts"); + +var RandomGenerator_1 = __webpack_require__(/*! ../../../utils/RandomGenerator */ "./src/utils/RandomGenerator.ts"); + +exports.utilsModule = new inversify_1.ContainerModule(function (bind) { + bind(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils).to(ArrayUtils_1.ArrayUtils).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator).to(RandomGenerator_1.RandomGenerator).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils).to(CryptUtils_1.CryptUtils).inSingletonScope(); + bind(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder).to(EscapeSequenceEncoder_1.EscapeSequenceEncoder).inSingletonScope(); +}); + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNode.ts": +/*!************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNode.ts ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractCustomNode_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var GlobalVariableTemplate1_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate1 */ "./src/templates/GlobalVariableTemplate1.ts"); + +var GlobalVariableTemplate2_1 = __webpack_require__(/*! ../templates/GlobalVariableTemplate2 */ "./src/templates/GlobalVariableTemplate2.ts"); + +var AbstractCustomNode = AbstractCustomNode_1 = +/*#__PURE__*/ +function () { + function AbstractCustomNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractCustomNode); + this.cachedNode = null; + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractCustomNode, [{ + key: "getNode", + value: function getNode() { + if (!this.cachedNode) { + this.cachedNode = this.getNodeStructure(); + } + + return this.cachedNode; + } + }, { + key: "getGlobalVariableTemplate", + value: function getGlobalVariableTemplate() { + return this.randomGenerator.getRandomGenerator().pickone(AbstractCustomNode_1.globalVariableTemplateFunctions); + } + }]); + return AbstractCustomNode; +}(); + +AbstractCustomNode.globalVariableTemplateFunctions = [GlobalVariableTemplate1_1.GlobalVariableTemplate1(), GlobalVariableTemplate2_1.GlobalVariableTemplate2()]; +AbstractCustomNode = AbstractCustomNode_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNode); +exports.AbstractCustomNode = AbstractCustomNode; + +/***/ }), + +/***/ "./src/custom-nodes/AbstractCustomNodeGroup.ts": +/*!*****************************************************!*\ + !*** ./src/custom-nodes/AbstractCustomNodeGroup.ts ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractCustomNodeGroup = +/*#__PURE__*/ +function () { + function AbstractCustomNodeGroup(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractCustomNodeGroup); + this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractCustomNodeGroup, [{ + key: "getAppendEvent", + value: function getAppendEvent() { + return this.appendEvent; + } + }, { + key: "getCustomNodes", + value: function getCustomNodes() { + return this.customNodes; + } + }, { + key: "appendCustomNodeIfExist", + value: function appendCustomNodeIfExist(customNodeName, callback) { + var customNode = this.customNodes.get(customNodeName); + + if (!customNode) { + return; + } + + callback(customNode); + } + }, { + key: "getRandomStackTraceIndex", + value: function getRandomStackTraceIndex(stackTraceLength) { + return this.randomGenerator.getRandomInteger(0, Math.max(0, Math.round(stackTraceLength - 1))); + } + }]); + return AbstractCustomNodeGroup; +}(); + +AbstractCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractCustomNodeGroup); +exports.AbstractCustomNodeGroup = AbstractCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(/*! ../../templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate */ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ConsoleOutputDisableExpressionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ConsoleOutputDisableExpressionNode, _AbstractCustomNode_); + + function ConsoleOutputDisableExpressionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ConsoleOutputDisableExpressionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ConsoleOutputDisableExpressionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ConsoleOutputDisableExpressionNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return string_template_1.default(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate(), { + consoleLogDisableFunctionName: this.identifierNamesGenerator.generate(), + globalVariableTemplate: globalVariableTemplate, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return ConsoleOutputDisableExpressionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ConsoleOutputDisableExpressionNode.prototype, "callsControllerFunctionName", void 0); + +ConsoleOutputDisableExpressionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ConsoleOutputDisableExpressionNode); +exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode; + +/***/ }), + +/***/ "./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/console-output-nodes/group/ConsoleOutputCustomNodeGroup.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var ConsoleOutputCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(ConsoleOutputCustomNodeGroup, _AbstractCustomNodeGr); + + function ConsoleOutputCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ConsoleOutputCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ConsoleOutputCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(ConsoleOutputCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.disableConsoleOutput) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var consoleOutputDisableExpressionNode = this.customNodeFactory(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + consoleOutputDisableExpressionNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.ConsoleOutputDisableExpressionNode, consoleOutputDisableExpressionNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return ConsoleOutputCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], ConsoleOutputCustomNodeGroup.prototype, "customNodes", void 0); + +ConsoleOutputCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], ConsoleOutputCustomNodeGroup); +exports.ConsoleOutputCustomNodeGroup = ConsoleOutputCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BinaryExpressionFunctionNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BinaryExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BinaryExpressionFunctionNode, _AbstractCustomNode_); + + function BinaryExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BinaryExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BinaryExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BinaryExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(operator) { + this.operator = operator; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BinaryExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], BinaryExpressionFunctionNode.prototype, "operator", void 0); + +BinaryExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionFunctionNode); +exports.BinaryExpressionFunctionNode = BinaryExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts": +/*!***************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/BlockStatementControlFlowFlatteningNode.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementControlFlowFlatteningNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BlockStatementControlFlowFlatteningNode, _AbstractCustomNode_); + + function BlockStatementControlFlowFlatteningNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BlockStatementControlFlowFlatteningNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementControlFlowFlatteningNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BlockStatementControlFlowFlatteningNode, [{ + key: "initialize", + value: function initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray) { + this.blockStatementBody = blockStatementBody; + this.shuffledKeys = shuffledKeys; + this.originalKeysIndexesInShuffledArray = originalKeysIndexesInShuffledArray; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var _this = this; + + var controllerIdentifierName = this.randomGenerator.getRandomString(6); + var indexIdentifierName = this.randomGenerator.getRandomString(6); + var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join('|')), NodeFactory_1.NodeFactory.identifierNode('split')), [NodeFactory_1.NodeFactory.literalNode('|')])), NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName), NodeFactory_1.NodeFactory.literalNode(0))]), NodeFactory_1.NodeFactory.whileStatementNode(NodeFactory_1.NodeFactory.literalNode(true), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.switchStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(controllerIdentifierName), NodeFactory_1.NodeFactory.updateExpressionNode('++', NodeFactory_1.NodeFactory.identifierNode(indexIdentifierName)), true), this.shuffledKeys.map(function (key, index) { + var statement = _this.blockStatementBody[key]; + var consequent = [statement]; + + if (!NodeGuards_1.NodeGuards.isReturnStatementNode(statement)) { + consequent.push(NodeFactory_1.NodeFactory.continueStatement()); + } + + return NodeFactory_1.NodeFactory.switchCaseNode(NodeFactory_1.NodeFactory.literalNode(String(index)), consequent); + })), NodeFactory_1.NodeFactory.breakStatement()]))]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BlockStatementControlFlowFlatteningNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "blockStatementBody", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "originalKeysIndexesInShuffledArray", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], BlockStatementControlFlowFlatteningNode.prototype, "shuffledKeys", void 0); + +BlockStatementControlFlowFlatteningNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementControlFlowFlatteningNode); +exports.BlockStatementControlFlowFlatteningNode = BlockStatementControlFlowFlatteningNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts": +/*!**************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/CallExpressionFunctionNode.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CallExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(CallExpressionFunctionNode, _AbstractCustomNode_); + + function CallExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(expressionArguments) { + this.expressionArguments = expressionArguments; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var calleeIdentifier = NodeFactory_1.NodeFactory.identifierNode('callee'); + var params = []; + var argumentsLength = this.expressionArguments.length; + + for (var i = 0; i < argumentsLength; i++) { + params.push(NodeFactory_1.NodeFactory.identifierNode("param".concat(i + 1))); + } + + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([calleeIdentifier].concat(params), NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(calleeIdentifier, params))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return CallExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionFunctionNode.prototype, "expressionArguments", void 0); + +CallExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionFunctionNode); +exports.CallExpressionFunctionNode = CallExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/LogicalExpressionFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LogicalExpressionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(LogicalExpressionFunctionNode, _AbstractCustomNode_); + + function LogicalExpressionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, LogicalExpressionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LogicalExpressionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(LogicalExpressionFunctionNode, [{ + key: "initialize", + value: function initialize(operator) { + this.operator = operator; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.functionExpressionNode([NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')], NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.returnStatementNode(NodeFactory_1.NodeFactory.logicalExpressionNode(this.operator, NodeFactory_1.NodeFactory.identifierNode('x'), NodeFactory_1.NodeFactory.identifierNode('y')))]))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return LogicalExpressionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], LogicalExpressionFunctionNode.prototype, "operator", void 0); + +LogicalExpressionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionFunctionNode); +exports.LogicalExpressionFunctionNode = LogicalExpressionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts": +/*!*****************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/StringLiteralNode.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var StringLiteralNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringLiteralNode, _AbstractCustomNode_); + + function StringLiteralNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralNode, [{ + key: "initialize", + value: function initialize(literalValue) { + this.literalValue = literalValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.literalNode(this.literalValue)); + return [structure]; + } + }]); + return StringLiteralNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralNode.prototype, "literalValue", void 0); + +StringLiteralNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralNode); +exports.StringLiteralNode = StringLiteralNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts": +/*!*******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/CallExpressionControlFlowStorageCallNode.ts ***! + \*******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CallExpressionControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_); + + function CallExpressionControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey, callee, expressionArguments) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.callee = callee; + this.expressionArguments = expressionArguments; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.callee].concat((0, _toConsumableArray2.default)(this.expressionArguments)))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return CallExpressionControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], CallExpressionControlFlowStorageCallNode.prototype, "callee", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], CallExpressionControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], CallExpressionControlFlowStorageCallNode.prototype, "expressionArguments", void 0); + +CallExpressionControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowStorageCallNode); +exports.CallExpressionControlFlowStorageCallNode = CallExpressionControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ControlFlowStorageNode.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _from = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/array/from */ "@babel/runtime/core-js/array/from")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ControlFlowStorageNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ControlFlowStorageNode, _AbstractCustomNode_); + + function ControlFlowStorageNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ControlFlowStorageNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ControlFlowStorageNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ControlFlowStorageNode, [{ + key: "initialize", + value: function initialize(controlFlowStorage) { + this.controlFlowStorage = controlFlowStorage; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var propertyNodes = (0, _from.default)(this.controlFlowStorage.getStorage()).map(function (_ref) { + var _ref2 = (0, _slicedToArray2.default)(_ref, 2), + key = _ref2[0], + value = _ref2[1]; + + var node = value.getNode()[0]; + + if (!NodeGuards_1.NodeGuards.isExpressionStatementNode(node)) { + throw new Error('Function node for control flow storage object should be passed inside the `ExpressionStatement` node!'); + } + + return NodeFactory_1.NodeFactory.propertyNode(NodeFactory_1.NodeFactory.identifierNode(key), node.expression); + }); + var structure = NodeFactory_1.NodeFactory.variableDeclarationNode([NodeFactory_1.NodeFactory.variableDeclaratorNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()), NodeFactory_1.NodeFactory.objectExpressionNode(propertyNodes))]); + structure = NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return ControlFlowStorageNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ControlFlowStorageNode.prototype, "controlFlowStorage", void 0); + +ControlFlowStorageNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ControlFlowStorageNode); +exports.ControlFlowStorageNode = ControlFlowStorageNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts": +/*!***************************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/ExpressionWithOperatorControlFlowStorageCallNode.ts ***! + \***************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ExpressionWithOperatorControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_); + + function ExpressionWithOperatorControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ExpressionWithOperatorControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExpressionWithOperatorControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ExpressionWithOperatorControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey, leftValue, rightValue) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + this.leftValue = leftValue; + this.rightValue = rightValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey)), [this.leftValue, this.rightValue])); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return ExpressionWithOperatorControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "leftValue", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], ExpressionWithOperatorControlFlowStorageCallNode.prototype, "rightValue", void 0); + +ExpressionWithOperatorControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowStorageCallNode); +exports.ExpressionWithOperatorControlFlowStorageCallNode = ExpressionWithOperatorControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts": +/*!******************************************************************************************************************************!*\ + !*** ./src/custom-nodes/control-flow-flattening-nodes/control-flow-storage-nodes/StringLiteralControlFlowStorageCallNode.ts ***! + \******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringLiteralControlFlowStorageCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringLiteralControlFlowStorageCallNode, _AbstractCustomNode_); + + function StringLiteralControlFlowStorageCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralControlFlowStorageCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralControlFlowStorageCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralControlFlowStorageCallNode, [{ + key: "initialize", + value: function initialize(controlFlowStorageName, controlFlowStorageKey) { + this.controlFlowStorageName = controlFlowStorageName; + this.controlFlowStorageKey = controlFlowStorageKey; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var structure = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.memberExpressionNode(NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageName), NodeFactory_1.NodeFactory.identifierNode(this.controlFlowStorageKey))); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return StringLiteralControlFlowStorageCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageKey", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringLiteralControlFlowStorageCallNode.prototype, "controlFlowStorageName", void 0); + +StringLiteralControlFlowStorageCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowStorageCallNode); +exports.StringLiteralControlFlowStorageCallNode = StringLiteralControlFlowStorageCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts": +/*!*******************************************************************************************!*\ + !*** ./src/custom-nodes/dead-code-injection-nodes/BlockStatementDeadCodeInjectionNode.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementDeadCodeInjectionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(BlockStatementDeadCodeInjectionNode, _AbstractCustomNode_); + + function BlockStatementDeadCodeInjectionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BlockStatementDeadCodeInjectionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementDeadCodeInjectionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BlockStatementDeadCodeInjectionNode, [{ + key: "initialize", + value: function initialize(blockStatementNode, deadCodeInjectionRootAstHostNode) { + this.blockStatementNode = blockStatementNode; + this.deadCodeInjectionRootAstHostNode = deadCodeInjectionRootAstHostNode; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + var random1 = this.randomGenerator.getMathRandom() > 0.5; + var random2 = this.randomGenerator.getMathRandom() > 0.5; + var operator = random1 ? '===' : '!=='; + var leftString = this.randomGenerator.getRandomString(5); + var rightString = random2 ? leftString : this.randomGenerator.getRandomString(5); + + var _ref = random1 === random2 ? [this.blockStatementNode, this.deadCodeInjectionRootAstHostNode] : [this.deadCodeInjectionRootAstHostNode, this.blockStatementNode], + _ref2 = (0, _slicedToArray2.default)(_ref, 2), + consequent = _ref2[0], + alternate = _ref2[1]; + + var structure = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.ifStatementNode(NodeFactory_1.NodeFactory.binaryExpressionNode(operator, NodeFactory_1.NodeFactory.literalNode(leftString), NodeFactory_1.NodeFactory.literalNode(rightString)), consequent, alternate)]); + NodeUtils_1.NodeUtils.parentizeAst(structure); + return [structure]; + } + }]); + return BlockStatementDeadCodeInjectionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "blockStatementNode", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], BlockStatementDeadCodeInjectionNode.prototype, "deadCodeInjectionRootAstHostNode", void 0); + +BlockStatementDeadCodeInjectionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BlockStatementDeadCodeInjectionNode); +exports.BlockStatementDeadCodeInjectionNode = BlockStatementDeadCodeInjectionNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts": +/*!************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebugProtectionFunctionCallTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionCallNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionCallNode, _AbstractCustomNode_); + + function DebugProtectionFunctionCallNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionCallNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionCallNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionCallNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName, callsControllerFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(DebugProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return DebugProtectionFunctionCallNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "callsControllerFunctionName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionCallNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionCallNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionCallNode); +exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts": +/*!****************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionIntervalNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionIntervalNode, _AbstractCustomNode_); + + function DebugProtectionFunctionIntervalNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionIntervalNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionIntervalNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionIntervalNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate(), { + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } + }]); + return DebugProtectionFunctionIntervalNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionIntervalNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionIntervalNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionIntervalNode); +exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts": +/*!********************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DebuggerTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts"); + +var DebuggerTemplateNoEval_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts"); + +var DebugProtectionFunctionTemplate_1 = __webpack_require__(/*! ../../templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate */ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DebugProtectionFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DebugProtectionFunctionNode, _AbstractCustomNode_); + + function DebugProtectionFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, DebugProtectionFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(DebugProtectionFunctionNode, [{ + key: "initialize", + value: function initialize(debugProtectionFunctionName) { + this.debugProtectionFunctionName = debugProtectionFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var debuggerTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? DebuggerTemplate_1.DebuggerTemplate() : DebuggerTemplateNoEval_1.DebuggerTemplateNoEval(); + return string_template_1.default(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate(), { + debuggerTemplate: debuggerTemplate, + debugProtectionFunctionName: this.debugProtectionFunctionName + }); + } + }]); + return DebugProtectionFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DebugProtectionFunctionNode.prototype, "debugProtectionFunctionName", void 0); + +DebugProtectionFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], DebugProtectionFunctionNode); +exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/debug-protection-nodes/group/DebugProtectionCustomNodeGroup.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var DebugProtectionCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(DebugProtectionCustomNodeGroup, _AbstractCustomNodeGr); + + function DebugProtectionCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DebugProtectionCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DebugProtectionCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(DebugProtectionCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var _this2 = this; + + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionNode, function (customNode) { + NodeAppender_1.NodeAppender.append(blockScopeNode, customNode.getNode()); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, function (customNode) { + var programBodyLength = blockScopeNode.body.length; + + var randomIndex = _this2.randomGenerator.getRandomInteger(0, programBodyLength); + + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), randomIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.debugProtection) { + return; + } + + var debugProtectionFunctionName = this.identifierNamesGenerator.generate(); + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var debugProtectionFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionNode); + var debugProtectionFunctionCallNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode); + var debugProtectionFunctionIntervalNode = this.customNodeFactory(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + debugProtectionFunctionNode.initialize(debugProtectionFunctionName); + debugProtectionFunctionCallNode.initialize(debugProtectionFunctionName, callsControllerFunctionName); + debugProtectionFunctionIntervalNode.initialize(debugProtectionFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionNode, debugProtectionFunctionNode); + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionCallNode, debugProtectionFunctionCallNode); + + if (this.options.debugProtectionInterval) { + this.customNodes.set(CustomNode_1.CustomNode.DebugProtectionFunctionIntervalNode, debugProtectionFunctionIntervalNode); + } + + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return DebugProtectionCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], DebugProtectionCustomNodeGroup.prototype, "customNodes", void 0); + +DebugProtectionCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DebugProtectionCustomNodeGroup); +exports.DebugProtectionCustomNodeGroup = DebugProtectionCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts": +/*!**************************************************************!*\ + !*** ./src/custom-nodes/domain-lock-nodes/DomainLockNode.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var DomainLockNodeTemplate_1 = __webpack_require__(/*! ../../templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate */ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DomainLockNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(DomainLockNode, _AbstractCustomNode_); + + function DomainLockNode(identifierNamesGeneratorFactory, randomGenerator, cryptUtils, options) { + var _this; + + (0, _classCallCheck2.default)(this, DomainLockNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DomainLockNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.cryptUtils = cryptUtils; + return _this; + } + + (0, _createClass2.default)(DomainLockNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var domainsString = this.options.domainLock.join(';'); + + var _this$cryptUtils$hide = this.cryptUtils.hideString(domainsString, domainsString.length * 3), + _this$cryptUtils$hide2 = (0, _slicedToArray2.default)(_this$cryptUtils$hide, 2), + hiddenDomainsString = _this$cryptUtils$hide2[0], + diff = _this$cryptUtils$hide2[1]; + + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + return string_template_1.default(DomainLockNodeTemplate_1.DomainLockNodeTemplate(), { + domainLockFunctionName: this.identifierNamesGenerator.generate(), + diff: diff, + domains: hiddenDomainsString, + globalVariableTemplate: globalVariableTemplate, + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return DomainLockNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], DomainLockNode.prototype, "callsControllerFunctionName", void 0); + +DomainLockNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DomainLockNode); +exports.DomainLockNode = DomainLockNode; + +/***/ }), + +/***/ "./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts": +/*!*******************************************************************************!*\ + !*** ./src/custom-nodes/domain-lock-nodes/group/DomainLockCustomNodeGroup.ts ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var DomainLockCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(DomainLockCustomNodeGroup, _AbstractCustomNodeGr); + + function DomainLockCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DomainLockCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DomainLockCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(DomainLockCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.DomainLockNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.domainLock.length) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var domainLockNode = this.customNodeFactory(CustomNode_1.CustomNode.DomainLockNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + domainLockNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.DomainLockNode, domainLockNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return DomainLockCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], DomainLockCustomNodeGroup.prototype, "customNodes", void 0); + +DomainLockCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], DomainLockCustomNodeGroup); +exports.DomainLockCustomNodeGroup = DomainLockCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts": +/*!*****************************************************************************************!*\ + !*** ./src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var SingleNodeCallControllerTemplate_1 = __webpack_require__(/*! ../../templates/SingleNodeCallControllerTemplate */ "./src/templates/SingleNodeCallControllerTemplate.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var NodeCallsControllerFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(NodeCallsControllerFunctionNode, _AbstractCustomNode_); + + function NodeCallsControllerFunctionNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, NodeCallsControllerFunctionNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(NodeCallsControllerFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(NodeCallsControllerFunctionNode, [{ + key: "initialize", + value: function initialize(appendEvent, callsControllerFunctionName) { + this.appendEvent = appendEvent; + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + if (this.appendEvent === ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation) { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), { + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + + return string_template_1.default(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate(), { + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }); + } + }]); + return NodeCallsControllerFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "callsControllerFunctionName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], NodeCallsControllerFunctionNode.prototype, "appendEvent", void 0); + +NodeCallsControllerFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], NodeCallsControllerFunctionNode); +exports.NodeCallsControllerFunctionNode = NodeCallsControllerFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts": +/*!***************************************************************************!*\ + !*** ./src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate */ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var SelfDefendingUnicodeNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(SelfDefendingUnicodeNode, _AbstractCustomNode_); + + function SelfDefendingUnicodeNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, SelfDefendingUnicodeNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SelfDefendingUnicodeNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(SelfDefendingUnicodeNode, [{ + key: "initialize", + value: function initialize(callsControllerFunctionName) { + this.callsControllerFunctionName = callsControllerFunctionName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + selfDefendingFunctionName: this.identifierNamesGenerator.generate(), + singleNodeCallControllerFunctionName: this.callsControllerFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed, + unicodeEscapeSequence: true + })).getObfuscatedCode(); + } + }]); + return SelfDefendingUnicodeNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], SelfDefendingUnicodeNode.prototype, "callsControllerFunctionName", void 0); + +SelfDefendingUnicodeNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], SelfDefendingUnicodeNode); +exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode; + +/***/ }), + +/***/ "./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts": +/*!*************************************************************************************!*\ + !*** ./src/custom-nodes/self-defending-nodes/group/SelfDefendingCustomNodeGroup.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var SelfDefendingCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(SelfDefendingCustomNodeGroup, _AbstractCustomNodeGr); + + function SelfDefendingCustomNodeGroup(customNodeFactory, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, SelfDefendingCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SelfDefendingCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + _this.customNodeFactory = customNodeFactory; + return _this; + } + + (0, _createClass2.default)(SelfDefendingCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + var randomStackTraceIndex = this.getRandomStackTraceIndex(stackTraceData.length); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, function (customNode) { + NodeAppender_1.NodeAppender.appendToOptimalBlockScope(stackTraceData, blockScopeNode, customNode.getNode(), randomStackTraceIndex); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, function (customNode) { + var targetBlockScope; + + if (stackTraceData.length) { + targetBlockScope = NodeAppender_1.NodeAppender.getOptimalBlockScope(stackTraceData, randomStackTraceIndex, 1); + } else { + targetBlockScope = blockScopeNode; + } + + NodeAppender_1.NodeAppender.prepend(targetBlockScope, customNode.getNode()); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.selfDefending) { + return; + } + + var callsControllerFunctionName = this.identifierNamesGenerator.generate(); + var selfDefendingUnicodeNode = this.customNodeFactory(CustomNode_1.CustomNode.SelfDefendingUnicodeNode); + var nodeCallsControllerFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode); + selfDefendingUnicodeNode.initialize(callsControllerFunctionName); + nodeCallsControllerFunctionNode.initialize(this.appendEvent, callsControllerFunctionName); + this.customNodes.set(CustomNode_1.CustomNode.SelfDefendingUnicodeNode, selfDefendingUnicodeNode); + this.customNodes.set(CustomNode_1.CustomNode.NodeCallsControllerFunctionNode, nodeCallsControllerFunctionNode); + } + }]); + return SelfDefendingCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], SelfDefendingCustomNodeGroup.prototype, "customNodes", void 0); + +SelfDefendingCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Object, Object])], SelfDefendingCustomNodeGroup); +exports.SelfDefendingCustomNodeGroup = SelfDefendingCustomNodeGroup; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts": +/*!************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayCallsWrapper.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var AtobTemplate_1 = __webpack_require__(/*! ../../templates/AtobTemplate */ "./src/templates/AtobTemplate.ts"); + +var GlobalVariableNoEvalTemplate_1 = __webpack_require__(/*! ../../templates/GlobalVariableNoEvalTemplate */ "./src/templates/GlobalVariableNoEvalTemplate.ts"); + +var Rc4Template_1 = __webpack_require__(/*! ../../templates/Rc4Template */ "./src/templates/Rc4Template.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts"); + +var StringArrayBase64DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts"); + +var StringArrayCallsWrapperTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts"); + +var StringArrayRC4DecodeNodeTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate */ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringArrayCallsWrapper = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayCallsWrapper, _AbstractCustomNode_); + + function StringArrayCallsWrapper(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayCallsWrapper); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayCallsWrapper).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(StringArrayCallsWrapper, [{ + key: "initialize", + value: function initialize(stringArrayName, stringArrayCallsWrapperName) { + this.stringArrayName = stringArrayName; + this.stringArrayCallsWrapperName = stringArrayCallsWrapperName; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var decodeNodeTemplate = this.getDecodeStringArrayTemplate(); + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayCallsWrapperTemplate_1.StringArrayCallsWrapperTemplate(), { + decodeNodeTemplate: decodeNodeTemplate, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + }, { + key: "getDecodeStringArrayTemplate", + value: function getDecodeStringArrayTemplate() { + var globalVariableTemplate = this.options.target !== ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval ? this.getGlobalVariableTemplate() : GlobalVariableNoEvalTemplate_1.GlobalVariableNoEvalTemplate(); + var atobPolyfill = string_template_1.default(AtobTemplate_1.AtobTemplate(), { + globalVariableTemplate: globalVariableTemplate + }); + var decodeStringArrayTemplate = ''; + var selfDefendingCode = ''; + + if (this.options.selfDefending) { + selfDefendingCode = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.randomGenerator, this.escapeSequenceEncoder), { + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName, + stringArrayName: this.stringArrayName + }); + } + + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + decodeStringArrayTemplate = string_template_1.default(StringArrayRC4DecodeNodeTemplate_1.StringArrayRc4DecodeNodeTemplate(this.randomGenerator), { + atobPolyfill: atobPolyfill, + rc4Polyfill: Rc4Template_1.Rc4Template(), + selfDefendingCode: selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + break; + + case StringArrayEncoding_1.StringArrayEncoding.Base64: + decodeStringArrayTemplate = string_template_1.default(StringArrayBase64DecodeNodeTemplate_1.StringArrayBase64DecodeNodeTemplate(this.randomGenerator), { + atobPolyfill: atobPolyfill, + selfDefendingCode: selfDefendingCode, + stringArrayCallsWrapperName: this.stringArrayCallsWrapperName + }); + } + + return decodeStringArrayTemplate; + } + }]); + return StringArrayCallsWrapper; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayCallsWrapper.prototype, "stringArrayCallsWrapperName", void 0); + +StringArrayCallsWrapper = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayCallsWrapper); +exports.StringArrayCallsWrapper = StringArrayCallsWrapper; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayNode.ts": +/*!****************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayNode.ts ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var StringArrayTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-node/StringArrayTemplate */ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var StringArrayNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayNode, _AbstractCustomNode_); + + function StringArrayNode(identifierNamesGeneratorFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringArrayNode); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringArrayNode, [{ + key: "initialize", + value: function initialize(stringArrayStorage, stringArrayName, stringArrayRotateValue) { + this.stringArrayStorage = stringArrayStorage; + this.stringArrayName = stringArrayName; + this.stringArrayRotateValue = stringArrayRotateValue; + } + }, { + key: "getNode", + value: function getNode() { + this.stringArrayStorage.rotateArray(this.stringArrayRotateValue); + return (0, _get2.default)((0, _getPrototypeOf2.default)(StringArrayNode.prototype), "getNode", this).call(this); + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + return string_template_1.default(StringArrayTemplate_1.StringArrayTemplate(), { + stringArrayName: this.stringArrayName, + stringArray: this.stringArrayStorage.toString() + }); + } + }]); + return StringArrayNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], StringArrayNode.prototype, "stringArrayStorage", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayNode.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayNode.prototype, "stringArrayRotateValue", void 0); + +StringArrayNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringArrayNode); +exports.StringArrayNode = StringArrayNode; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts": +/*!******************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var string_template_1 = tslib_1.__importDefault(__webpack_require__(/*! string-template */ "string-template")); + +var Initializable_1 = __webpack_require__(/*! ../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var NoCustomNodes_1 = __webpack_require__(/*! ../../options/presets/NoCustomNodes */ "./src/options/presets/NoCustomNodes.ts"); + +var SelfDefendingTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts"); + +var StringArrayRotateFunctionTemplate_1 = __webpack_require__(/*! ../../templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate */ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts"); + +var AbstractCustomNode_1 = __webpack_require__(/*! ../AbstractCustomNode */ "./src/custom-nodes/AbstractCustomNode.ts"); + +var JavaScriptObfuscatorFacade_1 = __webpack_require__(/*! ../../JavaScriptObfuscatorFacade */ "./src/JavaScriptObfuscatorFacade.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var StringArrayRotateFunctionNode = +/*#__PURE__*/ +function (_AbstractCustomNode_) { + (0, _inherits2.default)(StringArrayRotateFunctionNode, _AbstractCustomNode_); + + function StringArrayRotateFunctionNode(identifierNamesGeneratorFactory, randomGenerator, escapeSequenceEncoder, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayRotateFunctionNode); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayRotateFunctionNode).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.escapeSequenceEncoder = escapeSequenceEncoder; + return _this; + } + + (0, _createClass2.default)(StringArrayRotateFunctionNode, [{ + key: "initialize", + value: function initialize(stringArrayName, stringArrayRotateValue) { + this.stringArrayName = stringArrayName; + this.stringArrayRotateValue = stringArrayRotateValue; + } + }, { + key: "getNodeStructure", + value: function getNodeStructure() { + return NodeUtils_1.NodeUtils.convertCodeToStructure(this.getTemplate()); + } + }, { + key: "getTemplate", + value: function getTemplate() { + var timesName = this.identifierNamesGenerator.generate(); + var whileFunctionName = this.identifierNamesGenerator.generate(); + var code = ''; + + if (this.options.selfDefending) { + code = string_template_1.default(SelfDefendingTemplate_1.SelfDefendingTemplate(this.escapeSequenceEncoder), { + timesName: timesName, + whileFunctionName: whileFunctionName + }); + } else { + code = "".concat(whileFunctionName, "(++").concat(timesName, ")"); + } + + return JavaScriptObfuscatorFacade_1.JavaScriptObfuscator.obfuscate(string_template_1.default(StringArrayRotateFunctionTemplate_1.StringArrayRotateFunctionTemplate(), { + code: code, + timesName: timesName, + stringArrayName: this.stringArrayName, + stringArrayRotateValue: NumberUtils_1.NumberUtils.toHex(this.stringArrayRotateValue), + whileFunctionName: whileFunctionName + }), (0, _assign.default)({}, NoCustomNodes_1.NO_ADDITIONAL_NODES_PRESET, { + identifierNamesGenerator: this.options.identifierNamesGenerator, + seed: this.options.seed + })).getObfuscatedCode(); + } + }]); + return StringArrayRotateFunctionNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], StringArrayRotateFunctionNode.prototype, "stringArrayName", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], StringArrayRotateFunctionNode.prototype, "stringArrayRotateValue", void 0); + +StringArrayRotateFunctionNode = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayRotateFunctionNode); +exports.StringArrayRotateFunctionNode = StringArrayRotateFunctionNode; + +/***/ }), + +/***/ "./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts": +/*!*********************************************************************************!*\ + !*** ./src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../../../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var CustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/CustomNode */ "./src/enums/custom-nodes/CustomNode.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var AbstractCustomNodeGroup_1 = __webpack_require__(/*! ../../AbstractCustomNodeGroup */ "./src/custom-nodes/AbstractCustomNodeGroup.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var StringArrayCustomNodeGroup = +/*#__PURE__*/ +function (_AbstractCustomNodeGr) { + (0, _inherits2.default)(StringArrayCustomNodeGroup, _AbstractCustomNodeGr); + + function StringArrayCustomNodeGroup(customNodeFactory, stringArrayStorage, identifierNamesGeneratorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayCustomNodeGroup); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayCustomNodeGroup).call(this, identifierNamesGeneratorFactory, randomGenerator, options)); + _this.appendEvent = ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation; + _this.customNodeFactory = customNodeFactory; + _this.stringArrayStorage = stringArrayStorage; + return _this; + } + + (0, _createClass2.default)(StringArrayCustomNodeGroup, [{ + key: "appendCustomNodes", + value: function appendCustomNodes(blockScopeNode, stackTraceData) { + if (!this.stringArrayStorage.getLength()) { + return; + } + + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayNode, function (customNode) { + NodeAppender_1.NodeAppender.prepend(blockScopeNode, customNode.getNode()); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayCallsWrapper, function (customNode) { + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), 1); + }); + this.appendCustomNodeIfExist(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, function (customNode) { + NodeAppender_1.NodeAppender.insertAtIndex(blockScopeNode, customNode.getNode(), 1); + }); + } + }, { + key: "initialize", + value: function initialize() { + this.customNodes = new _map.default(); + + if (!this.options.stringArray) { + return; + } + + var stringArrayNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayNode); + var stringArrayCallsWrapper = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayCallsWrapper); + var stringArrayRotateFunctionNode = this.customNodeFactory(CustomNode_1.CustomNode.StringArrayRotateFunctionNode); + var stringArrayStorageId = this.stringArrayStorage.getStorageId(); + + var _stringArrayStorageId = stringArrayStorageId.split('|'), + _stringArrayStorageId2 = (0, _slicedToArray2.default)(_stringArrayStorageId, 2), + stringArrayName = _stringArrayStorageId2[0], + stringArrayCallsWrapperName = _stringArrayStorageId2[1]; + + var stringArrayRotateValue; + + if (this.options.rotateStringArray) { + stringArrayRotateValue = this.randomGenerator.getRandomInteger(100, 500); + } else { + stringArrayRotateValue = 0; + } + + stringArrayNode.initialize(this.stringArrayStorage, stringArrayName, stringArrayRotateValue); + stringArrayCallsWrapper.initialize(stringArrayName, stringArrayCallsWrapperName); + stringArrayRotateFunctionNode.initialize(stringArrayName, stringArrayRotateValue); + this.customNodes.set(CustomNode_1.CustomNode.StringArrayNode, stringArrayNode); + this.customNodes.set(CustomNode_1.CustomNode.StringArrayCallsWrapper, stringArrayCallsWrapper); + + if (this.options.rotateStringArray) { + this.customNodes.set(CustomNode_1.CustomNode.StringArrayRotateFunctionNode, stringArrayRotateFunctionNode); + } + } + }]); + return StringArrayCustomNodeGroup; +}(AbstractCustomNodeGroup_1.AbstractCustomNodeGroup); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], StringArrayCustomNodeGroup.prototype, "customNodes", void 0); + +StringArrayCustomNodeGroup = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Function, Object, Object])], StringArrayCustomNodeGroup); +exports.StringArrayCustomNodeGroup = StringArrayCustomNodeGroup; + +/***/ }), + +/***/ "./src/decorators/Initializable.ts": +/*!*****************************************!*\ + !*** ./src/decorators/Initializable.ts ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _defineProperty = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/define-property */ "@babel/runtime/core-js/object/define-property")); + +var _getOwnPropertyDescriptor = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-descriptor */ "@babel/runtime/core-js/object/get-own-property-descriptor")); + +var _getMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/get-metadata */ "@babel/runtime/core-js/reflect/get-metadata")); + +var _getOwnPropertyNames = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/get-own-property-names */ "@babel/runtime/core-js/object/get-own-property-names")); + +var _defineMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/define-metadata */ "@babel/runtime/core-js/reflect/define-metadata")); + +var _hasMetadata = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/reflect/has-metadata */ "@babel/runtime/core-js/reflect/has-metadata")); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var defaultDescriptor = { + configurable: true, + enumerable: true +}; +var initializedTargetMetadataKey = '_initialized'; +var initializablePropertiesSetMetadataKey = '_initializablePropertiesSet'; +var wrappedMethodsSetMetadataKey = '_wrappedMethodsSet'; +var constructorMethodName = 'constructor'; + +function initializable() { + var initializeMethodName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initialize'; + var decoratorName = (0, _keys.default)(this)[0]; + return function (target, propertyKey) { + var initializeMethod = target[initializeMethodName]; + + if (!initializeMethod || typeof initializeMethod !== 'function') { + throw new Error("`".concat(initializeMethodName, "` method with initialization logic not ") + "found. `@".concat(decoratorName, "` decorator requires `").concat(initializeMethodName, "` method")); + } + + initializeTargetMetadata(initializedTargetMetadataKey, false, target); + initializeTargetMetadata(initializablePropertiesSetMetadataKey, new _set.default(), target); + initializeTargetMetadata(wrappedMethodsSetMetadataKey, new _set.default(), target); + wrapTargetMethodsInInitializedCheck(target, initializeMethodName); + wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey); + return wrapInitializableProperty(target, propertyKey); + }; +} + +exports.initializable = initializable; + +function initializeTargetMetadata(metadataKey, metadataValue, target) { + var hasInitializedMetadata = (0, _hasMetadata.default)(metadataKey, target); + + if (!hasInitializedMetadata) { + (0, _defineMetadata.default)(metadataKey, metadataValue, target); + } +} + +function wrapTargetMethodsInInitializedCheck(target, initializeMethodName) { + var ownPropertyNames = (0, _getOwnPropertyNames.default)(target); + var prohibitedPropertyNames = [initializeMethodName, constructorMethodName]; + ownPropertyNames.forEach(function (propertyName) { + var initializablePropertiesSet = (0, _getMetadata.default)(initializablePropertiesSetMetadataKey, target); + var wrappedMethodsSet = (0, _getMetadata.default)(wrappedMethodsSetMetadataKey, target); + var isProhibitedPropertyName = prohibitedPropertyNames.includes(propertyName) || initializablePropertiesSet.has(propertyName) || wrappedMethodsSet.has(propertyName); + + if (isProhibitedPropertyName) { + return; + } + + var targetProperty = target[propertyName]; + + if (typeof targetProperty !== 'function') { + return; + } + + var methodDescriptor = (0, _getOwnPropertyDescriptor.default)(target, propertyName) || defaultDescriptor; + var originalMethod = methodDescriptor.value; + (0, _defineProperty.default)(target, propertyName, (0, _assign.default)({}, methodDescriptor, { + value: function value() { + if (!(0, _getMetadata.default)(initializedTargetMetadataKey, this)) { + throw new Error("Class should be initialized with `".concat(initializeMethodName, "()` method")); + } + + return originalMethod.apply(this, arguments); + } + })); + wrappedMethodsSet.add(propertyName); + }); +} + +function wrapInitializeMethodInInitializeCheck(target, initializeMethodName, propertyKey) { + var methodDescriptor = (0, _getOwnPropertyDescriptor.default)(target, initializeMethodName) || defaultDescriptor; + var originalMethod = methodDescriptor.value; + (0, _defineProperty.default)(target, initializeMethodName, (0, _assign.default)({}, methodDescriptor, { + value: function value() { + (0, _defineMetadata.default)(initializedTargetMetadataKey, true, this); + var result = originalMethod.apply(this, arguments); + + if (this[propertyKey]) {} + + return result; + } + })); +} + +function wrapInitializableProperty(target, propertyKey) { + var initializablePropertiesSet = (0, _getMetadata.default)(initializablePropertiesSetMetadataKey, target); + initializablePropertiesSet.add(propertyKey); + var initializablePropertyMetadataKey = "_".concat(propertyKey.toString()); + var propertyDescriptor = (0, _getOwnPropertyDescriptor.default)(target, initializablePropertyMetadataKey) || defaultDescriptor; + (0, _defineProperty.default)(target, propertyKey, (0, _assign.default)({}, propertyDescriptor, { + get: function get() { + if (this[initializablePropertyMetadataKey] === undefined) { + throw new Error("Property `".concat(propertyKey.toString(), "` is not initialized! Initialize it first!")); + } + + return this[initializablePropertyMetadataKey]; + }, + set: function set(newVal) { + this[initializablePropertyMetadataKey] = newVal; + } + })); + return propertyDescriptor; +} + +/***/ }), + +/***/ "./src/enums/ObfuscationTarget.ts": +/*!****************************************!*\ + !*** ./src/enums/ObfuscationTarget.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscationTarget; + +(function (ObfuscationTarget) { + ObfuscationTarget["Browser"] = "browser"; + ObfuscationTarget["BrowserNoEval"] = "browser-no-eval"; + ObfuscationTarget["Node"] = "node"; +})(ObfuscationTarget = exports.ObfuscationTarget || (exports.ObfuscationTarget = {})); + +/***/ }), + +/***/ "./src/enums/StringArrayEncoding.ts": +/*!******************************************!*\ + !*** ./src/enums/StringArrayEncoding.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var StringArrayEncoding; + +(function (StringArrayEncoding) { + StringArrayEncoding["Base64"] = "base64"; + StringArrayEncoding["Rc4"] = "rc4"; +})(StringArrayEncoding = exports.StringArrayEncoding || (exports.StringArrayEncoding = {})); + +/***/ }), + +/***/ "./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts": +/*!*************************************************************************!*\ + !*** ./src/enums/analyzers/stack-trace-analyzer/CalleeDataExtractor.ts ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CalleeDataExtractor; + +(function (CalleeDataExtractor) { + CalleeDataExtractor["FunctionDeclarationCalleeDataExtractor"] = "FunctionDeclarationCalleeDataExtractor"; + CalleeDataExtractor["FunctionExpressionCalleeDataExtractor"] = "FunctionExpressionCalleeDataExtractor"; + CalleeDataExtractor["ObjectExpressionCalleeDataExtractor"] = "ObjectExpressionCalleeDataExtractor"; +})(CalleeDataExtractor = exports.CalleeDataExtractor || (exports.CalleeDataExtractor = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/ControlFlowCustomNode.ts": +/*!*********************************************************!*\ + !*** ./src/enums/custom-nodes/ControlFlowCustomNode.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ControlFlowCustomNode; + +(function (ControlFlowCustomNode) { + ControlFlowCustomNode["BinaryExpressionFunctionNode"] = "BinaryExpressionFunctionNode"; + ControlFlowCustomNode["BlockStatementControlFlowFlatteningNode"] = "BlockStatementControlFlowFlatteningNode"; + ControlFlowCustomNode["CallExpressionControlFlowStorageCallNode"] = "CallExpressionControlFlowStorageCallNode"; + ControlFlowCustomNode["CallExpressionFunctionNode"] = "CallExpressionFunctionNode"; + ControlFlowCustomNode["ControlFlowStorageNode"] = "ControlFlowStorageNode"; + ControlFlowCustomNode["ExpressionWithOperatorControlFlowStorageCallNode"] = "ExpressionWithOperatorControlFlowStorageCallNode"; + ControlFlowCustomNode["LogicalExpressionFunctionNode"] = "LogicalExpressionFunctionNode"; + ControlFlowCustomNode["StringLiteralControlFlowStorageCallNode"] = "StringLiteralControlFlowStorageCallNode"; + ControlFlowCustomNode["StringLiteralNode"] = "StringLiteralNode"; +})(ControlFlowCustomNode = exports.ControlFlowCustomNode || (exports.ControlFlowCustomNode = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/CustomNode.ts": +/*!**********************************************!*\ + !*** ./src/enums/custom-nodes/CustomNode.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CustomNode; + +(function (CustomNode) { + CustomNode["ConsoleOutputDisableExpressionNode"] = "ConsoleOutputDisableExpressionNode"; + CustomNode["DebugProtectionFunctionCallNode"] = "DebugProtectionFunctionCallNode"; + CustomNode["DebugProtectionFunctionIntervalNode"] = "DebugProtectionFunctionIntervalNode"; + CustomNode["DebugProtectionFunctionNode"] = "DebugProtectionFunctionNode"; + CustomNode["DomainLockNode"] = "DomainLockNode"; + CustomNode["NodeCallsControllerFunctionNode"] = "NodeCallsControllerFunctionNode"; + CustomNode["SelfDefendingUnicodeNode"] = "SelfDefendingUnicodeNode"; + CustomNode["StringArrayCallsWrapper"] = "StringArrayCallsWrapper"; + CustomNode["StringArrayNode"] = "StringArrayNode"; + CustomNode["StringArrayRotateFunctionNode"] = "StringArrayRotateFunctionNode"; +})(CustomNode = exports.CustomNode || (exports.CustomNode = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/CustomNodeGroup.ts": +/*!***************************************************!*\ + !*** ./src/enums/custom-nodes/CustomNodeGroup.ts ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var CustomNodeGroup; + +(function (CustomNodeGroup) { + CustomNodeGroup["ConsoleOutputCustomNodeGroup"] = "ConsoleOutputCustomNodeGroup"; + CustomNodeGroup["DebugProtectionCustomNodeGroup"] = "DebugProtectionCustomNodeGroup"; + CustomNodeGroup["DomainLockCustomNodeGroup"] = "DomainLockCustomNodeGroup"; + CustomNodeGroup["SelfDefendingCustomNodeGroup"] = "SelfDefendingCustomNodeGroup"; + CustomNodeGroup["StringArrayCustomNodeGroup"] = "StringArrayCustomNodeGroup"; +})(CustomNodeGroup = exports.CustomNodeGroup || (exports.CustomNodeGroup = {})); + +/***/ }), + +/***/ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts": +/*!***************************************************************!*\ + !*** ./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var DeadCodeInjectionCustomNode; + +(function (DeadCodeInjectionCustomNode) { + DeadCodeInjectionCustomNode["BlockStatementDeadCodeInjectionNode"] = "BlockStatementDeadCodeInjectionNode"; +})(DeadCodeInjectionCustomNode = exports.DeadCodeInjectionCustomNode || (exports.DeadCodeInjectionCustomNode = {})); + +/***/ }), + +/***/ "./src/enums/event-emitters/ObfuscationEvent.ts": +/*!******************************************************!*\ + !*** ./src/enums/event-emitters/ObfuscationEvent.ts ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscationEvent; + +(function (ObfuscationEvent) { + ObfuscationEvent["AfterObfuscation"] = "afterObfuscation"; + ObfuscationEvent["BeforeObfuscation"] = "beforeObfuscation"; +})(ObfuscationEvent = exports.ObfuscationEvent || (exports.ObfuscationEvent = {})); + +/***/ }), + +/***/ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts": +/*!**************************************************************************************!*\ + !*** ./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var IdentifierNamesGenerator; + +(function (IdentifierNamesGenerator) { + IdentifierNamesGenerator["HexadecimalIdentifierNamesGenerator"] = "hexadecimal"; + IdentifierNamesGenerator["MangledIdentifierNamesGenerator"] = "mangled"; +})(IdentifierNamesGenerator = exports.IdentifierNamesGenerator || (exports.IdentifierNamesGenerator = {})); + +/***/ }), + +/***/ "./src/enums/logger/LoggingMessage.ts": +/*!********************************************!*\ + !*** ./src/enums/logger/LoggingMessage.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LoggingMessage; + +(function (LoggingMessage) { + LoggingMessage["EmptySourceCode"] = "Empty source code. Obfuscation canceled..."; + LoggingMessage["ObfuscationCompleted"] = "Obfuscation completed. Total time: %s sec."; + LoggingMessage["ObfuscationStarted"] = "Obfuscation started..."; + LoggingMessage["RandomGeneratorSeed"] = "Random generator seed: %s..."; + LoggingMessage["TransformationStage"] = "Transformation stage: %s..."; + LoggingMessage["Version"] = "Version: %s"; +})(LoggingMessage = exports.LoggingMessage || (exports.LoggingMessage = {})); + +/***/ }), + +/***/ "./src/enums/logger/LoggingPrefix.ts": +/*!*******************************************!*\ + !*** ./src/enums/logger/LoggingPrefix.ts ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LoggingPrefix; + +(function (LoggingPrefix) { + LoggingPrefix["Base"] = "[javascript-obfuscator]"; + LoggingPrefix["CLI"] = "[javascript-obfuscator-cli]"; +})(LoggingPrefix = exports.LoggingPrefix || (exports.LoggingPrefix = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/NodeTransformer.ts": +/*!********************************************************!*\ + !*** ./src/enums/node-transformers/NodeTransformer.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var NodeTransformer; + +(function (NodeTransformer) { + NodeTransformer["BlockStatementControlFlowTransformer"] = "BlockStatementControlFlowTransformer"; + NodeTransformer["ClassDeclarationTransformer"] = "ClassDeclarationTransformer"; + NodeTransformer["CommentsTransformer"] = "CommentsTransformer"; + NodeTransformer["CustomNodesTransformer"] = "CustomNodesTransformer"; + NodeTransformer["DeadCodeInjectionTransformer"] = "DeadCodeInjectionTransformer"; + NodeTransformer["EvalCallExpressionTransformer"] = "EvalCallExpressionTransformer"; + NodeTransformer["FunctionControlFlowTransformer"] = "FunctionControlFlowTransformer"; + NodeTransformer["CatchClauseTransformer"] = "CatchClauseTransformer"; + NodeTransformer["FunctionDeclarationTransformer"] = "FunctionDeclarationTransformer"; + NodeTransformer["FunctionTransformer"] = "FunctionTransformer"; + NodeTransformer["ImportDeclarationTransformer"] = "ImportDeclarationTransformer"; + NodeTransformer["LabeledStatementTransformer"] = "LabeledStatementTransformer"; + NodeTransformer["LiteralTransformer"] = "LiteralTransformer"; + NodeTransformer["MemberExpressionTransformer"] = "MemberExpressionTransformer"; + NodeTransformer["MetadataTransformer"] = "MetadataTransformer"; + NodeTransformer["MethodDefinitionTransformer"] = "MethodDefinitionTransformer"; + NodeTransformer["ObfuscatingGuardsTransformer"] = "ObfuscatingGuardsTransformer"; + NodeTransformer["ObjectExpressionKeysTransformer"] = "ObjectExpressionKeysTransformer"; + NodeTransformer["ObjectExpressionTransformer"] = "ObjectExpressionTransformer"; + NodeTransformer["ParentificationTransformer"] = "ParentificationTransformer"; + NodeTransformer["TemplateLiteralTransformer"] = "TemplateLiteralTransformer"; + NodeTransformer["VariableDeclarationTransformer"] = "VariableDeclarationTransformer"; +})(NodeTransformer = exports.NodeTransformer || (exports.NodeTransformer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/TransformationStage.ts": +/*!************************************************************!*\ + !*** ./src/enums/node-transformers/TransformationStage.ts ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var TransformationStage; + +(function (TransformationStage) { + TransformationStage["Preparing"] = "Preparing"; + TransformationStage["DeadCodeInjection"] = "DeadCodeInjection"; + TransformationStage["ControlFlowFlattening"] = "ControlFlowFlattening"; + TransformationStage["Converting"] = "Converting"; + TransformationStage["Obfuscating"] = "Obfuscating"; + TransformationStage["Finalizing"] = "Finalizing"; +})(TransformationStage = exports.TransformationStage || (exports.TransformationStage = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/VisitorDirection.ts": +/*!*********************************************************!*\ + !*** ./src/enums/node-transformers/VisitorDirection.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var VisitorDirection; + +(function (VisitorDirection) { + VisitorDirection["Enter"] = "enter"; + VisitorDirection["Leave"] = "leave"; +})(VisitorDirection = exports.VisitorDirection || (exports.VisitorDirection = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts": +/*!**********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts ***! + \**********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var PropertiesExtractor; + +(function (PropertiesExtractor) { + PropertiesExtractor["AssignmentExpressionPropertiesExtractor"] = "AssignmentExpressionPropertiesExtractor"; + PropertiesExtractor["VariableDeclaratorPropertiesExtractor"] = "VariableDeclaratorPropertiesExtractor"; +})(PropertiesExtractor = exports.PropertiesExtractor || (exports.PropertiesExtractor = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts": +/*!***********************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ControlFlowReplacer; + +(function (ControlFlowReplacer) { + ControlFlowReplacer["BinaryExpressionControlFlowReplacer"] = "BinaryExpressionControlFlowReplacer"; + ControlFlowReplacer["CallExpressionControlFlowReplacer"] = "CallExpressionControlFlowReplacer"; + ControlFlowReplacer["LogicalExpressionControlFlowReplacer"] = "LogicalExpressionControlFlowReplacer"; + ControlFlowReplacer["StringLiteralControlFlowReplacer"] = "StringLiteralControlFlowReplacer"; +})(ControlFlowReplacer = exports.ControlFlowReplacer || (exports.ControlFlowReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var IdentifierObfuscatingReplacer; + +(function (IdentifierObfuscatingReplacer) { + IdentifierObfuscatingReplacer["BaseIdentifierObfuscatingReplacer"] = "BaseIdentifierObfuscatingReplacer"; +})(IdentifierObfuscatingReplacer = exports.IdentifierObfuscatingReplacer || (exports.IdentifierObfuscatingReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts": +/*!******************************************************************************************************************!*\ + !*** ./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts ***! + \******************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var LiteralObfuscatingReplacer; + +(function (LiteralObfuscatingReplacer) { + LiteralObfuscatingReplacer["BooleanLiteralObfuscatingReplacer"] = "BooleanLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["NumberLiteralObfuscatingReplacer"] = "NumberLiteralObfuscatingReplacer"; + LiteralObfuscatingReplacer["StringLiteralObfuscatingReplacer"] = "StringLiteralObfuscatingReplacer"; +})(LiteralObfuscatingReplacer = exports.LiteralObfuscatingReplacer || (exports.LiteralObfuscatingReplacer = {})); + +/***/ }), + +/***/ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts": +/*!***************************************************************************************************!*\ + !*** ./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ObfuscatingGuard; + +(function (ObfuscatingGuard) { + ObfuscatingGuard["BlackListNodeGuard"] = "BlackListNodeGuard"; + ObfuscatingGuard["ConditionalCommentNodeGuard"] = "ConditionalCommentNodeGuard"; +})(ObfuscatingGuard = exports.ObfuscatingGuard || (exports.ObfuscatingGuard = {})); + +/***/ }), + +/***/ "./src/enums/node/NodeType.ts": +/*!************************************!*\ + !*** ./src/enums/node/NodeType.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var NodeType; + +(function (NodeType) { + NodeType["ArrayExpression"] = "ArrayExpression"; + NodeType["ArrayPattern"] = "ArrayPattern"; + NodeType["ArrowFunctionExpression"] = "ArrowFunctionExpression"; + NodeType["AssignmentExpression"] = "AssignmentExpression"; + NodeType["AssignmentPattern"] = "AssignmentPattern"; + NodeType["AwaitExpression"] = "AwaitExpression"; + NodeType["BinaryExpression"] = "BinaryExpression"; + NodeType["BlockStatement"] = "BlockStatement"; + NodeType["BreakStatement"] = "BreakStatement"; + NodeType["CallExpression"] = "CallExpression"; + NodeType["CatchClause"] = "CatchClause"; + NodeType["ClassDeclaration"] = "ClassDeclaration"; + NodeType["ContinueStatement"] = "ContinueStatement"; + NodeType["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + NodeType["ExpressionStatement"] = "ExpressionStatement"; + NodeType["FunctionDeclaration"] = "FunctionDeclaration"; + NodeType["FunctionExpression"] = "FunctionExpression"; + NodeType["Identifier"] = "Identifier"; + NodeType["IfStatement"] = "IfStatement"; + NodeType["ImportDeclaration"] = "ImportDeclaration"; + NodeType["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; + NodeType["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; + NodeType["ImportSpecifier"] = "ImportSpecifier"; + NodeType["LabeledStatement"] = "LabeledStatement"; + NodeType["Literal"] = "Literal"; + NodeType["LogicalExpression"] = "LogicalExpression"; + NodeType["MemberExpression"] = "MemberExpression"; + NodeType["MethodDefinition"] = "MethodDefinition"; + NodeType["ObjectExpression"] = "ObjectExpression"; + NodeType["ObjectPattern"] = "ObjectPattern"; + NodeType["Program"] = "Program"; + NodeType["Property"] = "Property"; + NodeType["RestElement"] = "RestElement"; + NodeType["ReturnStatement"] = "ReturnStatement"; + NodeType["Super"] = "Super"; + NodeType["SwitchCase"] = "SwitchCase"; + NodeType["SwitchStatement"] = "SwitchStatement"; + NodeType["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + NodeType["TemplateLiteral"] = "TemplateLiteral"; + NodeType["TryStatement"] = "TryStatement"; + NodeType["UnaryExpression"] = "UnaryExpression"; + NodeType["UpdateExpression"] = "UpdateExpression"; + NodeType["VariableDeclaration"] = "VariableDeclaration"; + NodeType["VariableDeclarator"] = "VariableDeclarator"; + NodeType["WhileStatement"] = "WhileStatement"; +})(NodeType = exports.NodeType || (exports.NodeType = {})); + +/***/ }), + +/***/ "./src/enums/source-map/SourceMapMode.ts": +/*!***********************************************!*\ + !*** ./src/enums/source-map/SourceMapMode.ts ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var SourceMapMode; + +(function (SourceMapMode) { + SourceMapMode["Inline"] = "inline"; + SourceMapMode["Separate"] = "separate"; +})(SourceMapMode = exports.SourceMapMode || (exports.SourceMapMode = {})); + +/***/ }), + +/***/ "./src/event-emitters/ObfuscationEventEmitter.ts": +/*!*******************************************************!*\ + !*** ./src/event-emitters/ObfuscationEventEmitter.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var events_1 = __webpack_require__(/*! events */ "events"); + +inversify_1.decorate(inversify_1.injectable(), events_1.EventEmitter); + +var ObfuscationEventEmitter = +/*#__PURE__*/ +function (_events_1$EventEmitte) { + (0, _inherits2.default)(ObfuscationEventEmitter, _events_1$EventEmitte); + + function ObfuscationEventEmitter() { + (0, _classCallCheck2.default)(this, ObfuscationEventEmitter); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObfuscationEventEmitter).apply(this, arguments)); + } + + return ObfuscationEventEmitter; +}(events_1.EventEmitter); + +ObfuscationEventEmitter = tslib_1.__decorate([inversify_1.injectable()], ObfuscationEventEmitter); +exports.ObfuscationEventEmitter = ObfuscationEventEmitter; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts": +/*!****************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator = +/*#__PURE__*/ +function () { + function AbstractIdentifierNamesGenerator(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractIdentifierNamesGenerator); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractIdentifierNamesGenerator, [{ + key: "isValidIdentifierName", + value: function isValidIdentifierName(name) { + return this.options.reservedNames.length ? !this.options.reservedNames.some(function (reservedName) { + return new RegExp(reservedName, 'g').exec(name) !== null; + }) : true; + } + }]); + return AbstractIdentifierNamesGenerator; +}(); + +AbstractIdentifierNamesGenerator = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractIdentifierNamesGenerator); +exports.AbstractIdentifierNamesGenerator = AbstractIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts": +/*!*******************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var HexadecimalIdentifierNamesGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); + +var HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = +/*#__PURE__*/ +function (_AbstractIdentifierNa) { + (0, _inherits2.default)(HexadecimalIdentifierNamesGenerator, _AbstractIdentifierNa); + + function HexadecimalIdentifierNamesGenerator(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, HexadecimalIdentifierNamesGenerator); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HexadecimalIdentifierNamesGenerator).call(this, randomGenerator, options)); + _this.randomVariableNameSet = new _set.default(); + return _this; + } + + (0, _createClass2.default)(HexadecimalIdentifierNamesGenerator, [{ + key: "generate", + value: function generate() { + var rangeMinInteger = 10000; + var rangeMaxInteger = 99999999; + var randomInteger = this.randomGenerator.getRandomInteger(rangeMinInteger, rangeMaxInteger); + var hexadecimalNumber = NumberUtils_1.NumberUtils.toHex(randomInteger); + var baseIdentifierName = hexadecimalNumber.substr(0, HexadecimalIdentifierNamesGenerator_1.baseIdentifierNameLength); + var identifierName = "_".concat(Utils_1.Utils.hexadecimalPrefix).concat(baseIdentifierName); + + if (this.randomVariableNameSet.has(identifierName)) { + return this.generate(); + } + + this.randomVariableNameSet.add(identifierName); + return identifierName; + } + }, { + key: "generateWithPrefix", + value: function generateWithPrefix() { + var identifierName = this.generate(); + return "".concat(this.options.identifiersPrefix).concat(identifierName).replace('__', '_'); + } + }]); + return HexadecimalIdentifierNamesGenerator; +}(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator); + +HexadecimalIdentifierNamesGenerator.baseIdentifierNameLength = 6; +HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], HexadecimalIdentifierNamesGenerator); +exports.HexadecimalIdentifierNamesGenerator = HexadecimalIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts": +/*!***************************************************************************************!*\ + !*** ./src/generators/identifier-names-generators/MangledIdentifierNamesGenerator.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var MangledIdentifierNamesGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractIdentifierNamesGenerator_1 = __webpack_require__(/*! ./AbstractIdentifierNamesGenerator */ "./src/generators/identifier-names-generators/AbstractIdentifierNamesGenerator.ts"); + +var MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = +/*#__PURE__*/ +function (_AbstractIdentifierNa) { + (0, _inherits2.default)(MangledIdentifierNamesGenerator, _AbstractIdentifierNa); + + function MangledIdentifierNamesGenerator(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, MangledIdentifierNamesGenerator); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MangledIdentifierNamesGenerator).call(this, randomGenerator, options)); + _this.previousMangledName = MangledIdentifierNamesGenerator_1.initMangledNameCharacter; + return _this; + } + + (0, _createClass2.default)(MangledIdentifierNamesGenerator, [{ + key: "generate", + value: function generate() { + var identifierName = this.generateNewMangledName(this.previousMangledName); + this.previousMangledName = identifierName; + return identifierName; + } + }, { + key: "generateWithPrefix", + value: function generateWithPrefix() { + var prefix = this.options.identifiersPrefix ? "".concat(this.options.identifiersPrefix, "_") : ''; + var identifierName = this.generate(); + return "".concat(prefix).concat(identifierName); + } + }, { + key: "isValidIdentifierName", + value: function isValidIdentifierName(mangledName) { + return (0, _get2.default)((0, _getPrototypeOf2.default)(MangledIdentifierNamesGenerator.prototype), "isValidIdentifierName", this).call(this, mangledName) && !MangledIdentifierNamesGenerator_1.reservedNames.includes(mangledName); + } + }, { + key: "generateNewMangledName", + value: function generateNewMangledName(previousMangledName) { + var generateNewMangledName = function generateNewMangledName(name) { + var nameSequence = MangledIdentifierNamesGenerator_1.nameSequence; + var nameLength = name.length; + + var zeroSequence = function zeroSequence(num) { + return '0'.repeat(num); + }; + + var index = nameLength - 1; + + do { + var character = name.charAt(index); + var indexInSequence = nameSequence.indexOf(character); + var lastNameSequenceIndex = nameSequence.length - 1; + + if (indexInSequence !== lastNameSequenceIndex) { + var previousNamePart = name.substring(0, index); + var nextCharacter = nameSequence[indexInSequence + 1]; + var zeroSequenceLength = nameLength - (index + 1); + var zeroSequenceCharacters = zeroSequence(zeroSequenceLength); + return previousNamePart + nextCharacter + zeroSequenceCharacters; + } + + --index; + } while (index >= 0); + + return "a".concat(zeroSequence(nameLength)); + }; + + var newMangledName = generateNewMangledName(previousMangledName); + + if (!this.isValidIdentifierName(newMangledName)) { + newMangledName = this.generateNewMangledName(newMangledName); + } + + return newMangledName; + } + }]); + return MangledIdentifierNamesGenerator; +}(AbstractIdentifierNamesGenerator_1.AbstractIdentifierNamesGenerator); + +MangledIdentifierNamesGenerator.initMangledNameCharacter = '9'; +MangledIdentifierNamesGenerator.nameSequence = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''); +MangledIdentifierNamesGenerator.reservedNames = ['byte', 'case', 'char', 'do', 'else', 'enum', 'eval', 'for', 'goto', 'if', 'in', 'int', 'let', 'long', 'new', 'null', 'this', 'true', 'try', 'var', 'void', 'with']; +MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MangledIdentifierNamesGenerator); +exports.MangledIdentifierNamesGenerator = MangledIdentifierNamesGenerator; + +/***/ }), + +/***/ "./src/logger/Logger.ts": +/*!******************************!*\ + !*** ./src/logger/Logger.ts ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var Logger_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var chalk_1 = tslib_1.__importDefault(__webpack_require__(/*! chalk */ "chalk")); + +var LoggingPrefix_1 = __webpack_require__(/*! ../enums/logger/LoggingPrefix */ "./src/enums/logger/LoggingPrefix.ts"); + +var Logger = Logger_1 = +/*#__PURE__*/ +function () { + function Logger(options) { + (0, _classCallCheck2.default)(this, Logger); + this.options = options; + } + + (0, _createClass2.default)(Logger, [{ + key: "info", + value: function info(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorInfo, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }, { + key: "success", + value: function success(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorSuccess, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }, { + key: "warn", + value: function warn(loggingMessage, value) { + if (!this.options.log) { + return; + } + + Logger_1.log(Logger_1.colorWarn, LoggingPrefix_1.LoggingPrefix.Base, loggingMessage, value); + } + }], [{ + key: "log", + value: function log(loggingLevelColor, loggingPrefix, loggingMessage, value) { + var processedMessage = loggingLevelColor("\n".concat(loggingPrefix, " ").concat(loggingMessage)); + console.log(processedMessage, value || ''); + } + }]); + return Logger; +}(); + +Logger.colorInfo = chalk_1.default.cyan; +Logger.colorSuccess = chalk_1.default.green; +Logger.colorWarn = chalk_1.default.yellow; +Logger = Logger_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], Logger); +exports.Logger = Logger; + +/***/ }), + +/***/ "./src/node-transformers/AbstractNodeTransformer.ts": +/*!**********************************************************!*\ + !*** ./src/node-transformers/AbstractNodeTransformer.ts ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractNodeTransformer = function AbstractNodeTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractNodeTransformer); + this.randomGenerator = randomGenerator; + this.options = options; +}; + +AbstractNodeTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractNodeTransformer); +exports.AbstractNodeTransformer = AbstractNodeTransformer; + +/***/ }), + +/***/ "./src/node-transformers/TransformersRunner.ts": +/*!*****************************************************!*\ + !*** ./src/node-transformers/TransformersRunner.ts ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var VisitorDirection_1 = __webpack_require__(/*! ../enums/node-transformers/VisitorDirection */ "./src/enums/node-transformers/VisitorDirection.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var TransformersRunner = +/*#__PURE__*/ +function () { + function TransformersRunner(nodeTransformerFactory) { + (0, _classCallCheck2.default)(this, TransformersRunner); + this.nodeTransformerFactory = nodeTransformerFactory; + } + + (0, _createClass2.default)(TransformersRunner, [{ + key: "transform", + value: function transform(astTree, nodeTransformers, transformationStage) { + if (!nodeTransformers.length) { + return astTree; + } + + var enterVisitors = []; + var leaveVisitors = []; + var nodeTransformersLength = nodeTransformers.length; + var visitor; + + for (var i = 0; i < nodeTransformersLength; i++) { + visitor = this.nodeTransformerFactory(nodeTransformers[i]).getVisitor(transformationStage); + + if (!visitor) { + continue; + } + + if (visitor.enter) { + enterVisitors.push({ + enter: visitor.enter + }); + } + + if (visitor.leave) { + leaveVisitors.push({ + leave: visitor.leave + }); + } + } + + if (!enterVisitors.length && !leaveVisitors.length) { + return astTree; + } + + estraverse.replace(astTree, { + enter: this.mergeVisitorsForDirection(enterVisitors, VisitorDirection_1.VisitorDirection.Enter), + leave: this.mergeVisitorsForDirection(leaveVisitors, VisitorDirection_1.VisitorDirection.Leave) + }); + return astTree; + } + }, { + key: "mergeVisitorsForDirection", + value: function mergeVisitorsForDirection(visitors, direction) { + var visitorsLength = visitors.length; + + if (!visitorsLength) { + return function (node, parentNode) { + return node; + }; + } + + return function (node, parentNode) { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + + for (var i = 0; i < visitorsLength; i++) { + var visitorFunction = visitors[i][direction]; + + if (!visitorFunction) { + continue; + } + + var visitorResult = visitorFunction(node, parentNode); + + if (!visitorResult || !NodeGuards_1.NodeGuards.isNode(visitorResult)) { + continue; + } + + node = visitorResult; + } + + return node; + }; + } + }]); + return TransformersRunner; +}(); + +TransformersRunner = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), tslib_1.__metadata("design:paramtypes", [Function])], TransformersRunner); +exports.TransformersRunner = TransformersRunner; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts": +/*!*************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/BlockStatementControlFlowTransformer.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BlockStatementControlFlowTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(BlockStatementControlFlowTransformer, _AbstractNodeTransfor); + + function BlockStatementControlFlowTransformer(controlFlowCustomNodeFactory, arrayUtils, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, BlockStatementControlFlowTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BlockStatementControlFlowTransformer).call(this, randomGenerator, options)); + _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + _this.arrayUtils = arrayUtils; + return _this; + } + + (0, _createClass2.default)(BlockStatementControlFlowTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.ControlFlowFlattening: + return { + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(blockStatementNode, parentNode) { + if (this.randomGenerator.getMathRandom() > this.options.controlFlowFlatteningThreshold || !BlockStatementControlFlowTransformer_1.canTransformBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + + var blockStatementBody = blockStatementNode.body; + var originalKeys = this.arrayUtils.createWithRange(blockStatementBody.length); + var shuffledKeys = this.arrayUtils.shuffle(originalKeys); + var originalKeysIndexesInShuffledArray = originalKeys.map(function (key) { + return shuffledKeys.indexOf(key); + }); + var blockStatementControlFlowFlatteningCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode); + blockStatementControlFlowFlatteningCustomNode.initialize(blockStatementBody, shuffledKeys, originalKeysIndexesInShuffledArray); + var newBlockStatementNode = blockStatementControlFlowFlatteningCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } + }], [{ + key: "blockStatementHasProhibitedStatements", + value: function blockStatementHasProhibitedStatements(blockStatementNode) { + return blockStatementNode.body.some(function (statement) { + var isBreakOrContinueStatement = NodeGuards_1.NodeGuards.isBreakStatementNode(statement) || NodeGuards_1.NodeGuards.isContinueStatementNode(statement); + var isVariableDeclarationWithLetOrConstKind = NodeGuards_1.NodeGuards.isVariableDeclarationNode(statement) && (statement.kind === 'const' || statement.kind === 'let'); + var isClassDeclaration = NodeGuards_1.NodeGuards.isClassDeclarationNode(statement); + return NodeGuards_1.NodeGuards.isFunctionDeclarationNode(statement) || isBreakOrContinueStatement || isVariableDeclarationWithLetOrConstKind || isClassDeclaration; + }); + } + }, { + key: "canTransformBlockStatementNode", + value: function canTransformBlockStatementNode(blockStatementNode) { + var canTransform = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isWhileStatementNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && BlockStatementControlFlowTransformer_1.blockStatementHasProhibitedStatements(node)) { + canTransform = false; + } + } + }); + + if (blockStatementNode.body.length <= 4) { + canTransform = false; + } + + return canTransform; + } + }]); + return BlockStatementControlFlowTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], BlockStatementControlFlowTransformer); +exports.BlockStatementControlFlowTransformer = BlockStatementControlFlowTransformer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts": +/*!*******************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/FunctionControlFlowTransformer.ts ***! + \*******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var FunctionControlFlowTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ControlFlowReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/ControlFlowReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionControlFlowTransformer, _AbstractNodeTransfor); + + function FunctionControlFlowTransformer(controlFlowStorageFactory, controlFlowReplacerFactory, controlFlowCustomNodeFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionControlFlowTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionControlFlowTransformer).call(this, randomGenerator, options)); + _this.controlFlowData = new _map.default(); + _this.visitedFunctionNodes = new _set.default(); + _this.hostNodesWithControlFlowNode = new _set.default(); + _this.controlFlowStorageFactory = controlFlowStorageFactory; + _this.controlFlowReplacerFactory = controlFlowReplacerFactory; + _this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + return _this; + } + + (0, _createClass2.default)(FunctionControlFlowTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.ControlFlowFlattening: + return { + leave: function leave(node, parentNode) { + if (parentNode && (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node))) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionNode, parentNode) { + this.visitedFunctionNodes.add(functionNode); + + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body)) { + return functionNode; + } + + var hostNode = this.getHostNode(functionNode.body); + var controlFlowStorage = this.getControlFlowStorage(hostNode); + this.controlFlowData.set(hostNode, controlFlowStorage); + this.transformFunctionBody(functionNode.body, controlFlowStorage); + + if (!controlFlowStorage.getLength()) { + return functionNode; + } + + var controlFlowStorageCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ControlFlowStorageNode); + controlFlowStorageCustomNode.initialize(controlFlowStorage); + NodeAppender_1.NodeAppender.prepend(hostNode, controlFlowStorageCustomNode.getNode()); + this.hostNodesWithControlFlowNode.add(hostNode); + return functionNode; + } + }, { + key: "getControlFlowStorage", + value: function getControlFlowStorage(hostNode) { + var controlFlowStorage = this.controlFlowStorageFactory(); + + if (this.controlFlowData.has(hostNode)) { + if (this.hostNodesWithControlFlowNode.has(hostNode)) { + hostNode.body.shift(); + } + + var hostControlFlowStorage = this.controlFlowData.get(hostNode); + controlFlowStorage.mergeWith(hostControlFlowStorage, true); + } + + return controlFlowStorage; + } + }, { + key: "getHostNode", + value: function getHostNode(functionNodeBody) { + var blockScopesOfNode = NodeUtils_1.NodeUtils.getBlockScopesOfNode(functionNodeBody); + + if (blockScopesOfNode.length === 1) { + return functionNodeBody; + } else { + blockScopesOfNode.pop(); + } + + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMinDepth) { + blockScopesOfNode.splice(0, FunctionControlFlowTransformer_1.hostNodeSearchMinDepth); + } + + if (blockScopesOfNode.length > FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth) { + blockScopesOfNode.length = FunctionControlFlowTransformer_1.hostNodeSearchMaxDepth; + } + + return this.randomGenerator.getRandomGenerator().pickone(blockScopesOfNode); + } + }, { + key: "isVisitedFunctionNode", + value: function isVisitedFunctionNode(node) { + return (NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) || NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) || NodeGuards_1.NodeGuards.isArrowFunctionExpressionNode(node)) && this.visitedFunctionNodes.has(node); + } + }, { + key: "transformFunctionBody", + value: function transformFunctionBody(functionNodeBody, controlFlowStorage) { + var _this3 = this; + + estraverse.replace(functionNodeBody, { + enter: function enter(node, parentNode) { + if (NodeMetadata_1.NodeMetadata.isIgnoredNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (_this3.isVisitedFunctionNode(node) || !parentNode) { + return estraverse.VisitorOption.Skip; + } + + if (!FunctionControlFlowTransformer_1.controlFlowReplacersMap.has(node.type)) { + return node; + } + + if (_this3.randomGenerator.getMathRandom() > _this3.options.controlFlowFlatteningThreshold) { + return node; + } + + var controlFlowReplacerName = FunctionControlFlowTransformer_1.controlFlowReplacersMap.get(node.type); + + if (controlFlowReplacerName === undefined) { + return node; + } + + return (0, _assign.default)({}, _this3.controlFlowReplacerFactory(controlFlowReplacerName).replace(node, parentNode, controlFlowStorage), { + parentNode: parentNode + }); + } + }); + } + }]); + return FunctionControlFlowTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionControlFlowTransformer.controlFlowReplacersMap = new _map.default([[NodeType_1.NodeType.BinaryExpression, ControlFlowReplacer_1.ControlFlowReplacer.BinaryExpressionControlFlowReplacer], [NodeType_1.NodeType.CallExpression, ControlFlowReplacer_1.ControlFlowReplacer.CallExpressionControlFlowReplacer], [NodeType_1.NodeType.LogicalExpression, ControlFlowReplacer_1.ControlFlowReplacer.LogicalExpressionControlFlowReplacer], [NodeType_1.NodeType.Literal, ControlFlowReplacer_1.ControlFlowReplacer.StringLiteralControlFlowReplacer]]); +FunctionControlFlowTransformer.hostNodeSearchMinDepth = 0; +FunctionControlFlowTransformer.hostNodeSearchMaxDepth = 2; +FunctionControlFlowTransformer = FunctionControlFlowTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__TControlFlowStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowReplacer)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Function, Function, Object, Object])], FunctionControlFlowTransformer); +exports.FunctionControlFlowTransformer = FunctionControlFlowTransformer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = +/*#__PURE__*/ +function () { + function AbstractControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractControlFlowReplacer); + this.replacerDataByControlFlowStorageId = new _map.default(); + this.controlFlowCustomNodeFactory = controlFlowCustomNodeFactory; + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractControlFlowReplacer, [{ + key: "insertCustomNodeToControlFlowStorage", + value: function insertCustomNodeToControlFlowStorage(customNode, controlFlowStorage, replacerId, usingExistingIdentifierChance) { + var _this = this; + + var controlFlowStorageId = controlFlowStorage.getStorageId(); + var storageKeysById = AbstractControlFlowReplacer_1.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId, controlFlowStorageId); + var storageKeysForCurrentId = storageKeysById.get(replacerId); + + if (this.randomGenerator.getMathRandom() < usingExistingIdentifierChance && storageKeysForCurrentId && storageKeysForCurrentId.length) { + return this.randomGenerator.getRandomGenerator().pickone(storageKeysForCurrentId); + } + + var generateStorageKey = function generateStorageKey(length) { + var key = _this.randomGenerator.getRandomString(length); + + if (controlFlowStorage.getStorage().has(key)) { + return generateStorageKey(length); + } + + return key; + }; + + var storageKey = generateStorageKey(5); + storageKeysById.set(replacerId, [storageKey]); + this.replacerDataByControlFlowStorageId.set(controlFlowStorageId, storageKeysById); + controlFlowStorage.set(storageKey, customNode); + return storageKey; + } + }], [{ + key: "getStorageKeysByIdForCurrentStorage", + value: function getStorageKeysByIdForCurrentStorage(identifierDataByControlFlowStorageId, controlFlowStorageId) { + var storageKeysById; + + if (identifierDataByControlFlowStorageId.has(controlFlowStorageId)) { + storageKeysById = identifierDataByControlFlowStorageId.get(controlFlowStorageId); + } else { + storageKeysById = new _map.default(); + } + + return storageKeysById; + } + }]); + return AbstractControlFlowReplacer; +}(); + +AbstractControlFlowReplacer = AbstractControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], AbstractControlFlowReplacer); +exports.AbstractControlFlowReplacer = AbstractControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts": +/*!***********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts ***! + \***********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BinaryExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); + +var BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_ExpressionWithOperat) { + (0, _inherits2.default)(BinaryExpressionControlFlowReplacer, _ExpressionWithOperat); + + function BinaryExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, BinaryExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BinaryExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(BinaryExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(binaryExpressionNode, parentNode, controlFlowStorage) { + var replacerId = binaryExpressionNode.operator; + var binaryExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.BinaryExpressionFunctionNode); + binaryExpressionFunctionCustomNode.initialize(replacerId); + var storageKey = this.insertCustomNodeToControlFlowStorage(binaryExpressionFunctionCustomNode, controlFlowStorage, replacerId, BinaryExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, binaryExpressionNode.left, binaryExpressionNode.right); + } + }]); + return BinaryExpressionControlFlowReplacer; +}(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer); + +BinaryExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], BinaryExpressionControlFlowReplacer); +exports.BinaryExpressionControlFlowReplacer = BinaryExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts": +/*!*********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/CallExpressionControlFlowReplacer.ts ***! + \*********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CallExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(CallExpressionControlFlowReplacer, _AbstractControlFlowR); + + function CallExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, CallExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CallExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(CallExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(callExpressionNode, parentNode, controlFlowStorage) { + var callee = callExpressionNode.callee; + + if (!NodeGuards_1.NodeGuards.isIdentifierNode(callee)) { + return callExpressionNode; + } + + var replacerId = String(callExpressionNode.arguments.length); + var callExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionFunctionNode); + var expressionArguments = callExpressionNode.arguments; + callExpressionFunctionCustomNode.initialize(expressionArguments); + var storageKey = this.insertCustomNodeToControlFlowStorage(callExpressionFunctionCustomNode, controlFlowStorage, replacerId, CallExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, callee, expressionArguments); + } + }, { + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, callee, expressionArguments) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, callee, expressionArguments); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return CallExpressionControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +CallExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CallExpressionControlFlowReplacer); +exports.CallExpressionControlFlowReplacer = CallExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ExpressionWithOperatorControlFlowReplacer = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(ExpressionWithOperatorControlFlowReplacer, _AbstractControlFlowR); + + function ExpressionWithOperatorControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, ExpressionWithOperatorControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExpressionWithOperatorControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(ExpressionWithOperatorControlFlowReplacer, [{ + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey, leftExpression, rightExpression) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey, leftExpression, rightExpression); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return ExpressionWithOperatorControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +ExpressionWithOperatorControlFlowReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ExpressionWithOperatorControlFlowReplacer); +exports.ExpressionWithOperatorControlFlowReplacer = ExpressionWithOperatorControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/LogicalExpressionControlFlowReplacer.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var LogicalExpressionControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var ExpressionWithOperatorControlFlowReplacer_1 = __webpack_require__(/*! ./ExpressionWithOperatorControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/ExpressionWithOperatorControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = +/*#__PURE__*/ +function (_ExpressionWithOperat) { + (0, _inherits2.default)(LogicalExpressionControlFlowReplacer, _ExpressionWithOperat); + + function LogicalExpressionControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, LogicalExpressionControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LogicalExpressionControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(LogicalExpressionControlFlowReplacer, [{ + key: "replace", + value: function replace(logicalExpressionNode, parentNode, controlFlowStorage) { + if (this.checkForProhibitedExpressions(logicalExpressionNode.left, logicalExpressionNode.right)) { + return logicalExpressionNode; + } + + var replacerId = logicalExpressionNode.operator; + var logicalExpressionFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.LogicalExpressionFunctionNode); + logicalExpressionFunctionCustomNode.initialize(replacerId); + var storageKey = this.insertCustomNodeToControlFlowStorage(logicalExpressionFunctionCustomNode, controlFlowStorage, replacerId, LogicalExpressionControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey, logicalExpressionNode.left, logicalExpressionNode.right); + } + }, { + key: "checkForProhibitedExpressions", + value: function checkForProhibitedExpressions(leftExpression, rightExpression) { + return [leftExpression, rightExpression].some(function (expressionNode) { + var nodeForCheck; + + if (!NodeGuards_1.NodeGuards.isUnaryExpressionNode(expressionNode)) { + nodeForCheck = expressionNode; + } else { + nodeForCheck = NodeUtils_1.NodeUtils.getUnaryExpressionArgumentNode(expressionNode); + } + + return !NodeGuards_1.NodeGuards.isLiteralNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isIdentifierNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isObjectExpressionNode(nodeForCheck) && !NodeGuards_1.NodeGuards.isExpressionStatementNode(nodeForCheck); + }); + } + }]); + return LogicalExpressionControlFlowReplacer; +}(ExpressionWithOperatorControlFlowReplacer_1.ExpressionWithOperatorControlFlowReplacer); + +LogicalExpressionControlFlowReplacer.usingExistingIdentifierChance = 0.5; +LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LogicalExpressionControlFlowReplacer); +exports.LogicalExpressionControlFlowReplacer = LogicalExpressionControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts": +/*!********************************************************************************************************************!*\ + !*** ./src/node-transformers/control-flow-transformers/control-flow-replacers/StringLiteralControlFlowReplacer.ts ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringLiteralControlFlowReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ControlFlowCustomNode_1 = __webpack_require__(/*! ../../../enums/custom-nodes/ControlFlowCustomNode */ "./src/enums/custom-nodes/ControlFlowCustomNode.ts"); + +var AbstractControlFlowReplacer_1 = __webpack_require__(/*! ./AbstractControlFlowReplacer */ "./src/node-transformers/control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = +/*#__PURE__*/ +function (_AbstractControlFlowR) { + (0, _inherits2.default)(StringLiteralControlFlowReplacer, _AbstractControlFlowR); + + function StringLiteralControlFlowReplacer(controlFlowCustomNodeFactory, randomGenerator, options) { + (0, _classCallCheck2.default)(this, StringLiteralControlFlowReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralControlFlowReplacer).call(this, controlFlowCustomNodeFactory, randomGenerator, options)); + } + + (0, _createClass2.default)(StringLiteralControlFlowReplacer, [{ + key: "replace", + value: function replace(literalNode, parentNode, controlFlowStorage) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return literalNode; + } + + if (typeof literalNode.value !== 'string' || literalNode.value.length < 3) { + return literalNode; + } + + var replacerId = String(literalNode.value); + var literalFunctionCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralNode); + literalFunctionCustomNode.initialize(literalNode.value); + var storageKey = this.insertCustomNodeToControlFlowStorage(literalFunctionCustomNode, controlFlowStorage, replacerId, StringLiteralControlFlowReplacer_1.usingExistingIdentifierChance); + return this.getControlFlowStorageCallNode(controlFlowStorage.getStorageId(), storageKey); + } + }, { + key: "getControlFlowStorageCallNode", + value: function getControlFlowStorageCallNode(controlFlowStorageId, storageKey) { + var controlFlowStorageCallCustomNode = this.controlFlowCustomNodeFactory(ControlFlowCustomNode_1.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode); + controlFlowStorageCallCustomNode.initialize(controlFlowStorageId, storageKey); + var statementNode = controlFlowStorageCallCustomNode.getNode()[0]; + + if (!statementNode || !NodeGuards_1.NodeGuards.isExpressionStatementNode(statementNode)) { + throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node"); + } + + return statementNode.expression; + } + }]); + return StringLiteralControlFlowReplacer; +}(AbstractControlFlowReplacer_1.AbstractControlFlowReplacer); + +StringLiteralControlFlowReplacer.usingExistingIdentifierChance = 1; +StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IControlFlowCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], StringLiteralControlFlowReplacer); +exports.StringLiteralControlFlowReplacer = StringLiteralControlFlowReplacer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MemberExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var MemberExpressionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MemberExpressionTransformer, _AbstractNodeTransfor); + + function MemberExpressionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MemberExpressionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MemberExpressionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MemberExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isMemberExpressionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(memberExpressionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(memberExpressionNode.property)) { + if (memberExpressionNode.computed) { + return memberExpressionNode; + } + + memberExpressionNode.computed = true; + memberExpressionNode.property = NodeFactory_1.NodeFactory.literalNode(memberExpressionNode.property.name); + } + + return memberExpressionNode; + } + }]); + return MemberExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MemberExpressionTransformer); +exports.MemberExpressionTransformer = MemberExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var MethodDefinitionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var MethodDefinitionTransformer = MethodDefinitionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MethodDefinitionTransformer, _AbstractNodeTransfor); + + function MethodDefinitionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MethodDefinitionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MethodDefinitionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MethodDefinitionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isMethodDefinitionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(methodDefinitionNode, parentNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) { + methodDefinitionNode.computed = true; + methodDefinitionNode.key = NodeFactory_1.NodeFactory.literalNode(methodDefinitionNode.key.name); + } + + return methodDefinitionNode; + } + }]); + return MethodDefinitionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MethodDefinitionTransformer.ignoredNames = ['constructor']; +MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MethodDefinitionTransformer); +exports.MethodDefinitionTransformer = MethodDefinitionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObjectExpressionKeysTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var PropertiesExtractor_1 = __webpack_require__(/*! ../../enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor */ "./src/enums/node-transformers/converting-transformers/properties-extractors/PropertiesExtractor.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObjectExpressionKeysTransformer, _AbstractNodeTransfor); + + function ObjectExpressionKeysTransformer(propertiesExtractorFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ObjectExpressionKeysTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionKeysTransformer).call(this, randomGenerator, options)); + _this.propertiesExtractorFactory = propertiesExtractorFactory; + return _this; + } + + (0, _createClass2.default)(ObjectExpressionKeysTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + if (transformationStage !== TransformationStage_1.TransformationStage.Converting) { + return null; + } + + return { + enter: function enter(node, parentNode) { + if (_this2.options.transformObjectKeys && parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + } + }, { + key: "transformNode", + value: function transformNode(objectExpressionNode, parentNode) { + if (!objectExpressionNode.properties.length) { + return objectExpressionNode; + } + + var propertiesExtractorName = ObjectExpressionKeysTransformer_1.propertiesExtractorsMap.get(parentNode.type); + + if (!propertiesExtractorName) { + return objectExpressionNode; + } + + var propertiesExtractor = this.propertiesExtractorFactory(propertiesExtractorName); + return propertiesExtractor.extract(objectExpressionNode, parentNode); + } + }]); + return ObjectExpressionKeysTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObjectExpressionKeysTransformer.propertiesExtractorsMap = new _map.default([[NodeType_1.NodeType.AssignmentExpression, PropertiesExtractor_1.PropertiesExtractor.AssignmentExpressionPropertiesExtractor], [NodeType_1.NodeType.VariableDeclarator, PropertiesExtractor_1.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]); +ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IPropertiesExtractor)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObjectExpressionKeysTransformer); +exports.ObjectExpressionKeysTransformer = ObjectExpressionKeysTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/ObjectExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ObjectExpressionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObjectExpressionTransformer, _AbstractNodeTransfor); + + function ObjectExpressionTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ObjectExpressionTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObjectExpressionTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(ObjectExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isObjectExpressionNode(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(objectExpressionNode, parentNode) { + objectExpressionNode.properties.forEach(function (property) { + if (property.computed || !property.key) { + return; + } + + if (property.shorthand) { + property.shorthand = false; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + property.key = NodeFactory_1.NodeFactory.literalNode(property.key.name); + } + }); + return objectExpressionNode; + } + }]); + return ObjectExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObjectExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ObjectExpressionTransformer); +exports.ObjectExpressionTransformer = ObjectExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts": +/*!*************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var TemplateLiteralTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var TemplateLiteralTransformer = TemplateLiteralTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(TemplateLiteralTransformer, _AbstractNodeTransfor); + + function TemplateLiteralTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, TemplateLiteralTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TemplateLiteralTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(TemplateLiteralTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Converting: + return { + leave: function leave(node, parentNode) { + if (parentNode && TemplateLiteralTransformer_1.isValidTemplateLiteralNode(node, parentNode)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(templateLiteralNode, parentNode) { + var templateLiteralExpressions = templateLiteralNode.expressions; + var nodes = []; + templateLiteralNode.quasis.forEach(function (templateElement) { + nodes.push(NodeFactory_1.NodeFactory.literalNode(templateElement.value.cooked)); + var expression = templateLiteralExpressions.shift(); + + if (!expression) { + return; + } + + nodes.push(expression); + }); + nodes = nodes.filter(function (node) { + return !(NodeGuards_1.NodeGuards.isLiteralNode(node) && node.value === ''); + }); + + if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { + nodes.unshift(NodeFactory_1.NodeFactory.literalNode('')); + } + + if (nodes.length > 1) { + var root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', nodes.shift(), nodes.shift()); + nodes.forEach(function (node) { + root = NodeFactory_1.NodeFactory.binaryExpressionNode('+', root, node); + }); + return root; + } + + return nodes[0]; + } + }], [{ + key: "isLiteralNodeWithStringValue", + value: function isLiteralNodeWithStringValue(node) { + return node && NodeGuards_1.NodeGuards.isLiteralNode(node) && typeof node.value === 'string'; + } + }, { + key: "isValidTemplateLiteralNode", + value: function isValidTemplateLiteralNode(node, parentNode) { + return NodeGuards_1.NodeGuards.isTemplateLiteralNode(node) && !NodeGuards_1.NodeGuards.isTaggedTemplateExpressionNode(parentNode); + } + }]); + return TemplateLiteralTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], TemplateLiteralTransformer); +exports.TemplateLiteralTransformer = TemplateLiteralTransformer; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts": +/*!************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var AbstractPropertiesExtractor_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var NodeAppender_1 = __webpack_require__(/*! ../../../node/NodeAppender */ "./src/node/NodeAppender.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 = +/*#__PURE__*/ +function () { + function AbstractPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AbstractPropertiesExtractor); + this.cachedHostScopesMap = new _map.default(); + this.cachedHostStatementsMap = new _map.default(); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(AbstractPropertiesExtractor, [{ + key: "extractPropertiesToExpressionStatements", + value: function extractPropertiesToExpressionStatements(properties, memberExpressionHostNode) { + var propertiesLength = properties.length; + var expressionStatements = []; + var removablePropertyIds = []; + + for (var i = 0; i < propertiesLength; i++) { + var property = properties[i]; + var propertyValue = property.value; + + if (AbstractPropertiesExtractor_1.isProhibitedPattern(propertyValue)) { + continue; + } + + var propertyKeyName = AbstractPropertiesExtractor_1.getPropertyNodeKeyName(property); + + if (!propertyKeyName) { + continue; + } + + var shouldCreateLiteralNode = !property.computed || property.computed && !!property.key && NodeGuards_1.NodeGuards.isLiteralNode(property.key); + var memberExpressionProperty = shouldCreateLiteralNode ? NodeFactory_1.NodeFactory.literalNode(propertyKeyName) : NodeFactory_1.NodeFactory.identifierNode(propertyKeyName); + var memberExpressionNode = NodeFactory_1.NodeFactory.memberExpressionNode(memberExpressionHostNode, memberExpressionProperty, true); + var expressionStatementNode = NodeFactory_1.NodeFactory.expressionStatementNode(NodeFactory_1.NodeFactory.assignmentExpressionNode('=', memberExpressionNode, propertyValue)); + + if (NodeGuards_1.NodeGuards.isObjectExpressionNode(property.value)) { + this.transformObjectExpressionNode(property.value, memberExpressionNode); + } + + expressionStatements.push(expressionStatementNode); + removablePropertyIds.push(i); + } + + return [expressionStatements, removablePropertyIds]; + } + }, { + key: "filterExtractedObjectExpressionProperties", + value: function filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds) { + objectExpressionNode.properties = objectExpressionNode.properties.filter(function (property, index) { + return !removablePropertyIds.includes(index); + }); + } + }, { + key: "transformObjectExpressionNode", + value: function transformObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) { + var properties = objectExpressionNode.properties; + + var _this$extractProperti = this.extractPropertiesToExpressionStatements(properties, memberExpressionHostNode), + _this$extractProperti2 = (0, _slicedToArray2.default)(_this$extractProperti, 2), + expressionStatements = _this$extractProperti2[0], + removablePropertyIds = _this$extractProperti2[1]; + + var hostStatement = this.getHostStatement(objectExpressionNode); + var scopeNode = this.getHostScopeNode(objectExpressionNode, hostStatement); + this.filterExtractedObjectExpressionProperties(objectExpressionNode, removablePropertyIds); + NodeAppender_1.NodeAppender.insertAfter(scopeNode, expressionStatements, hostStatement); + return objectExpressionNode; + } + }, { + key: "getHostScopeNode", + value: function getHostScopeNode(objectExpressionNode, hostStatement) { + if (this.cachedHostScopesMap.has(objectExpressionNode)) { + return this.cachedHostScopesMap.get(objectExpressionNode); + } + + var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(hostStatement); + this.cachedHostScopesMap.set(objectExpressionNode, scopeNode); + return scopeNode; + } + }, { + key: "getHostStatement", + value: function getHostStatement(objectExpressionNode) { + if (this.cachedHostStatementsMap.has(objectExpressionNode)) { + return this.cachedHostStatementsMap.get(objectExpressionNode); + } + + var hostStatement = NodeUtils_1.NodeUtils.getRootStatementOfNode(objectExpressionNode); + this.cachedHostStatementsMap.set(objectExpressionNode, hostStatement); + return hostStatement; + } + }], [{ + key: "getPropertyNodeKeyName", + value: function getPropertyNodeKeyName(propertyNode) { + if (!propertyNode.key) { + return null; + } + + var propertyKeyNode = propertyNode.key; + + if (NodeGuards_1.NodeGuards.isLiteralNode(propertyKeyNode) && typeof propertyKeyNode.value === 'string') { + return propertyKeyNode.value; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(propertyKeyNode)) { + return propertyKeyNode.name; + } + + return null; + } + }, { + key: "isProhibitedPattern", + value: function isProhibitedPattern(node) { + return NodeGuards_1.NodeGuards.isObjectPatternNode(node) || NodeGuards_1.NodeGuards.isArrayPatternNode(node) || NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) || NodeGuards_1.NodeGuards.isRestElementNode(node); + } + }]); + return AbstractPropertiesExtractor; +}(); + +AbstractPropertiesExtractor = AbstractPropertiesExtractor_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AbstractPropertiesExtractor); +exports.AbstractPropertiesExtractor = AbstractPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts": +/*!************************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/AssignmentExpressionPropertiesExtractor.ts ***! + \************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts"); + +var AssignmentExpressionPropertiesExtractor = +/*#__PURE__*/ +function (_AbstractPropertiesEx) { + (0, _inherits2.default)(AssignmentExpressionPropertiesExtractor, _AbstractPropertiesEx); + + function AssignmentExpressionPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, AssignmentExpressionPropertiesExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(AssignmentExpressionPropertiesExtractor).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(AssignmentExpressionPropertiesExtractor, [{ + key: "extract", + value: function extract(objectExpressionNode, hostNode) { + var leftNode = hostNode.left; + + if (AbstractPropertiesExtractor_1.AbstractPropertiesExtractor.isProhibitedPattern(leftNode)) { + return objectExpressionNode; + } + + return this.transformObjectExpressionNode(objectExpressionNode, leftNode); + } + }]); + return AssignmentExpressionPropertiesExtractor; +}(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor); + +AssignmentExpressionPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], AssignmentExpressionPropertiesExtractor); +exports.AssignmentExpressionPropertiesExtractor = AssignmentExpressionPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts": +/*!**********************************************************************************************************************!*\ + !*** ./src/node-transformers/converting-transformers/properties-extractors/VariableDeclaratorPropertiesExtractor.ts ***! + \**********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var AbstractPropertiesExtractor_1 = __webpack_require__(/*! ./AbstractPropertiesExtractor */ "./src/node-transformers/converting-transformers/properties-extractors/AbstractPropertiesExtractor.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var VariableDeclaratorPropertiesExtractor = +/*#__PURE__*/ +function (_AbstractPropertiesEx) { + (0, _inherits2.default)(VariableDeclaratorPropertiesExtractor, _AbstractPropertiesEx); + + function VariableDeclaratorPropertiesExtractor(randomGenerator, options) { + (0, _classCallCheck2.default)(this, VariableDeclaratorPropertiesExtractor); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(VariableDeclaratorPropertiesExtractor).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(VariableDeclaratorPropertiesExtractor, [{ + key: "extract", + value: function extract(objectExpressionNode, hostNode) { + if (!NodeGuards_1.NodeGuards.isIdentifierNode(hostNode.id) || this.isProhibitedObjectExpressionNode(objectExpressionNode, hostNode.id)) { + return objectExpressionNode; + } + + return this.transformObjectExpressionNode(objectExpressionNode, hostNode.id); + } + }, { + key: "getHostVariableDeclaratorNode", + value: function getHostVariableDeclaratorNode(objectExpressionNode) { + var parentNode = objectExpressionNode.parentNode; + + if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclaratorNode(parentNode)) { + throw new Error('Cannot get `VariableDeclarator` node for `ObjectExpression` node'); + } + + return parentNode; + } + }, { + key: "getHostVariableDeclarationNode", + value: function getHostVariableDeclarationNode(variableDeclaratorNode) { + var parentNode = variableDeclaratorNode.parentNode; + + if (!parentNode || !NodeGuards_1.NodeGuards.isVariableDeclarationNode(parentNode)) { + throw new Error('Cannot get `VariableDeclaration` node for `VariableDeclarator` node'); + } + + return parentNode; + } + }, { + key: "isProhibitedObjectExpressionNode", + value: function isProhibitedObjectExpressionNode(objectExpressionNode, memberExpressionHostNode) { + var hostVariableDeclarator = this.getHostVariableDeclaratorNode(objectExpressionNode); + var hostVariableDeclaration = this.getHostVariableDeclarationNode(hostVariableDeclarator); + var declarations = hostVariableDeclaration.declarations; + var indexOfDeclarator = declarations.indexOf(hostVariableDeclarator); + var isLastDeclarator = indexOfDeclarator === declarations.length - 1; + + if (isLastDeclarator) { + return false; + } + + var declaratorsAfterCurrentDeclarator = declarations.slice(indexOfDeclarator); + var isProhibitedObjectExpressionNode = false; + declaratorsAfterCurrentDeclarator.forEach(function (variableDeclarator) { + estraverse.traverse(variableDeclarator, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isMemberExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.object) && node.object.name === memberExpressionHostNode.name) { + isProhibitedObjectExpressionNode = true; + return estraverse.VisitorOption.Break; + } + + return node; + } + }); + }); + return isProhibitedObjectExpressionNode; + } + }]); + return VariableDeclaratorPropertiesExtractor; +}(AbstractPropertiesExtractor_1.AbstractPropertiesExtractor); + +VariableDeclaratorPropertiesExtractor = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], VariableDeclaratorPropertiesExtractor); +exports.VariableDeclaratorPropertiesExtractor = VariableDeclaratorPropertiesExtractor; + +/***/ }), + +/***/ "./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts": +/*!************************************************************************************************!*\ + !*** ./src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.ts ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var DeadCodeInjectionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var DeadCodeInjectionCustomNode_1 = __webpack_require__(/*! ../../enums/custom-nodes/DeadCodeInjectionCustomNode */ "./src/enums/custom-nodes/DeadCodeInjectionCustomNode.ts"); + +var NodeTransformer_1 = __webpack_require__(/*! ../../enums/node-transformers/NodeTransformer */ "./src/enums/node-transformers/NodeTransformer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(DeadCodeInjectionTransformer, _AbstractNodeTransfor); + + function DeadCodeInjectionTransformer(deadCodeInjectionCustomNodeFactory, transformersRunner, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, DeadCodeInjectionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(DeadCodeInjectionTransformer).call(this, randomGenerator, options)); + _this.deadCodeInjectionRootAstHostNodeSet = new _set.default(); + _this.collectedBlockStatements = []; + _this.collectedBlockStatementsTotalLength = 0; + _this.deadCodeInjectionCustomNodeFactory = deadCodeInjectionCustomNodeFactory; + _this.transformersRunner = transformersRunner; + return _this; + } + + (0, _createClass2.default)(DeadCodeInjectionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.DeadCodeInjection: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.analyzeNode(node, parentNode); + + return node; + } + }, + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + if (!this.deadCodeInjectionRootAstHostNodeSet.size) { + return null; + } + + return { + enter: function enter(node, parentNode) { + if (parentNode && _this2.isDeadCodeInjectionRootAstHostNode(node)) { + return _this2.restoreNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "analyzeNode", + value: function analyzeNode(programNode, parentNode) { + var _this3 = this; + + estraverse.traverse(programNode, { + enter: function enter(node) { + if (!NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + return; + } + + var clonedBlockStatementNode = NodeUtils_1.NodeUtils.clone(node); + + if (!DeadCodeInjectionTransformer_1.isValidCollectedBlockStatementNode(clonedBlockStatementNode)) { + return; + } + + NodeUtils_1.NodeUtils.parentizeNode(clonedBlockStatementNode, clonedBlockStatementNode); + clonedBlockStatementNode = _this3.makeClonedBlockStatementNodeUnique(clonedBlockStatementNode); + + _this3.collectedBlockStatements.push(clonedBlockStatementNode); + } + }); + this.collectedBlockStatementsTotalLength = this.collectedBlockStatements.length; + } + }, { + key: "transformNode", + value: function transformNode(blockStatementNode, parentNode) { + var canBreakTraverse = !this.collectedBlockStatements.length || this.collectedBlockStatementsTotalLength < DeadCodeInjectionTransformer_1.minCollectedBlockStatementsCount; + + if (canBreakTraverse) { + return estraverse.VisitorOption.Break; + } + + if (this.randomGenerator.getMathRandom() > this.options.deadCodeInjectionThreshold || !DeadCodeInjectionTransformer_1.isValidWrappedBlockStatementNode(blockStatementNode)) { + return blockStatementNode; + } + + var minInteger = 0; + var maxInteger = this.collectedBlockStatements.length - 1; + var randomIndex = this.randomGenerator.getRandomInteger(minInteger, maxInteger); + var randomBlockStatementNode = this.collectedBlockStatements.splice(randomIndex, 1)[0]; + var isDuplicateBlockStatementNodes = randomBlockStatementNode === blockStatementNode; + + if (isDuplicateBlockStatementNodes) { + return blockStatementNode; + } + + return this.replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode); + } + }, { + key: "restoreNode", + value: function restoreNode(deadCodeInjectionRootAstHostNode, parentNode) { + var hostNodeFirstStatement = deadCodeInjectionRootAstHostNode.body[0]; + + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(hostNodeFirstStatement)) { + throw new Error('Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node'); + } + + return hostNodeFirstStatement.body; + } + }, { + key: "isDeadCodeInjectionRootAstHostNode", + value: function isDeadCodeInjectionRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isBlockStatementNode(node) && this.deadCodeInjectionRootAstHostNodeSet.has(node); + } + }, { + key: "makeClonedBlockStatementNodeUnique", + value: function makeClonedBlockStatementNodeUnique(clonedBlockStatementNode) { + return this.transformersRunner.transform(clonedBlockStatementNode, DeadCodeInjectionTransformer_1.transformersToRenameBlockScopeIdentifiers, TransformationStage_1.TransformationStage.Obfuscating); + } + }, { + key: "replaceBlockStatementNode", + value: function replaceBlockStatementNode(blockStatementNode, randomBlockStatementNode, parentNode) { + var deadCodeInjectionRootAstHostNode = NodeFactory_1.NodeFactory.blockStatementNode([NodeFactory_1.NodeFactory.functionDeclarationNode(DeadCodeInjectionTransformer_1.deadCodeInjectionRootAstHostNodeName, [], randomBlockStatementNode)]); + this.deadCodeInjectionRootAstHostNodeSet.add(deadCodeInjectionRootAstHostNode); + var blockStatementDeadCodeInjectionCustomNode = this.deadCodeInjectionCustomNodeFactory(DeadCodeInjectionCustomNode_1.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode); + blockStatementDeadCodeInjectionCustomNode.initialize(blockStatementNode, deadCodeInjectionRootAstHostNode); + var newBlockStatementNode = blockStatementDeadCodeInjectionCustomNode.getNode()[0]; + NodeUtils_1.NodeUtils.parentizeNode(newBlockStatementNode, parentNode); + return newBlockStatementNode; + } + }], [{ + key: "isProhibitedNodeInsideCollectedBlockStatement", + value: function isProhibitedNodeInsideCollectedBlockStatement(targetNode) { + return NodeGuards_1.NodeGuards.isBreakStatementNode(targetNode) || NodeGuards_1.NodeGuards.isContinueStatementNode(targetNode) || NodeGuards_1.NodeGuards.isAwaitExpressionNode(targetNode) || NodeGuards_1.NodeGuards.isSuperNode(targetNode); + } + }, { + key: "isScopeHoistingFunctionDeclaration", + value: function isScopeHoistingFunctionDeclaration(targetNode) { + if (!NodeGuards_1.NodeGuards.isFunctionDeclarationNode(targetNode)) { + return false; + } + + var scopeNode = NodeUtils_1.NodeUtils.getScopeOfNode(targetNode); + var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent; + var indexInScope = scopeBody.indexOf(targetNode); + + if (indexInScope === 0) { + return false; + } + + var slicedBody = scopeBody.slice(0, indexInScope); + var hostBlockStatementNode = NodeFactory_1.NodeFactory.blockStatementNode(slicedBody); + var functionDeclarationName = targetNode.id.name; + var isScopeHoistedFunctionDeclaration = false; + estraverse.traverse(hostBlockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(node) && node.name === functionDeclarationName) { + isScopeHoistedFunctionDeclaration = true; + return estraverse.VisitorOption.Break; + } + } + }); + return isScopeHoistedFunctionDeclaration; + } + }, { + key: "isValidCollectedBlockStatementNode", + value: function isValidCollectedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + + var nestedBlockStatementsCount = 0; + var isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node)) { + nestedBlockStatementsCount++; + } + + if (nestedBlockStatementsCount > DeadCodeInjectionTransformer_1.maxNestedBlockStatementsCount || DeadCodeInjectionTransformer_1.isProhibitedNodeInsideCollectedBlockStatement(node) || DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + return isValidBlockStatementNode; + } + }, { + key: "isValidWrappedBlockStatementNode", + value: function isValidWrappedBlockStatementNode(blockStatementNode) { + if (!blockStatementNode.body.length) { + return false; + } + + var isValidBlockStatementNode = true; + estraverse.traverse(blockStatementNode, { + enter: function enter(node) { + if (DeadCodeInjectionTransformer_1.isScopeHoistingFunctionDeclaration(node)) { + isValidBlockStatementNode = false; + return estraverse.VisitorOption.Break; + } + } + }); + + if (!isValidBlockStatementNode) { + return false; + } + + var blockScopeOfBlockStatementNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(blockStatementNode); + return blockScopeOfBlockStatementNode.type !== NodeType_1.NodeType.Program; + } + }]); + return DeadCodeInjectionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +DeadCodeInjectionTransformer.deadCodeInjectionRootAstHostNodeName = 'deadCodeInjectionRootAstHostNode'; +DeadCodeInjectionTransformer.maxNestedBlockStatementsCount = 4; +DeadCodeInjectionTransformer.minCollectedBlockStatementsCount = 5; +DeadCodeInjectionTransformer.transformersToRenameBlockScopeIdentifiers = [NodeTransformer_1.NodeTransformer.CatchClauseTransformer, NodeTransformer_1.NodeTransformer.ClassDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionDeclarationTransformer, NodeTransformer_1.NodeTransformer.FunctionTransformer, NodeTransformer_1.NodeTransformer.LabeledStatementTransformer, NodeTransformer_1.NodeTransformer.VariableDeclarationTransformer]; +DeadCodeInjectionTransformer = DeadCodeInjectionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ITransformersRunner)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], DeadCodeInjectionTransformer); +exports.DeadCodeInjectionTransformer = DeadCodeInjectionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts": +/*!**********************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/CatchClauseTransformer.ts ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var CatchClauseTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CatchClauseTransformer, _AbstractNodeTransfor); + + function CatchClauseTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CatchClauseTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CatchClauseTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(CatchClauseTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isCatchClauseNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(catchClauseNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(catchClauseNode); + this.storeCatchClauseParam(catchClauseNode, blockScopeNode); + this.replaceCatchClauseParam(catchClauseNode, blockScopeNode); + return catchClauseNode; + } + }, { + key: "storeCatchClauseParam", + value: function storeCatchClauseParam(catchClauseNode, blockScopeNode) { + if (NodeGuards_1.NodeGuards.isIdentifierNode(catchClauseNode.param)) { + this.identifierObfuscatingReplacer.storeLocalName(catchClauseNode.param.name, blockScopeNode); + } + } + }, { + key: "replaceCatchClauseParam", + value: function replaceCatchClauseParam(catchClauseNode, blockScopeNode) { + var _this3 = this; + + estraverse.replace(catchClauseNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } + } + } + }); + } + }]); + return CatchClauseTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CatchClauseTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CatchClauseTransformer); +exports.CatchClauseTransformer = CatchClauseTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ClassDeclarationTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ClassDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ClassDeclarationTransformer, _AbstractNodeTransfor); + + function ClassDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ClassDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ClassDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(ClassDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isClassDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(classDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(classDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return classDeclarationNode; + } + + this.storeClassName(classDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return classDeclarationNode; + } + }, { + key: "storeClassName", + value: function storeClassName(classDeclarationNode, blockScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(classDeclarationNode.id.name, blockScopeNode); + } else { + this.identifierObfuscatingReplacer.storeLocalName(classDeclarationNode.id.name, blockScopeNode); + } + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(blockScopeNode) { + var _this3 = this; + + var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(blockScopeNode); + cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) { + var newReplaceableIdentifier = _this3.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this4 = this; + + var storedReplaceableIdentifiers = []; + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + storedReplaceableIdentifiers.push(node); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiers); + } + }]); + return ClassDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ClassDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ClassDeclarationTransformer); +exports.ClassDeclarationTransformer = ClassDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/FunctionDeclarationTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionDeclarationTransformer, _AbstractNodeTransfor); + + function FunctionDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(FunctionDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isFunctionDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(functionDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return functionDeclarationNode; + } + + this.storeFunctionName(functionDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return functionDeclarationNode; + } + }, { + key: "storeFunctionName", + value: function storeFunctionName(functionDeclarationNode, blockScopeNode, isGlobalDeclaration) { + if (isGlobalDeclaration) { + this.identifierObfuscatingReplacer.storeGlobalName(functionDeclarationNode.id.name, blockScopeNode); + } else { + this.identifierObfuscatingReplacer.storeLocalName(functionDeclarationNode.id.name, blockScopeNode); + } + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(functionDeclarationNode, blockScopeNode) { + var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(blockScopeNode); + + if (!cachedReplaceableIdentifiersNamesMap) { + return; + } + + var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(functionDeclarationNode.id.name); + + if (!cachedReplaceableIdentifiers) { + return; + } + + var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length; + + for (var i = 0; i < cachedReplaceableIdentifierLength; i++) { + var replaceableIdentifier = cachedReplaceableIdentifiers[i]; + var newReplaceableIdentifier = this.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + } + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this3 = this; + + var storedReplaceableIdentifiersNamesMap = new _map.default(); + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || []; + storedReplaceableIdentifiers.push(node); + storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiersNamesMap); + } + }]); + return FunctionDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionDeclarationTransformer); +exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts": +/*!*******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/FunctionTransformer.ts ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var FunctionTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(FunctionTransformer, _AbstractNodeTransfor); + + function FunctionTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, FunctionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FunctionTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(FunctionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isFunctionNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(functionNode, parentNode) { + var blockScopeNode = NodeGuards_1.NodeGuards.isBlockStatementNode(functionNode.body) ? functionNode.body : NodeUtils_1.NodeUtils.getBlockScopeOfNode(functionNode.body); + this.storeFunctionParams(functionNode, blockScopeNode); + this.replaceFunctionParams(functionNode, blockScopeNode); + return functionNode; + } + }, { + key: "storeFunctionParams", + value: function storeFunctionParams(functionNode, blockScopeNode) { + var _this3 = this; + + functionNode.params.forEach(function (paramsNode) { + estraverse.traverse(paramsNode, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isAssignmentPatternNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.left)) { + _this3.identifierObfuscatingReplacer.storeLocalName(node.left.name, blockScopeNode); + + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + _this3.identifierObfuscatingReplacer.storeLocalName(node.name, blockScopeNode); + } + } + }); + }); + } + }, { + key: "addIdentifiersToIgnoredIdentifierNamesSet", + value: function addIdentifiersToIgnoredIdentifierNamesSet(properties, ignoredIdentifierNamesSet) { + properties.forEach(function (property) { + if (!property.key || !NodeGuards_1.NodeGuards.isIdentifierNode(property.key)) { + return; + } + + ignoredIdentifierNamesSet.add(property.key.name); + }); + } + }, { + key: "replaceFunctionParams", + value: function replaceFunctionParams(functionNode, blockScopeNode) { + var _this4 = this; + + var ignoredIdentifierNamesSet = new _set.default(); + var replaceVisitor = { + enter: function enter(node, parentNode) { + if (NodeGuards_1.NodeGuards.isObjectPatternNode(node) && node.parentNode === functionNode) { + _this4.addIdentifiersToIgnoredIdentifierNamesSet(node.properties, ignoredIdentifierNamesSet); + } + + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !ignoredIdentifierNamesSet.has(node.name)) { + var newIdentifier = _this4.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } + } + } + }; + functionNode.params.forEach(function (paramsNode) { + return estraverse.replace(paramsNode, replaceVisitor); + }); + estraverse.replace(functionNode.body, replaceVisitor); + } + }]); + return FunctionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +FunctionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], FunctionTransformer); +exports.FunctionTransformer = FunctionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts": +/*!****************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts ***! + \****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ImportDeclarationTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ImportDeclarationTransformer = ImportDeclarationTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ImportDeclarationTransformer, _AbstractNodeTransfor); + + function ImportDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ImportDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ImportDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(ImportDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isImportDeclarationNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(importDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(importDeclarationNode); + this.storeImportSpecifierNames(importDeclarationNode, blockScopeNode); + + if (this.replaceableIdentifiers.has(blockScopeNode)) { + this.replaceScopeCachedIdentifiers(blockScopeNode); + } else { + this.replaceScopeIdentifiers(blockScopeNode); + } + + return importDeclarationNode; + } + }, { + key: "storeImportSpecifierNames", + value: function storeImportSpecifierNames(importDeclarationNode, blockScopeNode) { + var _this3 = this; + + importDeclarationNode.specifiers.forEach(function (importSpecifierNode) { + if (ImportDeclarationTransformer_1.isProhibitedImportSpecifierNode(importSpecifierNode)) { + return; + } + + _this3.identifierObfuscatingReplacer.storeGlobalName(importSpecifierNode.local.name, blockScopeNode); + }); + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(blockScopeNode) { + var _this4 = this; + + var cachedReplaceableIdentifiers = this.replaceableIdentifiers.get(blockScopeNode); + cachedReplaceableIdentifiers.forEach(function (replaceableIdentifier) { + var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(blockScopeNode) { + var _this5 = this; + + var storedReplaceableIdentifiers = []; + estraverse.replace(blockScopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + storedReplaceableIdentifiers.push(node); + } + } + } + }); + this.replaceableIdentifiers.set(blockScopeNode, storedReplaceableIdentifiers); + } + }], [{ + key: "isProhibitedImportSpecifierNode", + value: function isProhibitedImportSpecifierNode(importSpecifierNode) { + return NodeGuards_1.NodeGuards.isImportSpecifierNode(importSpecifierNode) && importSpecifierNode.imported.name === importSpecifierNode.local.name; + } + }]); + return ImportDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ImportDeclarationTransformer = ImportDeclarationTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ImportDeclarationTransformer); +exports.ImportDeclarationTransformer = ImportDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts": +/*!***************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LabeledStatementTransformer.ts ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var LabeledStatementTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(LabeledStatementTransformer, _AbstractNodeTransfor); + + function LabeledStatementTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, LabeledStatementTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LabeledStatementTransformer).call(this, randomGenerator, options)); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(LabeledStatementTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLabeledStatementNode(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(labeledStatementNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(labeledStatementNode); + this.storeLabeledStatementName(labeledStatementNode, blockScopeNode); + this.replaceLabeledStatementName(labeledStatementNode, blockScopeNode); + return labeledStatementNode; + } + }, { + key: "storeLabeledStatementName", + value: function storeLabeledStatementName(labeledStatementNode, blockScopeNode) { + this.identifierObfuscatingReplacer.storeLocalName(labeledStatementNode.label.name, blockScopeNode); + } + }, { + key: "replaceLabeledStatementName", + value: function replaceLabeledStatementName(labeledStatementNode, blockScopeNode) { + var _this3 = this; + + estraverse.replace(labeledStatementNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLabelIdentifierNode(node, parentNode)) { + var newIdentifier = _this3.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + node.name = newIdentifier.name; + } + } + }); + } + }]); + return LabeledStatementTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +LabeledStatementTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LabeledStatementTransformer); +exports.LabeledStatementTransformer = LabeledStatementTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts": +/*!******************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/LiteralTransformer.ts ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var LiteralObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/LiteralObfuscatingReplacer.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var LiteralTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(LiteralTransformer, _AbstractNodeTransfor); + + function LiteralTransformer(literalObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, LiteralTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(LiteralTransformer).call(this, randomGenerator, options)); + _this.literalObfuscatingReplacerFactory = literalObfuscatingReplacerFactory; + return _this; + } + + (0, _createClass2.default)(LiteralTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isLiteralNode(node) && !NodeMetadata_1.NodeMetadata.isReplacedLiteral(node)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(literalNode, parentNode) { + if (this.isProhibitedNode(literalNode, parentNode)) { + return literalNode; + } + + switch ((0, _typeof2.default)(literalNode.value)) { + case 'boolean': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(literalNode.value); + + case 'number': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(literalNode.value); + + case 'string': + return this.literalObfuscatingReplacerFactory(LiteralObfuscatingReplacer_1.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(literalNode.value); + + default: + return literalNode; + } + } + }, { + key: "isProhibitedNode", + value: function isProhibitedNode(literalNode, parentNode) { + if (NodeGuards_1.NodeGuards.isPropertyNode(parentNode) && parentNode.key === literalNode) { + return true; + } + + if (NodeGuards_1.NodeGuards.isImportDeclarationNode(parentNode)) { + return true; + } + + return false; + } + }]); + return LiteralTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +LiteralTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], LiteralTransformer); +exports.LiteralTransformer = LiteralTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts": +/*!******************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/VariableDeclarationTransformer.ts ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var IdentifierObfuscatingReplacer_1 = __webpack_require__(/*! ../../enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer */ "./src/enums/node-transformers/obfuscating-transformers/obfuscating-replacers/IdentifierObfuscatingReplacer.ts"); + +var NodeType_1 = __webpack_require__(/*! ../../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var VariableDeclarationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(VariableDeclarationTransformer, _AbstractNodeTransfor); + + function VariableDeclarationTransformer(identifierObfuscatingReplacerFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, VariableDeclarationTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(VariableDeclarationTransformer).call(this, randomGenerator, options)); + _this.replaceableIdentifiers = new _map.default(); + _this.identifierObfuscatingReplacer = identifierObfuscatingReplacerFactory(IdentifierObfuscatingReplacer_1.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer); + return _this; + } + + (0, _createClass2.default)(VariableDeclarationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Obfuscating: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isVariableDeclarationNode(node) && !NodeGuards_1.NodeGuards.isExportNamedDeclarationNode(parentNode)) { + return _this2.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(variableDeclarationNode, parentNode) { + var blockScopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(variableDeclarationNode); + var isGlobalDeclaration = blockScopeNode.type === NodeType_1.NodeType.Program; + + if (!this.options.renameGlobals && isGlobalDeclaration) { + return variableDeclarationNode; + } + + var scopeNode = variableDeclarationNode.kind === 'var' ? blockScopeNode : parentNode; + this.storeVariableNames(variableDeclarationNode, blockScopeNode, isGlobalDeclaration); + + if (this.replaceableIdentifiers.has(scopeNode)) { + this.replaceScopeCachedIdentifiers(variableDeclarationNode, blockScopeNode, scopeNode); + } else { + this.replaceScopeIdentifiers(scopeNode, blockScopeNode); + } + + return variableDeclarationNode; + } + }, { + key: "storeVariableNames", + value: function storeVariableNames(variableDeclarationNode, blockScopeNode, isGlobalDeclaration) { + var _this3 = this; + + this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) { + if (isGlobalDeclaration) { + _this3.identifierObfuscatingReplacer.storeGlobalName(identifierNode.name, blockScopeNode); + } else { + _this3.identifierObfuscatingReplacer.storeLocalName(identifierNode.name, blockScopeNode); + } + }); + } + }, { + key: "replaceScopeCachedIdentifiers", + value: function replaceScopeCachedIdentifiers(variableDeclarationNode, blockScopeNode, scopeNode) { + var _this4 = this; + + var cachedReplaceableIdentifiersNamesMap = this.replaceableIdentifiers.get(scopeNode); + + if (!cachedReplaceableIdentifiersNamesMap) { + return; + } + + var identifierNames = []; + this.traverseDeclarationIdentifiers(variableDeclarationNode, function (identifierNode) { + identifierNames.push(identifierNode.name); + }); + identifierNames.forEach(function (identifierName) { + var cachedReplaceableIdentifiers = cachedReplaceableIdentifiersNamesMap.get(identifierName); + + if (!cachedReplaceableIdentifiers) { + return; + } + + var cachedReplaceableIdentifierLength = cachedReplaceableIdentifiers.length; + + for (var i = 0; i < cachedReplaceableIdentifierLength; i++) { + var replaceableIdentifier = cachedReplaceableIdentifiers[i]; + + if (identifierName !== replaceableIdentifier.name) { + continue; + } + + var newReplaceableIdentifier = _this4.identifierObfuscatingReplacer.replace(replaceableIdentifier.name, blockScopeNode); + + replaceableIdentifier.name = newReplaceableIdentifier.name; + NodeMetadata_1.NodeMetadata.set(replaceableIdentifier, { + renamedIdentifier: true + }); + } + }); + } + }, { + key: "replaceScopeIdentifiers", + value: function replaceScopeIdentifiers(scopeNode, blockScopeNode) { + var _this5 = this; + + var storedReplaceableIdentifiersNamesMap = new _map.default(); + estraverse.replace(scopeNode, { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isReplaceableIdentifierNode(node, parentNode) && !NodeMetadata_1.NodeMetadata.isRenamedIdentifier(node)) { + var newIdentifier = _this5.identifierObfuscatingReplacer.replace(node.name, blockScopeNode); + + var newIdentifierName = newIdentifier.name; + + if (node.name !== newIdentifierName) { + node.name = newIdentifierName; + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: true + }); + } else { + var storedReplaceableIdentifiers = storedReplaceableIdentifiersNamesMap.get(node.name) || []; + storedReplaceableIdentifiers.push(node); + storedReplaceableIdentifiersNamesMap.set(node.name, storedReplaceableIdentifiers); + } + } + } + }); + this.replaceableIdentifiers.set(scopeNode, storedReplaceableIdentifiersNamesMap); + } + }, { + key: "traverseDeclarationIdentifiers", + value: function traverseDeclarationIdentifiers(variableDeclarationNode, callback) { + variableDeclarationNode.declarations.forEach(function (declarationNode) { + estraverse.traverse(declarationNode.id, { + enter: function enter(node) { + if (NodeGuards_1.NodeGuards.isPropertyNode(node)) { + return estraverse.VisitorOption.Skip; + } + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + callback(node); + } + } + }); + }); + } + }]); + return VariableDeclarationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +VariableDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], VariableDeclarationTransformer); +exports.VariableDeclarationTransformer = VariableDeclarationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts": +/*!*************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts ***! + \*************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer = function AbstractObfuscatingReplacer(options) { + (0, _classCallCheck2.default)(this, AbstractObfuscatingReplacer); + this.options = options; +}; + +AbstractObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], AbstractObfuscatingReplacer); +exports.AbstractObfuscatingReplacer = AbstractObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts": +/*!****************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.ts ***! + \****************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var BaseIdentifierObfuscatingReplacer = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(BaseIdentifierObfuscatingReplacer, _AbstractObfuscatingR); + + function BaseIdentifierObfuscatingReplacer(identifierNamesGeneratorFactory, options) { + var _this; + + (0, _classCallCheck2.default)(this, BaseIdentifierObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BaseIdentifierObfuscatingReplacer).call(this, options)); + _this.blockScopesMap = new _map.default(); + _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + return _this; + } + + (0, _createClass2.default)(BaseIdentifierObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue, blockScopeNode) { + if (this.blockScopesMap.has(blockScopeNode)) { + var namesMap = this.blockScopesMap.get(blockScopeNode); + + if (namesMap.has(nodeValue)) { + nodeValue = namesMap.get(nodeValue); + } + } + + return NodeFactory_1.NodeFactory.identifierNode(nodeValue); + } + }, { + key: "storeGlobalName", + value: function storeGlobalName(nodeName, blockScopeNode) { + if (this.isReservedName(nodeName)) { + return; + } + + var identifierName = this.identifierNamesGenerator.generateWithPrefix(); + + if (!this.blockScopesMap.has(blockScopeNode)) { + this.blockScopesMap.set(blockScopeNode, new _map.default()); + } + + var namesMap = this.blockScopesMap.get(blockScopeNode); + namesMap.set(nodeName, identifierName); + } + }, { + key: "storeLocalName", + value: function storeLocalName(nodeName, blockScopeNode) { + if (this.isReservedName(nodeName)) { + return; + } + + var identifierName = this.identifierNamesGenerator.generate(); + + if (!this.blockScopesMap.has(blockScopeNode)) { + this.blockScopesMap.set(blockScopeNode, new _map.default()); + } + + var namesMap = this.blockScopesMap.get(blockScopeNode); + namesMap.set(nodeName, identifierName); + } + }, { + key: "isReservedName", + value: function isReservedName(name) { + return this.options.reservedNames.some(function (reservedName) { + return new RegExp(reservedName, 'g').exec(name) !== null; + }); + } + }]); + return BaseIdentifierObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +BaseIdentifierObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], BaseIdentifierObfuscatingReplacer); +exports.BaseIdentifierObfuscatingReplacer = BaseIdentifierObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts": +/*!*************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/BooleanLiteralObfuscatingReplacer.ts ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BooleanLiteralObfuscatingReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(BooleanLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function BooleanLiteralObfuscatingReplacer(options) { + (0, _classCallCheck2.default)(this, BooleanLiteralObfuscatingReplacer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BooleanLiteralObfuscatingReplacer).call(this, options)); + } + + (0, _createClass2.default)(BooleanLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + return nodeValue ? BooleanLiteralObfuscatingReplacer_1.getTrueUnaryExpressionNode() : BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode(); + } + }], [{ + key: "getTrueUnaryExpressionNode", + value: function getTrueUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', BooleanLiteralObfuscatingReplacer_1.getFalseUnaryExpressionNode()); + } + }, { + key: "getFalseUnaryExpressionNode", + value: function getFalseUnaryExpressionNode() { + return NodeFactory_1.NodeFactory.unaryExpressionNode('!', NodeFactory_1.NodeFactory.arrayExpressionNode()); + } + }]); + return BooleanLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], BooleanLiteralObfuscatingReplacer); +exports.BooleanLiteralObfuscatingReplacer = BooleanLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/NumberLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts"); + +var NumberLiteralObfuscatingReplacer = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(NumberLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function NumberLiteralObfuscatingReplacer(options) { + var _this; + + (0, _classCallCheck2.default)(this, NumberLiteralObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(NumberLiteralObfuscatingReplacer).call(this, options)); + _this.numberLiteralCache = new _map.default(); + return _this; + } + + (0, _createClass2.default)(NumberLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + var rawValue; + + if (this.numberLiteralCache.has(nodeValue)) { + rawValue = this.numberLiteralCache.get(nodeValue); + } else { + if (!NumberUtils_1.NumberUtils.isCeil(nodeValue)) { + rawValue = String(nodeValue); + } else { + rawValue = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(NumberUtils_1.NumberUtils.toHex(nodeValue)); + } + + this.numberLiteralCache.set(nodeValue, rawValue); + } + + return NodeFactory_1.NodeFactory.literalNode(nodeValue, rawValue); + } + }]); + return NumberLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +NumberLiteralObfuscatingReplacer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], NumberLiteralObfuscatingReplacer); +exports.NumberLiteralObfuscatingReplacer = NumberLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts": +/*!************************************************************************************************************************************************!*\ + !*** ./src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts ***! + \************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringLiteralObfuscatingReplacer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var AbstractObfuscatingReplacer_1 = __webpack_require__(/*! ../AbstractObfuscatingReplacer */ "./src/node-transformers/obfuscating-transformers/obfuscating-replacers/AbstractObfuscatingReplacer.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NumberUtils_1 = __webpack_require__(/*! ../../../../utils/NumberUtils */ "./src/utils/NumberUtils.ts"); + +var Utils_1 = __webpack_require__(/*! ../../../../utils/Utils */ "./src/utils/Utils.ts"); + +var StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = +/*#__PURE__*/ +function (_AbstractObfuscatingR) { + (0, _inherits2.default)(StringLiteralObfuscatingReplacer, _AbstractObfuscatingR); + + function StringLiteralObfuscatingReplacer(stringArrayStorage, escapeSequenceEncoder, randomGenerator, cryptUtils, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringLiteralObfuscatingReplacer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringLiteralObfuscatingReplacer).call(this, options)); + _this.nodesCache = new _map.default(); + _this.stringLiteralHexadecimalIndexCache = new _map.default(); + _this.stringArrayStorage = stringArrayStorage; + _this.escapeSequenceEncoder = escapeSequenceEncoder; + _this.randomGenerator = randomGenerator; + _this.cryptUtils = cryptUtils; + _this.rc4Keys = _this.randomGenerator.getRandomGenerator().n(function () { + return _this.randomGenerator.getRandomGenerator().string({ + length: StringLiteralObfuscatingReplacer_1.rc4KeyLength + }); + }, StringLiteralObfuscatingReplacer_1.rc4KeysCount); + return _this; + } + + (0, _createClass2.default)(StringLiteralObfuscatingReplacer, [{ + key: "replace", + value: function replace(nodeValue) { + var useStringArray = this.canUseStringArray(nodeValue); + var cacheKey = "".concat(nodeValue, "-").concat(String(useStringArray)); + var useCacheValue = this.nodesCache.has(cacheKey) && this.options.stringArrayEncoding !== StringArrayEncoding_1.StringArrayEncoding.Rc4; + + if (useCacheValue) { + return this.nodesCache.get(cacheKey); + } + + var resultNode = useStringArray ? this.replaceWithStringArrayCallNode(nodeValue) : this.replaceWithLiteralNode(nodeValue); + this.nodesCache.set(cacheKey, resultNode); + return resultNode; + } + }, { + key: "canUseStringArray", + value: function canUseStringArray(nodeValue) { + return this.options.stringArray && nodeValue.length >= StringLiteralObfuscatingReplacer_1.minimumLengthForStringArray && this.randomGenerator.getMathRandom() <= this.options.stringArrayThreshold; + } + }, { + key: "getStringArrayHexadecimalIndex", + value: function getStringArrayHexadecimalIndex(value, stringArrayStorageLength) { + if (this.stringLiteralHexadecimalIndexCache.has(value)) { + return { + fromCache: true, + index: this.stringLiteralHexadecimalIndexCache.get(value) + }; + } + + var hexadecimalRawIndex = NumberUtils_1.NumberUtils.toHex(stringArrayStorageLength); + var hexadecimalIndex = "".concat(Utils_1.Utils.hexadecimalPrefix).concat(hexadecimalRawIndex); + this.stringLiteralHexadecimalIndexCache.set(value, hexadecimalIndex); + return { + fromCache: false, + index: hexadecimalIndex + }; + } + }, { + key: "getEncodedValue", + value: function getEncodedValue(value) { + var encodedValue; + var key = null; + + switch (this.options.stringArrayEncoding) { + case StringArrayEncoding_1.StringArrayEncoding.Rc4: + key = this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys); + encodedValue = this.cryptUtils.btoa(this.cryptUtils.rc4(value, key)); + break; + + case StringArrayEncoding_1.StringArrayEncoding.Base64: + encodedValue = this.cryptUtils.btoa(value); + break; + + default: + encodedValue = value; + } + + return { + encodedValue: encodedValue, + key: key + }; + } + }, { + key: "replaceWithLiteralNode", + value: function replaceWithLiteralNode(value) { + return NodeFactory_1.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(value, this.options.unicodeEscapeSequence)); + } + }, { + key: "replaceWithStringArrayCallNode", + value: function replaceWithStringArrayCallNode(value) { + var _this$getEncodedValue = this.getEncodedValue(value), + encodedValue = _this$getEncodedValue.encodedValue, + key = _this$getEncodedValue.key; + + var escapedValue = this.escapeSequenceEncoder.encode(encodedValue, this.options.unicodeEscapeSequence); + var stringArrayStorageLength = this.stringArrayStorage.getLength(); + var stringArrayStorageCallsWrapperName = this.stringArrayStorage.getStorageId().split('|')[1]; + + var _this$getStringArrayH = this.getStringArrayHexadecimalIndex(escapedValue, stringArrayStorageLength), + fromCache = _this$getStringArrayH.fromCache, + index = _this$getStringArrayH.index; + + if (!fromCache) { + this.stringArrayStorage.set(stringArrayStorageLength, escapedValue); + } + + var callExpressionArgs = [StringLiteralObfuscatingReplacer_1.getHexadecimalLiteralNode(index)]; + + if (key) { + callExpressionArgs.push(StringLiteralObfuscatingReplacer_1.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(key, this.options.unicodeEscapeSequence))); + } + + var stringArrayIdentifierNode = NodeFactory_1.NodeFactory.identifierNode(stringArrayStorageCallsWrapperName); + NodeMetadata_1.NodeMetadata.set(stringArrayIdentifierNode, { + renamedIdentifier: true + }); + return NodeFactory_1.NodeFactory.callExpressionNode(stringArrayIdentifierNode, callExpressionArgs); + } + }], [{ + key: "getHexadecimalLiteralNode", + value: function getHexadecimalLiteralNode(hexadecimalIndex) { + var hexadecimalLiteralNode = NodeFactory_1.NodeFactory.literalNode(hexadecimalIndex); + NodeMetadata_1.NodeMetadata.set(hexadecimalLiteralNode, { + replacedLiteral: true + }); + return hexadecimalLiteralNode; + } + }, { + key: "getRc4KeyLiteralNode", + value: function getRc4KeyLiteralNode(literalValue) { + var rc4KeyLiteralNode = NodeFactory_1.NodeFactory.literalNode(literalValue); + NodeMetadata_1.NodeMetadata.set(rc4KeyLiteralNode, { + replacedLiteral: true + }); + return rc4KeyLiteralNode; + } + }]); + return StringLiteralObfuscatingReplacer; +}(AbstractObfuscatingReplacer_1.AbstractObfuscatingReplacer); + +StringLiteralObfuscatingReplacer.minimumLengthForStringArray = 3; +StringLiteralObfuscatingReplacer.rc4KeyLength = 4; +StringLiteralObfuscatingReplacer.rc4KeysCount = 50; +StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TStringArrayStorage)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IEscapeSequenceEncoder)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], StringLiteralObfuscatingReplacer); +exports.StringLiteralObfuscatingReplacer = StringLiteralObfuscatingReplacer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CommentsTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CommentsTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CommentsTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CommentsTransformer = CommentsTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CommentsTransformer, _AbstractNodeTransfor); + + function CommentsTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, CommentsTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CommentsTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(CommentsTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + leave: function leave(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return _this.transformNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + if (node.leadingComments) { + node.leadingComments = this.transformComments(node.leadingComments); + } + + if (node.trailingComments) { + node.trailingComments = this.transformComments(node.trailingComments); + } + + return node; + } + }, { + key: "transformComments", + value: function transformComments(comments) { + return comments.filter(function (comment) { + return CommentsTransformer_1.preservedWords.some(function (preservedWord) { + return comment.value.includes(preservedWord); + }); + }); + } + }]); + return CommentsTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CommentsTransformer.preservedWords = ['@license', '@preserve']; +CommentsTransformer = CommentsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], CommentsTransformer); +exports.CommentsTransformer = CommentsTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts": +/*!********************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/CustomNodesTransformer.ts ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ObfuscationEvent_1 = __webpack_require__(/*! ../../enums/event-emitters/ObfuscationEvent */ "./src/enums/event-emitters/ObfuscationEvent.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var CustomNodesTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(CustomNodesTransformer, _AbstractNodeTransfor); + + function CustomNodesTransformer(stackTraceAnalyzer, obfuscationEventEmitter, customNodeGroupStorage, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CustomNodesTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CustomNodesTransformer).call(this, randomGenerator, options)); + _this.stackTraceData = []; + _this.stackTraceAnalyzer = stackTraceAnalyzer; + _this.obfuscationEventEmitter = obfuscationEventEmitter; + _this.customNodeGroupStorage = customNodeGroupStorage; + return _this; + } + + (0, _createClass2.default)(CustomNodesTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + leave: function leave(node, parentNode) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.analyzeNode(node, parentNode); + + _this2.appendCustomNodesBeforeObfuscation(node, parentNode); + + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + return { + leave: function leave(node, parentNode) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + _this2.appendCustomNodesAfterObfuscation(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "analyzeNode", + value: function analyzeNode(node, parentNode) { + this.stackTraceData = this.stackTraceAnalyzer.analyze(node); + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + return node; + } + }, { + key: "appendCustomNodesBeforeObfuscation", + value: function appendCustomNodesBeforeObfuscation(node, parentNode) { + var _this3 = this; + + this.customNodeGroupStorage.getStorage().forEach(function (customNodeGroup) { + customNodeGroup.initialize(); + + _this3.obfuscationEventEmitter.once(customNodeGroup.getAppendEvent(), customNodeGroup.appendCustomNodes.bind(customNodeGroup)); + }); + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.BeforeObfuscation, node, this.stackTraceData); + } + }, { + key: "appendCustomNodesAfterObfuscation", + value: function appendCustomNodesAfterObfuscation(node, parentNode) { + this.obfuscationEventEmitter.emit(ObfuscationEvent_1.ObfuscationEvent.AfterObfuscation, node, this.stackTraceData); + } + }]); + return CustomNodesTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +CustomNodesTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object])], CustomNodesTransformer); +exports.CustomNodesTransformer = CustomNodesTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/EvaCallExpressionTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _set = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/set */ "@babel/runtime/core-js/set")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var EvalCallExpressionTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var js_string_escape_1 = tslib_1.__importDefault(__webpack_require__(/*! js-string-escape */ "js-string-escape")); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeFactory_1 = __webpack_require__(/*! ../../node/NodeFactory */ "./src/node/NodeFactory.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(EvalCallExpressionTransformer, _AbstractNodeTransfor); + + function EvalCallExpressionTransformer(randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, EvalCallExpressionTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(EvalCallExpressionTransformer).call(this, randomGenerator, options)); + _this.evalRootAstHostNodeSet = new _set.default(); + return _this; + } + + (0, _createClass2.default)(EvalCallExpressionTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + if (parentNode && NodeGuards_1.NodeGuards.isCallExpressionNode(node) && NodeGuards_1.NodeGuards.isIdentifierNode(node.callee) && node.callee.name === 'eval') { + return _this2.transformNode(node, parentNode); + } + } + }; + + case TransformationStage_1.TransformationStage.Finalizing: + if (!this.evalRootAstHostNodeSet.size) { + return null; + } + + return { + leave: function leave(node, parentNode) { + if (parentNode && _this2.isEvalRootAstHostNode(node)) { + return _this2.restoreNode(node, parentNode); + } + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(callExpressionNode, parentNode) { + var callExpressionFirstArgument = callExpressionNode.arguments[0]; + + if (!callExpressionFirstArgument) { + return callExpressionNode; + } + + var evalString = EvalCallExpressionTransformer_1.extractEvalStringFromCallExpressionArgument(callExpressionFirstArgument); + + if (!evalString) { + return callExpressionNode; + } + + var ast; + + try { + ast = NodeUtils_1.NodeUtils.convertCodeToStructure(evalString); + } catch (_a) { + return callExpressionNode; + } + + var evalRootAstHostNode = NodeFactory_1.NodeFactory.functionExpressionNode([], NodeFactory_1.NodeFactory.blockStatementNode(ast)); + this.evalRootAstHostNodeSet.add(evalRootAstHostNode); + return evalRootAstHostNode; + } + }, { + key: "restoreNode", + value: function restoreNode(evalRootAstHostNode, parentNode) { + var targetAst = evalRootAstHostNode.body.body; + var obfuscatedCode = NodeUtils_1.NodeUtils.convertStructureToCode(targetAst); + return NodeFactory_1.NodeFactory.callExpressionNode(NodeFactory_1.NodeFactory.identifierNode('eval'), [NodeFactory_1.NodeFactory.literalNode(js_string_escape_1.default(obfuscatedCode))]); + } + }, { + key: "isEvalRootAstHostNode", + value: function isEvalRootAstHostNode(node) { + return NodeGuards_1.NodeGuards.isFunctionExpressionNode(node) && this.evalRootAstHostNodeSet.has(node); + } + }], [{ + key: "extractEvalStringFromCallExpressionArgument", + value: function extractEvalStringFromCallExpressionArgument(node) { + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + return EvalCallExpressionTransformer_1.extractEvalStringFromLiteralNode(node); + } + + if (NodeGuards_1.NodeGuards.isTemplateLiteralNode(node)) { + return EvalCallExpressionTransformer_1.extractEvalStringFromTemplateLiteralNode(node); + } + + return null; + } + }, { + key: "extractEvalStringFromLiteralNode", + value: function extractEvalStringFromLiteralNode(node) { + return typeof node.value === 'string' ? node.value : null; + } + }, { + key: "extractEvalStringFromTemplateLiteralNode", + value: function extractEvalStringFromTemplateLiteralNode(node) { + var quasis = node.quasis; + var allowedQuasisLength = 1; + + if (quasis.length !== allowedQuasisLength || node.expressions.length) { + return null; + } + + return quasis[0].value.cooked; + } + }]); + return EvalCallExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +EvalCallExpressionTransformer = EvalCallExpressionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], EvalCallExpressionTransformer); +exports.EvalCallExpressionTransformer = EvalCallExpressionTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/MetadataTransformer.ts": +/*!*****************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/MetadataTransformer.ts ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeGuards_1 = __webpack_require__(/*! ../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var MetadataTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(MetadataTransformer, _AbstractNodeTransfor); + + function MetadataTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MetadataTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MetadataTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(MetadataTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: false + }); + + if (NodeGuards_1.NodeGuards.isIdentifierNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { + renamedIdentifier: false + }); + } + + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeMetadata_1.NodeMetadata.set(node, { + replacedLiteral: false + }); + } + + return node; + } + }]); + return MetadataTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +MetadataTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MetadataTransformer); +exports.MetadataTransformer = MetadataTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts": +/*!**************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.ts ***! + \**************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ObfuscatingGuardsTransformer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ObfuscatingGuard_1 = __webpack_require__(/*! ../../enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard */ "./src/enums/node-transformers/preparing-transformers/obfuscating-guards/ObfuscatingGuard.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ../../node/NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ObfuscatingGuardsTransformer, _AbstractNodeTransfor); + + function ObfuscatingGuardsTransformer(obfuscatingGuardFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, ObfuscatingGuardsTransformer); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ObfuscatingGuardsTransformer).call(this, randomGenerator, options)); + _this.obfuscatingGuards = ObfuscatingGuardsTransformer_1.obfuscatingGuardsList.map(obfuscatingGuardFactory); + return _this; + } + + (0, _createClass2.default)(ObfuscatingGuardsTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this2 = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this2.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + var obfuscationAllowed = this.obfuscatingGuards.every(function (nodeGuard) { + return nodeGuard.check(node); + }); + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: !obfuscationAllowed + }); + return node; + } + }]); + return ObfuscatingGuardsTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ObfuscatingGuardsTransformer.obfuscatingGuardsList = [ObfuscatingGuard_1.ObfuscatingGuard.BlackListNodeGuard, ObfuscatingGuard_1.ObfuscatingGuard.ConditionalCommentNodeGuard]; +ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeGuard)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], ObfuscatingGuardsTransformer); +exports.ObfuscatingGuardsTransformer = ObfuscatingGuardsTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/ParentificationTransformer.ts": +/*!************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/ParentificationTransformer.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var TransformationStage_1 = __webpack_require__(/*! ../../enums/node-transformers/TransformationStage */ "./src/enums/node-transformers/TransformationStage.ts"); + +var AbstractNodeTransformer_1 = __webpack_require__(/*! ../AbstractNodeTransformer */ "./src/node-transformers/AbstractNodeTransformer.ts"); + +var NodeUtils_1 = __webpack_require__(/*! ../../node/NodeUtils */ "./src/node/NodeUtils.ts"); + +var ParentificationTransformer = +/*#__PURE__*/ +function (_AbstractNodeTransfor) { + (0, _inherits2.default)(ParentificationTransformer, _AbstractNodeTransfor); + + function ParentificationTransformer(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ParentificationTransformer); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ParentificationTransformer).call(this, randomGenerator, options)); + } + + (0, _createClass2.default)(ParentificationTransformer, [{ + key: "getVisitor", + value: function getVisitor(transformationStage) { + var _this = this; + + switch (transformationStage) { + case TransformationStage_1.TransformationStage.Preparing: + return { + enter: function enter(node, parentNode) { + return _this.transformNode(node, parentNode); + } + }; + + default: + return null; + } + } + }, { + key: "transformNode", + value: function transformNode(node, parentNode) { + return NodeUtils_1.NodeUtils.parentizeNode(node, parentNode); + } + }]); + return ParentificationTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); + +ParentificationTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ParentificationTransformer); +exports.ParentificationTransformer = ParentificationTransformer; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts": +/*!******************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/BlackListObfuscatingGuard.ts ***! + \******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var BlackListObfuscatingGuard_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = +/*#__PURE__*/ +function () { + function BlackListObfuscatingGuard() { + (0, _classCallCheck2.default)(this, BlackListObfuscatingGuard); + this.blackListGuardsLength = BlackListObfuscatingGuard_1.blackListGuards.length; + } + + (0, _createClass2.default)(BlackListObfuscatingGuard, [{ + key: "check", + value: function check(node) { + for (var i = 0; i < this.blackListGuardsLength; i++) { + if (BlackListObfuscatingGuard_1.blackListGuards[i](node)) { + return false; + } + } + + return true; + } + }]); + return BlackListObfuscatingGuard; +}(); + +BlackListObfuscatingGuard.blackListGuards = [NodeGuards_1.NodeGuards.isUseStrictOperator]; +BlackListObfuscatingGuard = BlackListObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__metadata("design:paramtypes", [])], BlackListObfuscatingGuard); +exports.BlackListObfuscatingGuard = BlackListObfuscatingGuard; + +/***/ }), + +/***/ "./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts": +/*!***************************************************************************************************************!*\ + !*** ./src/node-transformers/preparing-transformers/obfuscating-guards/ConditionalCommentObfuscatingGuard.ts ***! + \***************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var ConditionalCommentObfuscatingGuard_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var NodeGuards_1 = __webpack_require__(/*! ../../../node/NodeGuards */ "./src/node/NodeGuards.ts"); + +var ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = +/*#__PURE__*/ +function () { + function ConditionalCommentObfuscatingGuard() { + (0, _classCallCheck2.default)(this, ConditionalCommentObfuscatingGuard); + this.obfuscationAllowedForCurrentNode = true; + this.obfuscationAllowedForNextNode = null; + } + + (0, _createClass2.default)(ConditionalCommentObfuscatingGuard, [{ + key: "check", + value: function check(node) { + if (this.obfuscationAllowedForNextNode) { + this.obfuscationAllowedForCurrentNode = this.obfuscationAllowedForNextNode; + this.obfuscationAllowedForNextNode = null; + } + + if (!NodeGuards_1.NodeGuards.isNodeWithComments(node)) { + return this.obfuscationAllowedForCurrentNode; + } + + var leadingComments = node.leadingComments; + var trailingComments = node.trailingComments; + + if (leadingComments) { + this.obfuscationAllowedForCurrentNode = this.checkComments(leadingComments); + } + + if (trailingComments) { + this.obfuscationAllowedForNextNode = this.checkComments(trailingComments); + } + + return this.obfuscationAllowedForCurrentNode; + } + }, { + key: "checkComments", + value: function checkComments(comments) { + var commentsLength = comments.length; + var obfuscationAllowed = this.obfuscationAllowedForCurrentNode; + + for (var i = 0; i < commentsLength; i++) { + var comment = comments[i]; + + if (ConditionalCommentObfuscatingGuard_1.obfuscationEnableCommentRegExp.test(comment.value)) { + obfuscationAllowed = true; + continue; + } + + if (ConditionalCommentObfuscatingGuard_1.obfuscationDisableCommentRegExp.test(comment.value)) { + obfuscationAllowed = false; + } + } + + return obfuscationAllowed; + } + }]); + return ConditionalCommentObfuscatingGuard; +}(); + +ConditionalCommentObfuscatingGuard.obfuscationEnableCommentRegExp = new RegExp('javascript-obfuscator *: *enable'); +ConditionalCommentObfuscatingGuard.obfuscationDisableCommentRegExp = new RegExp('javascript-obfuscator *: *disable'); +ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard_1 = tslib_1.__decorate([inversify_1.injectable()], ConditionalCommentObfuscatingGuard); +exports.ConditionalCommentObfuscatingGuard = ConditionalCommentObfuscatingGuard; + +/***/ }), + +/***/ "./src/node/NodeAppender.ts": +/*!**********************************!*\ + !*** ./src/node/NodeAppender.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeAppender = +/*#__PURE__*/ +function () { + function NodeAppender() { + (0, _classCallCheck2.default)(this, NodeAppender); + } + + (0, _createClass2.default)(NodeAppender, null, [{ + key: "append", + value: function append(scope, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope)).concat((0, _toConsumableArray2.default)(statements))); + } + }, { + key: "appendToOptimalBlockScope", + value: function appendToOptimalBlockScope(stackTraceData, blockScopeNode, bodyStatements) { + var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + var targetBlockScope = stackTraceData.length ? NodeAppender.getOptimalBlockScope(stackTraceData, index) : blockScopeNode; + NodeAppender.prepend(targetBlockScope, bodyStatements); + } + }, { + key: "getOptimalBlockScope", + value: function getOptimalBlockScope(stackTraceData, index) { + var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity; + var firstCall = stackTraceData[index]; + + if (deep <= 0) { + throw new Error('Invalid `deep` argument value. Value should be bigger then 0.'); + } + + if (deep > 1 && firstCall.stackTrace.length) { + return NodeAppender.getOptimalBlockScope(firstCall.stackTrace, 0, --deep); + } else { + return firstCall.callee; + } + } + }, { + key: "insertAfter", + value: function insertAfter(scope, statements, target) { + var indexInScopeStatement = NodeAppender.getScopeStatements(scope).indexOf(target); + NodeAppender.insertAtIndex(scope, statements, indexInScopeStatement + 1); + } + }, { + key: "insertAtIndex", + value: function insertAtIndex(scope, statements, index) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope).slice(0, index)).concat((0, _toConsumableArray2.default)(statements), (0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope).slice(index)))); + } + }, { + key: "prepend", + value: function prepend(scope, statements) { + statements = NodeAppender.parentizeScopeStatementsBeforeAppend(scope, statements); + NodeAppender.setScopeStatements(scope, (0, _toConsumableArray2.default)(statements).concat((0, _toConsumableArray2.default)(NodeAppender.getScopeStatements(scope)))); + } + }, { + key: "getScopeStatements", + value: function getScopeStatements(scope) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scope)) { + return scope.consequent; + } + + return scope.body; + } + }, { + key: "parentizeScopeStatementsBeforeAppend", + value: function parentizeScopeStatementsBeforeAppend(scope, statements) { + statements.forEach(function (statement) { + statement.parentNode = scope; + }); + return statements; + } + }, { + key: "setScopeStatements", + value: function setScopeStatements(scope, statements) { + if (NodeGuards_1.NodeGuards.isSwitchCaseNode(scope)) { + scope.consequent = statements; + return; + } + + scope.body = statements; + } + }]); + return NodeAppender; +}(); + +exports.NodeAppender = NodeAppender; + +/***/ }), + +/***/ "./src/node/NodeFactory.ts": +/*!*********************************!*\ + !*** ./src/node/NodeFactory.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var NodeFactory = +/*#__PURE__*/ +function () { + function NodeFactory() { + (0, _classCallCheck2.default)(this, NodeFactory); + } + + (0, _createClass2.default)(NodeFactory, null, [{ + key: "programNode", + value: function programNode() { + var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.Program, + body: body, + sourceType: 'script', + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "arrayExpressionNode", + value: function arrayExpressionNode() { + var elements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.ArrayExpression, + elements: elements, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "assignmentExpressionNode", + value: function assignmentExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.AssignmentExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "binaryExpressionNode", + value: function binaryExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.BinaryExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "blockStatementNode", + value: function blockStatementNode() { + var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + return { + type: NodeType_1.NodeType.BlockStatement, + body: body, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "breakStatement", + value: function breakStatement(label) { + var breakStatementNode = { + type: NodeType_1.NodeType.BreakStatement, + metadata: { + ignoredNode: false + } + }; + + if (label) { + breakStatementNode.label = label; + } + + return breakStatementNode; + } + }, { + key: "callExpressionNode", + value: function callExpressionNode(callee) { + var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + return { + type: NodeType_1.NodeType.CallExpression, + callee: callee, + arguments: args, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "continueStatement", + value: function continueStatement(label) { + var continueStatementNode = { + type: NodeType_1.NodeType.ContinueStatement, + metadata: { + ignoredNode: false + } + }; + + if (label) { + continueStatementNode.label = label; + } + + return continueStatementNode; + } + }, { + key: "expressionStatementNode", + value: function expressionStatementNode(expression) { + return { + type: NodeType_1.NodeType.ExpressionStatement, + expression: expression, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "functionDeclarationNode", + value: function functionDeclarationNode(functionName, params, body) { + return { + type: NodeType_1.NodeType.FunctionDeclaration, + id: NodeFactory.identifierNode(functionName), + params: params, + body: body, + generator: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "functionExpressionNode", + value: function functionExpressionNode(params, body) { + return { + type: NodeType_1.NodeType.FunctionExpression, + params: params, + body: body, + generator: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "ifStatementNode", + value: function ifStatementNode(test, consequent, alternate) { + return (0, _assign.default)({ + type: NodeType_1.NodeType.IfStatement, + test: test, + consequent: consequent + }, alternate && { + alternate: alternate + }, { + metadata: { + ignoredNode: false + } + }); + } + }, { + key: "identifierNode", + value: function identifierNode(name) { + return { + type: NodeType_1.NodeType.Identifier, + name: name, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "literalNode", + value: function literalNode(value, raw) { + raw = raw !== undefined ? raw : "'".concat(value, "'"); + return { + type: NodeType_1.NodeType.Literal, + value: value, + raw: raw, + 'x-verbatim-property': { + content: raw, + precedence: escodegen.Precedence.Primary + }, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "logicalExpressionNode", + value: function logicalExpressionNode(operator, left, right) { + return { + type: NodeType_1.NodeType.LogicalExpression, + operator: operator, + left: left, + right: right, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "memberExpressionNode", + value: function memberExpressionNode(object, property) { + var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return { + type: NodeType_1.NodeType.MemberExpression, + computed: computed, + object: object, + property: property, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "methodDefinitionNode", + value: function methodDefinitionNode(key, value, kind, computed) { + return { + type: NodeType_1.NodeType.MethodDefinition, + key: key, + value: value, + kind: kind, + computed: computed, + static: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "objectExpressionNode", + value: function objectExpressionNode(properties) { + return { + type: NodeType_1.NodeType.ObjectExpression, + properties: properties, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "propertyNode", + value: function propertyNode(key, value) { + var computed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + return { + type: NodeType_1.NodeType.Property, + key: key, + value: value, + kind: 'init', + method: false, + shorthand: false, + computed: computed, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "returnStatementNode", + value: function returnStatementNode(argument) { + return { + type: NodeType_1.NodeType.ReturnStatement, + argument: argument, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "switchStatementNode", + value: function switchStatementNode(discriminant, cases) { + return { + type: NodeType_1.NodeType.SwitchStatement, + discriminant: discriminant, + cases: cases, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "switchCaseNode", + value: function switchCaseNode(test, consequent) { + return { + type: NodeType_1.NodeType.SwitchCase, + test: test, + consequent: consequent, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "unaryExpressionNode", + value: function unaryExpressionNode(operator, argument) { + var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + return { + type: NodeType_1.NodeType.UnaryExpression, + operator: operator, + argument: argument, + prefix: prefix, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "updateExpressionNode", + value: function updateExpressionNode(operator, argumentExpr) { + return { + type: NodeType_1.NodeType.UpdateExpression, + operator: operator, + argument: argumentExpr, + prefix: false, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "variableDeclarationNode", + value: function variableDeclarationNode() { + var declarations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'var'; + return { + type: NodeType_1.NodeType.VariableDeclaration, + declarations: declarations, + kind: kind, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "variableDeclaratorNode", + value: function variableDeclaratorNode(id, init) { + return { + type: NodeType_1.NodeType.VariableDeclarator, + id: id, + init: init, + metadata: { + ignoredNode: false + } + }; + } + }, { + key: "whileStatementNode", + value: function whileStatementNode(test, body) { + return { + type: NodeType_1.NodeType.WhileStatement, + test: test, + body: body, + metadata: { + ignoredNode: false + } + }; + } + }]); + return NodeFactory; +}(); + +exports.NodeFactory = NodeFactory; + +/***/ }), + +/***/ "./src/node/NodeGuards.ts": +/*!********************************!*\ + !*** ./src/node/NodeGuards.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeType_1 = __webpack_require__(/*! ../enums/node/NodeType */ "./src/enums/node/NodeType.ts"); + +var NodeGuards = +/*#__PURE__*/ +function () { + function NodeGuards() { + (0, _classCallCheck2.default)(this, NodeGuards); + } + + (0, _createClass2.default)(NodeGuards, null, [{ + key: "isArrayPatternNode", + value: function isArrayPatternNode(node) { + return node.type === NodeType_1.NodeType.ArrayPattern; + } + }, { + key: "isArrowFunctionExpressionNode", + value: function isArrowFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.ArrowFunctionExpression; + } + }, { + key: "isAssignmentExpressionNode", + value: function isAssignmentExpressionNode(node) { + return node.type === NodeType_1.NodeType.AssignmentExpression; + } + }, { + key: "isAssignmentPatternNode", + value: function isAssignmentPatternNode(node) { + return node.type === NodeType_1.NodeType.AssignmentPattern; + } + }, { + key: "isAwaitExpressionNode", + value: function isAwaitExpressionNode(node) { + return node.type === NodeType_1.NodeType.AwaitExpression; + } + }, { + key: "isBlockStatementNode", + value: function isBlockStatementNode(node) { + return node.type === NodeType_1.NodeType.BlockStatement; + } + }, { + key: "isBreakStatementNode", + value: function isBreakStatementNode(node) { + return node.type === NodeType_1.NodeType.BreakStatement; + } + }, { + key: "isCallExpressionNode", + value: function isCallExpressionNode(node) { + return node.type === NodeType_1.NodeType.CallExpression; + } + }, { + key: "isCatchClauseNode", + value: function isCatchClauseNode(node) { + return node.type === NodeType_1.NodeType.CatchClause; + } + }, { + key: "isClassDeclarationNode", + value: function isClassDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ClassDeclaration; + } + }, { + key: "isContinueStatementNode", + value: function isContinueStatementNode(node) { + return node.type === NodeType_1.NodeType.ContinueStatement; + } + }, { + key: "isExportNamedDeclarationNode", + value: function isExportNamedDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ExportNamedDeclaration; + } + }, { + key: "isExpressionStatementNode", + value: function isExpressionStatementNode(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement; + } + }, { + key: "isFunctionNode", + value: function isFunctionNode(node) { + return NodeGuards.isFunctionDeclarationNode(node) || NodeGuards.isFunctionExpressionNode(node) || NodeGuards.isArrowFunctionExpressionNode(node); + } + }, { + key: "isFunctionDeclarationNode", + value: function isFunctionDeclarationNode(node) { + return node.type === NodeType_1.NodeType.FunctionDeclaration; + } + }, { + key: "isFunctionExpressionNode", + value: function isFunctionExpressionNode(node) { + return node.type === NodeType_1.NodeType.FunctionExpression; + } + }, { + key: "isIdentifierNode", + value: function isIdentifierNode(node) { + return node.type === NodeType_1.NodeType.Identifier; + } + }, { + key: "isIfStatementNode", + value: function isIfStatementNode(node) { + return node.type === NodeType_1.NodeType.IfStatement; + } + }, { + key: "isImportDeclarationNode", + value: function isImportDeclarationNode(node) { + return node.type === NodeType_1.NodeType.ImportDeclaration; + } + }, { + key: "isImportDefaultSpecifierNode", + value: function isImportDefaultSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportDefaultSpecifier; + } + }, { + key: "isImportNamespaceSpecifierNode", + value: function isImportNamespaceSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportNamespaceSpecifier; + } + }, { + key: "isImportSpecifierNode", + value: function isImportSpecifierNode(node) { + return node.type === NodeType_1.NodeType.ImportSpecifier; + } + }, { + key: "isLabelIdentifierNode", + value: function isLabelIdentifierNode(node, parentNode) { + var parentNodeIsLabeledStatementNode = NodeGuards.isLabeledStatementNode(parentNode) && parentNode.label === node; + var parentNodeIsContinueStatementNode = NodeGuards.isContinueStatementNode(parentNode) && parentNode.label === node; + var parentNodeIsBreakStatementNode = NodeGuards.isBreakStatementNode(parentNode) && parentNode.label === node; + return parentNodeIsLabeledStatementNode || parentNodeIsContinueStatementNode || parentNodeIsBreakStatementNode; + } + }, { + key: "isLabeledStatementNode", + value: function isLabeledStatementNode(node) { + return node.type === NodeType_1.NodeType.LabeledStatement; + } + }, { + key: "isLiteralNode", + value: function isLiteralNode(node) { + return node.type === NodeType_1.NodeType.Literal; + } + }, { + key: "isMemberExpressionNode", + value: function isMemberExpressionNode(node) { + return node.type === NodeType_1.NodeType.MemberExpression; + } + }, { + key: "isMethodDefinitionNode", + value: function isMethodDefinitionNode(node) { + return node.type === NodeType_1.NodeType.MethodDefinition; + } + }, { + key: "isNode", + value: function isNode(object) { + return object && !object.type !== undefined; + } + }, { + key: "isNodeHasBlockScope", + value: function isNodeHasBlockScope(node, parentNode) { + return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) && NodeGuards.nodesWithBlockScope.includes(parentNode.type); + } + }, { + key: "isNodeHasScope", + value: function isNodeHasScope(node) { + return NodeGuards.isProgramNode(node) || NodeGuards.isBlockStatementNode(node) || NodeGuards.isSwitchCaseNode(node); + } + }, { + key: "isNodeWithComments", + value: function isNodeWithComments(node) { + return Boolean(node.leadingComments) || Boolean(node.trailingComments); + } + }, { + key: "isObjectPatternNode", + value: function isObjectPatternNode(node) { + return node.type === NodeType_1.NodeType.ObjectPattern; + } + }, { + key: "isObjectExpressionNode", + value: function isObjectExpressionNode(node) { + return node.type === NodeType_1.NodeType.ObjectExpression; + } + }, { + key: "isProgramNode", + value: function isProgramNode(node) { + return node.type === NodeType_1.NodeType.Program; + } + }, { + key: "isPropertyNode", + value: function isPropertyNode(node) { + return node.type === NodeType_1.NodeType.Property; + } + }, { + key: "isReplaceableIdentifierNode", + value: function isReplaceableIdentifierNode(node, parentNode) { + if (!NodeGuards.isIdentifierNode(node)) { + return false; + } + + var parentNodeIsPropertyNode = NodeGuards.isPropertyNode(parentNode) && !parentNode.computed && parentNode.key === node; + var parentNodeIsMemberExpressionNode = NodeGuards.isMemberExpressionNode(parentNode) && !parentNode.computed && parentNode.property === node; + var parentNodeIsMethodDefinitionNode = NodeGuards.isMethodDefinitionNode(parentNode) && !parentNode.computed; + var isLabelIdentifierNode = NodeGuards.isLabelIdentifierNode(node, parentNode); + return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode && !parentNodeIsMethodDefinitionNode && !isLabelIdentifierNode; + } + }, { + key: "isRestElementNode", + value: function isRestElementNode(node) { + return node.type === NodeType_1.NodeType.RestElement; + } + }, { + key: "isReturnStatementNode", + value: function isReturnStatementNode(node) { + return node.type === NodeType_1.NodeType.ReturnStatement; + } + }, { + key: "isSuperNode", + value: function isSuperNode(node) { + return node.type === NodeType_1.NodeType.Super; + } + }, { + key: "isSwitchCaseNode", + value: function isSwitchCaseNode(node) { + return node.type === NodeType_1.NodeType.SwitchCase; + } + }, { + key: "isTaggedTemplateExpressionNode", + value: function isTaggedTemplateExpressionNode(node) { + return node.type === NodeType_1.NodeType.TaggedTemplateExpression; + } + }, { + key: "isTemplateLiteralNode", + value: function isTemplateLiteralNode(node) { + return node.type === NodeType_1.NodeType.TemplateLiteral; + } + }, { + key: "isUnaryExpressionNode", + value: function isUnaryExpressionNode(node) { + return node.type === NodeType_1.NodeType.UnaryExpression; + } + }, { + key: "isUseStrictOperator", + value: function isUseStrictOperator(node) { + return node.type === NodeType_1.NodeType.ExpressionStatement && node.directive === 'use strict'; + } + }, { + key: "isVariableDeclarationNode", + value: function isVariableDeclarationNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclaration; + } + }, { + key: "isVariableDeclaratorNode", + value: function isVariableDeclaratorNode(node) { + return node.type === NodeType_1.NodeType.VariableDeclarator; + } + }, { + key: "isWhileStatementNode", + value: function isWhileStatementNode(node) { + return node.type === NodeType_1.NodeType.WhileStatement; + } + }]); + return NodeGuards; +}(); + +NodeGuards.nodesWithBlockScope = [NodeType_1.NodeType.ArrowFunctionExpression, NodeType_1.NodeType.FunctionDeclaration, NodeType_1.NodeType.FunctionExpression, NodeType_1.NodeType.MethodDefinition]; +exports.NodeGuards = NodeGuards; + +/***/ }), + +/***/ "./src/node/NodeMetadata.ts": +/*!**********************************!*\ + !*** ./src/node/NodeMetadata.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NodeMetadata = +/*#__PURE__*/ +function () { + function NodeMetadata() { + (0, _classCallCheck2.default)(this, NodeMetadata); + } + + (0, _createClass2.default)(NodeMetadata, null, [{ + key: "set", + value: function set(node, metadata) { + node.metadata = (0, _assign.default)(node.metadata || {}, metadata); + } + }, { + key: "get", + value: function get(node, metadataKey) { + return node.metadata !== undefined ? node.metadata[metadataKey] : undefined; + } + }, { + key: "isIgnoredNode", + value: function isIgnoredNode(node) { + return NodeMetadata.get(node, 'ignoredNode') === true; + } + }, { + key: "isRenamedIdentifier", + value: function isRenamedIdentifier(identifierNode) { + return NodeMetadata.get(identifierNode, 'renamedIdentifier') === true; + } + }, { + key: "isReplacedLiteral", + value: function isReplacedLiteral(literalNode) { + return NodeMetadata.get(literalNode, 'replacedLiteral') === true; + } + }]); + return NodeMetadata; +}(); + +exports.NodeMetadata = NodeMetadata; + +/***/ }), + +/***/ "./src/node/NodeUtils.ts": +/*!*******************************!*\ + !*** ./src/node/NodeUtils.ts ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ "@babel/runtime/helpers/typeof")); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var escodegen = tslib_1.__importStar(__webpack_require__(/*! escodegen-wallaby */ "escodegen-wallaby")); + +var espree = tslib_1.__importStar(__webpack_require__(/*! espree */ "espree")); + +var estraverse = tslib_1.__importStar(__webpack_require__(/*! estraverse */ "estraverse")); + +var NodeGuards_1 = __webpack_require__(/*! ./NodeGuards */ "./src/node/NodeGuards.ts"); + +var NodeMetadata_1 = __webpack_require__(/*! ./NodeMetadata */ "./src/node/NodeMetadata.ts"); + +var NodeUtils = +/*#__PURE__*/ +function () { + function NodeUtils() { + (0, _classCallCheck2.default)(this, NodeUtils); + } + + (0, _createClass2.default)(NodeUtils, null, [{ + key: "addXVerbatimPropertyTo", + value: function addXVerbatimPropertyTo(literalNode) { + literalNode['x-verbatim-property'] = { + content: literalNode.raw, + precedence: escodegen.Precedence.Primary + }; + return literalNode; + } + }, { + key: "clone", + value: function clone(astTree) { + return NodeUtils.parentizeAst(NodeUtils.cloneRecursive(astTree)); + } + }, { + key: "convertCodeToStructure", + value: function convertCodeToStructure(code) { + var structure = espree.parse(code, { + sourceType: 'script' + }); + estraverse.replace(structure, { + enter: function enter(node, parentNode) { + NodeUtils.parentizeNode(node, parentNode); + + if (NodeGuards_1.NodeGuards.isLiteralNode(node)) { + NodeUtils.addXVerbatimPropertyTo(node); + } + + NodeMetadata_1.NodeMetadata.set(node, { + ignoredNode: false + }); + return node; + } + }); + return structure.body; + } + }, { + key: "convertStructureToCode", + value: function convertStructureToCode(structure) { + return structure.reduce(function (code, node) { + return code + escodegen.generate(node, { + sourceMapWithCode: true + }).code; + }, ''); + } + }, { + key: "getBlockScopeOfNode", + value: function getBlockScopeOfNode(node) { + return NodeUtils.getBlockScopesOfNodeRecursive(node, 1)[0]; + } + }, { + key: "getBlockScopesOfNode", + value: function getBlockScopesOfNode(node) { + return NodeUtils.getBlockScopesOfNodeRecursive(node); + } + }, { + key: "getNextSiblingStatement", + value: function getNextSiblingStatement(statement) { + return NodeUtils.getSiblingStatementByOffset(statement, 1); + } + }, { + key: "getPreviousSiblingStatement", + value: function getPreviousSiblingStatement(statement) { + return NodeUtils.getSiblingStatementByOffset(statement, -1); + } + }, { + key: "getRootStatementOfNode", + value: function getRootStatementOfNode(node) { + if (NodeGuards_1.NodeGuards.isProgramNode(node)) { + throw new Error('Unable to find root statement for `Program` node'); + } + + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (!NodeGuards_1.NodeGuards.isNodeHasScope(parentNode)) { + return NodeUtils.getRootStatementOfNode(parentNode); + } + + return node; + } + }, { + key: "getScopeOfNode", + value: function getScopeOfNode(node) { + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (!NodeGuards_1.NodeGuards.isNodeHasScope(parentNode)) { + return NodeUtils.getScopeOfNode(parentNode); + } + + return parentNode; + } + }, { + key: "getUnaryExpressionArgumentNode", + value: function getUnaryExpressionArgumentNode(unaryExpressionNode) { + if (NodeGuards_1.NodeGuards.isUnaryExpressionNode(unaryExpressionNode.argument)) { + return NodeUtils.getUnaryExpressionArgumentNode(unaryExpressionNode.argument); + } + + return unaryExpressionNode.argument; + } + }, { + key: "parentizeAst", + value: function parentizeAst(astTree) { + estraverse.replace(astTree, { + enter: NodeUtils.parentizeNode + }); + return astTree; + } + }, { + key: "parentizeNode", + value: function parentizeNode(node, parentNode) { + node.parentNode = parentNode || node; + return node; + } + }, { + key: "cloneRecursive", + value: function cloneRecursive(node) { + if (node === null) { + return node; + } + + var copy = {}; + (0, _keys.default)(node).forEach(function (property) { + if (property === 'parentNode') { + return; + } + + var value = node[property]; + var clonedValue; + + if (value === null || value instanceof RegExp) { + clonedValue = value; + } else if (Array.isArray(value)) { + clonedValue = value.map(NodeUtils.cloneRecursive); + } else if ((0, _typeof2.default)(value) === 'object') { + clonedValue = NodeUtils.cloneRecursive(value); + } else { + clonedValue = value; + } + + copy[property] = clonedValue; + }); + return copy; + } + }, { + key: "getBlockScopesOfNodeRecursive", + value: function getBlockScopesOfNodeRecursive(node) { + var maxSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity; + var blockScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + var depth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + + if (blockScopes.length >= maxSize) { + return blockScopes; + } + + var parentNode = node.parentNode; + + if (!parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + + if (NodeGuards_1.NodeGuards.isBlockStatementNode(node) && parentNode === node) { + blockScopes.push(node); + } + + if (NodeGuards_1.NodeGuards.isProgramNode(node) || depth && NodeGuards_1.NodeGuards.isNodeHasBlockScope(node, parentNode)) { + blockScopes.push(node); + } + + if (node !== parentNode) { + return NodeUtils.getBlockScopesOfNodeRecursive(parentNode, maxSize, blockScopes, ++depth); + } + + return blockScopes; + } + }, { + key: "getSiblingStatementByOffset", + value: function getSiblingStatementByOffset(statement, offset) { + var scopeNode = NodeUtils.getScopeOfNode(statement); + var scopeBody = !NodeGuards_1.NodeGuards.isSwitchCaseNode(scopeNode) ? scopeNode.body : scopeNode.consequent; + var indexInScope = scopeBody.indexOf(statement); + return scopeBody[indexInScope + offset] || null; + } + }]); + return NodeUtils; +}(); + +exports.NodeUtils = NodeUtils; + +/***/ }), + +/***/ "./src/options/Options.ts": +/*!********************************!*\ + !*** ./src/options/Options.ts ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var Options_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var class_validator_1 = __webpack_require__(/*! class-validator */ "class-validator"); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +var Default_1 = __webpack_require__(/*! ./presets/Default */ "./src/options/presets/Default.ts"); + +var ValidationErrorsFormatter_1 = __webpack_require__(/*! ./ValidationErrorsFormatter */ "./src/options/ValidationErrorsFormatter.ts"); + +var Options = Options_1 = function Options(inputOptions, optionsNormalizer) { + (0, _classCallCheck2.default)(this, Options); + (0, _assign.default)(this, Default_1.DEFAULT_PRESET, inputOptions); + var errors = class_validator_1.validateSync(this, Options_1.validatorOptions); + + if (errors.length) { + throw new ReferenceError("Validation failed. errors:\n".concat(ValidationErrorsFormatter_1.ValidationErrorsFormatter.format(errors))); + } + + (0, _assign.default)(this, optionsNormalizer.normalize(this)); +}; + +Options.validatorOptions = { + validationError: { + target: false + } +}; + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "compact", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "controlFlowFlattening", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "controlFlowFlatteningThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "deadCodeInjection", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "deadCodeInjectionThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtection", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "debugProtectionInterval", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "disableConsoleOutput", void 0); + +tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({ + each: true +}), tslib_1.__metadata("design:type", Array)], Options.prototype, "domainLock", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, IdentifierNamesGenerator_1.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]), tslib_1.__metadata("design:type", String)], Options.prototype, "identifierNamesGenerator", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "identifiersPrefix", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "inputFileName", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "log", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "renameGlobals", void 0); + +tslib_1.__decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_validator_1.IsString({ + each: true +}), tslib_1.__metadata("design:type", Array)], Options.prototype, "reservedNames", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "rotateStringArray", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), tslib_1.__metadata("design:type", Number)], Options.prototype, "seed", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "selfDefending", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "sourceMap", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) { + return Boolean(options.sourceMapBaseUrl); +}), class_validator_1.IsUrl({ + require_protocol: true, + require_tld: false, + require_valid_protocol: true +}), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapBaseUrl", void 0); + +tslib_1.__decorate([class_validator_1.IsString(), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapFileName", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([SourceMapMode_1.SourceMapMode.Inline, SourceMapMode_1.SourceMapMode.Separate]), tslib_1.__metadata("design:type", String)], Options.prototype, "sourceMapMode", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "stringArray", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([true, false, StringArrayEncoding_1.StringArrayEncoding.Base64, StringArrayEncoding_1.StringArrayEncoding.Rc4]), tslib_1.__metadata("design:type", Object)], Options.prototype, "stringArrayEncoding", void 0); + +tslib_1.__decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), tslib_1.__metadata("design:type", Number)], Options.prototype, "stringArrayThreshold", void 0); + +tslib_1.__decorate([class_validator_1.IsIn([ObfuscationTarget_1.ObfuscationTarget.Browser, ObfuscationTarget_1.ObfuscationTarget.BrowserNoEval, ObfuscationTarget_1.ObfuscationTarget.Node]), tslib_1.__metadata("design:type", String)], Options.prototype, "target", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "transformObjectKeys", void 0); + +tslib_1.__decorate([class_validator_1.IsBoolean(), tslib_1.__metadata("design:type", Boolean)], Options.prototype, "unicodeEscapeSequence", void 0); + +Options = Options_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TInputOptions)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptionsNormalizer)), tslib_1.__metadata("design:paramtypes", [Object, Object])], Options); +exports.Options = Options; + +/***/ }), + +/***/ "./src/options/OptionsNormalizer.ts": +/*!******************************************!*\ + !*** ./src/options/OptionsNormalizer.ts ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var OptionsNormalizer_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ControlFlowFlatteningThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/ControlFlowFlatteningThresholdRule */ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts"); + +var DeadCodeInjectionRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionRule */ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts"); + +var DeadCodeInjectionThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/DeadCodeInjectionThresholdRule */ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts"); + +var DomainLockRule_1 = __webpack_require__(/*! ./normalizer-rules/DomainLockRule */ "./src/options/normalizer-rules/DomainLockRule.ts"); + +var InputFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/InputFileNameRule */ "./src/options/normalizer-rules/InputFileNameRule.ts"); + +var SelfDefendingRule_1 = __webpack_require__(/*! ./normalizer-rules/SelfDefendingRule */ "./src/options/normalizer-rules/SelfDefendingRule.ts"); + +var SourceMapBaseUrlRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapBaseUrlRule */ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts"); + +var SourceMapFileNameRule_1 = __webpack_require__(/*! ./normalizer-rules/SourceMapFileNameRule */ "./src/options/normalizer-rules/SourceMapFileNameRule.ts"); + +var StringArrayRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayRule */ "./src/options/normalizer-rules/StringArrayRule.ts"); + +var StringArrayEncodingRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayEncodingRule */ "./src/options/normalizer-rules/StringArrayEncodingRule.ts"); + +var StringArrayThresholdRule_1 = __webpack_require__(/*! ./normalizer-rules/StringArrayThresholdRule */ "./src/options/normalizer-rules/StringArrayThresholdRule.ts"); + +var OptionsNormalizer = OptionsNormalizer_1 = +/*#__PURE__*/ +function () { + function OptionsNormalizer() { + (0, _classCallCheck2.default)(this, OptionsNormalizer); + } + + (0, _createClass2.default)(OptionsNormalizer, [{ + key: "normalize", + value: function normalize(options) { + var normalizedOptions = (0, _assign.default)({}, options); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(OptionsNormalizer_1.normalizerRules), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var normalizerRule = _step.value; + normalizedOptions = normalizerRule(normalizedOptions); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return normalizedOptions; + } + }]); + return OptionsNormalizer; +}(); + +OptionsNormalizer.normalizerRules = [ControlFlowFlatteningThresholdRule_1.ControlFlowFlatteningThresholdRule, DeadCodeInjectionRule_1.DeadCodeInjectionRule, DeadCodeInjectionThresholdRule_1.DeadCodeInjectionThresholdRule, DomainLockRule_1.DomainLockRule, InputFileNameRule_1.InputFileNameRule, SelfDefendingRule_1.SelfDefendingRule, SourceMapBaseUrlRule_1.SourceMapBaseUrlRule, SourceMapFileNameRule_1.SourceMapFileNameRule, StringArrayRule_1.StringArrayRule, StringArrayEncodingRule_1.StringArrayEncodingRule, StringArrayThresholdRule_1.StringArrayThresholdRule]; +OptionsNormalizer = OptionsNormalizer_1 = tslib_1.__decorate([inversify_1.injectable()], OptionsNormalizer); +exports.OptionsNormalizer = OptionsNormalizer; + +/***/ }), + +/***/ "./src/options/ValidationErrorsFormatter.ts": +/*!**************************************************!*\ + !*** ./src/options/ValidationErrorsFormatter.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/keys */ "@babel/runtime/core-js/object/keys")); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var ValidationErrorsFormatter = +/*#__PURE__*/ +function () { + function ValidationErrorsFormatter() { + (0, _classCallCheck2.default)(this, ValidationErrorsFormatter); + } + + (0, _createClass2.default)(ValidationErrorsFormatter, null, [{ + key: "format", + value: function format(errors) { + return errors.reduce(function (errorMessages, error) { + return (0, _toConsumableArray2.default)(errorMessages).concat([ValidationErrorsFormatter.formatWithNestedConstraints(error)]); + }, []).join('\n'); + } + }, { + key: "formatWithNestedConstraints", + value: function formatWithNestedConstraints(error) { + var constraints = error.constraints; + var rootError = "`".concat(error.property, "` errors:\n"); + var nestedErrors = (0, _keys.default)(constraints).map(function (constraint) { + return " - ".concat(constraints[constraint], "\n"); + }).join(); + return "".concat(rootError).concat(nestedErrors); + } + }]); + return ValidationErrorsFormatter; +}(); + +exports.ValidationErrorsFormatter = ValidationErrorsFormatter; + +/***/ }), + +/***/ "./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts": +/*!****************************************************************************!*\ + !*** ./src/options/normalizer-rules/ControlFlowFlatteningThresholdRule.ts ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.ControlFlowFlatteningThresholdRule = function (options) { + if (options.controlFlowFlatteningThreshold === 0) { + options = (0, _assign.default)({}, options, { + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Default_1 = __webpack_require__(/*! ../presets/Default */ "./src/options/presets/Default.ts"); + +exports.DeadCodeInjectionRule = function (options) { + if (options.deadCodeInjection) { + options = (0, _assign.default)({}, options, { + deadCodeInjection: true, + stringArray: true + }); + + if (!options.stringArrayThreshold) { + options = (0, _assign.default)({}, options, { + stringArray: true, + stringArrayThreshold: Default_1.DEFAULT_PRESET.stringArrayThreshold + }); + } + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts": +/*!************************************************************************!*\ + !*** ./src/options/normalizer-rules/DeadCodeInjectionThresholdRule.ts ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.DeadCodeInjectionThresholdRule = function (options) { + if (options.deadCodeInjectionThreshold === 0) { + options = (0, _assign.default)({}, options, { + deadCodeInjection: false, + deadCodeInjectionThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/DomainLockRule.ts": +/*!********************************************************!*\ + !*** ./src/options/normalizer-rules/DomainLockRule.ts ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Utils_1 = __webpack_require__(/*! ../../utils/Utils */ "./src/utils/Utils.ts"); + +exports.DomainLockRule = function (options) { + if (options.domainLock.length) { + var normalizedDomains = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(options.domainLock), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var domain = _step.value; + normalizedDomains.push(Utils_1.Utils.extractDomainFrom(domain)); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + options = (0, _assign.default)({}, options, { + domainLock: normalizedDomains + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/InputFileNameRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/InputFileNameRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.InputFileNameRule = function (options) { + var _options = options, + inputFileName = _options.inputFileName; + + if (inputFileName) { + inputFileName = inputFileName.replace(/^\/+/, '').split('.').slice(0, -1).join('.') || inputFileName; + options = (0, _assign.default)({}, options, { + inputFileName: "".concat(inputFileName, ".js") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SelfDefendingRule.ts": +/*!***********************************************************!*\ + !*** ./src/options/normalizer-rules/SelfDefendingRule.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SelfDefendingRule = function (options) { + if (options.selfDefending) { + options = (0, _assign.default)({}, options, { + compact: true, + selfDefending: true + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapBaseUrlRule.ts": +/*!**************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapBaseUrlRule.ts ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SourceMapBaseUrlRule = function (options) { + var _options = options, + sourceMapBaseUrl = _options.sourceMapBaseUrl; + + if (!options.sourceMapFileName) { + options = (0, _assign.default)({}, options, { + sourceMapBaseUrl: '' + }); + return options; + } + + if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) { + options = (0, _assign.default)({}, options, { + sourceMapBaseUrl: "".concat(sourceMapBaseUrl, "/") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/SourceMapFileNameRule.ts": +/*!***************************************************************!*\ + !*** ./src/options/normalizer-rules/SourceMapFileNameRule.ts ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.SourceMapFileNameRule = function (options) { + var _options = options, + sourceMapFileName = _options.sourceMapFileName; + + if (sourceMapFileName) { + sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0]; + options = (0, _assign.default)({}, options, { + sourceMapFileName: "".concat(sourceMapFileName, ".js.map") + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayEncodingRule.ts": +/*!*****************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayEncodingRule.ts ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var StringArrayEncoding_1 = __webpack_require__(/*! ../../enums/StringArrayEncoding */ "./src/enums/StringArrayEncoding.ts"); + +exports.StringArrayEncodingRule = function (options) { + if (options.stringArrayEncoding === true) { + options = (0, _assign.default)({}, options, { + stringArrayEncoding: StringArrayEncoding_1.StringArrayEncoding.Base64 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayRule.ts": +/*!*********************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayRule.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.StringArrayRule = function (options) { + if (!options.stringArray) { + options = (0, _assign.default)({}, options, { + rotateStringArray: false, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/normalizer-rules/StringArrayThresholdRule.ts": +/*!******************************************************************!*\ + !*** ./src/options/normalizer-rules/StringArrayThresholdRule.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/assign */ "@babel/runtime/core-js/object/assign")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.StringArrayThresholdRule = function (options) { + if (options.stringArrayThreshold === 0) { + options = (0, _assign.default)({}, options, { + rotateStringArray: false, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0 + }); + } + + return options; +}; + +/***/ }), + +/***/ "./src/options/presets/Default.ts": +/*!****************************************!*\ + !*** ./src/options/presets/Default.ts ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _freeze = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +exports.DEFAULT_PRESET = (0, _freeze.default)({ + compact: true, + config: '', + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0.75, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0.4, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + inputFileName: '', + log: false, + renameGlobals: false, + reservedNames: [], + rotateStringArray: true, + seed: 0, + selfDefending: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + stringArray: true, + stringArrayEncoding: false, + stringArrayThreshold: 0.75, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + +/***/ }), + +/***/ "./src/options/presets/NoCustomNodes.ts": +/*!**********************************************!*\ + !*** ./src/options/presets/NoCustomNodes.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _freeze = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/object/freeze */ "@babel/runtime/core-js/object/freeze")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var IdentifierNamesGenerator_1 = __webpack_require__(/*! ../../enums/generators/identifier-names-generators/IdentifierNamesGenerator */ "./src/enums/generators/identifier-names-generators/IdentifierNamesGenerator.ts"); + +var ObfuscationTarget_1 = __webpack_require__(/*! ../../enums/ObfuscationTarget */ "./src/enums/ObfuscationTarget.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +exports.NO_ADDITIONAL_NODES_PRESET = (0, _freeze.default)({ + compact: true, + controlFlowFlattening: false, + controlFlowFlatteningThreshold: 0, + deadCodeInjection: false, + deadCodeInjectionThreshold: 0, + debugProtection: false, + debugProtectionInterval: false, + disableConsoleOutput: false, + domainLock: [], + exclude: [], + identifierNamesGenerator: IdentifierNamesGenerator_1.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator, + identifiersPrefix: '', + inputFileName: '', + log: false, + renameGlobals: false, + reservedNames: [], + rotateStringArray: false, + seed: 0, + selfDefending: false, + sourceMap: false, + sourceMapBaseUrl: '', + sourceMapFileName: '', + sourceMapMode: SourceMapMode_1.SourceMapMode.Separate, + stringArray: false, + stringArrayEncoding: false, + stringArrayThreshold: 0, + target: ObfuscationTarget_1.ObfuscationTarget.Browser, + transformObjectKeys: false, + unicodeEscapeSequence: false +}); + +/***/ }), + +/***/ "./src/source-map/SourceMapCorrector.ts": +/*!**********************************************!*\ + !*** ./src/source-map/SourceMapCorrector.ts ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var SourceMapMode_1 = __webpack_require__(/*! ../enums/source-map/SourceMapMode */ "./src/enums/source-map/SourceMapMode.ts"); + +var SourceMapCorrector = +/*#__PURE__*/ +function () { + function SourceMapCorrector(obfuscationResultFactory, cryptUtils, options) { + (0, _classCallCheck2.default)(this, SourceMapCorrector); + this.obfuscationResultFactory = obfuscationResultFactory; + this.cryptUtils = cryptUtils; + this.options = options; + } + + (0, _createClass2.default)(SourceMapCorrector, [{ + key: "correct", + value: function correct(obfuscatedCode, sourceMap) { + return this.obfuscationResultFactory(this.correctObfuscatedCode(obfuscatedCode, sourceMap), sourceMap); + } + }, { + key: "correctObfuscatedCode", + value: function correctObfuscatedCode(obfuscatedCode, sourceMap) { + if (!sourceMap) { + return obfuscatedCode; + } + + var sourceMapUrl = this.options.sourceMapBaseUrl + this.options.sourceMapFileName; + var sourceMappingUrl = '//# sourceMappingURL='; + + switch (this.options.sourceMapMode) { + case SourceMapMode_1.SourceMapMode.Inline: + sourceMappingUrl += "data:application/json;base64,".concat(this.cryptUtils.btoa(sourceMap)); + break; + + case SourceMapMode_1.SourceMapMode.Separate: + default: + if (!sourceMapUrl) { + return obfuscatedCode; + } + + sourceMappingUrl += sourceMapUrl; + } + + return "".concat(obfuscatedCode, "\n").concat(sourceMappingUrl); + } + }]); + return SourceMapCorrector; +}(); + +SourceMapCorrector = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscationResult)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ICryptUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], SourceMapCorrector); +exports.SourceMapCorrector = SourceMapCorrector; + +/***/ }), + +/***/ "./src/storages/ArrayStorage.ts": +/*!**************************************!*\ + !*** ./src/storages/ArrayStorage.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var ArrayStorage = +/*#__PURE__*/ +function () { + function ArrayStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ArrayStorage); + this.storageLength = 0; + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(ArrayStorage, [{ + key: "initialize", + value: function initialize() { + this.storage = []; + this.storageId = this.randomGenerator.getRandomString(6); + } + }, { + key: "get", + value: function get(key) { + var value = this.storage[key]; + + if (!value) { + throw new Error("No value found in array storage with key `".concat(key, "`")); + } + + return value; + } + }, { + key: "getKeyOf", + value: function getKeyOf(value) { + var key = this.storage.indexOf(value); + return key >= 0 ? key : null; + } + }, { + key: "getLength", + value: function getLength() { + return this.storageLength; + } + }, { + key: "getStorage", + value: function getStorage() { + return this.storage; + } + }, { + key: "getStorageId", + value: function getStorageId() { + return this.storageId; + } + }, { + key: "mergeWith", + value: function mergeWith(storage) { + var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.storage = (0, _toConsumableArray2.default)(this.storage).concat((0, _toConsumableArray2.default)(storage.getStorage())); + + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + }, { + key: "set", + value: function set(key, value) { + if (key === this.storageLength) { + this.storage.push(value); + } else { + this.storage.splice(key, 0, value); + } + + this.storageLength++; + } + }]); + return ArrayStorage; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Array)], ArrayStorage.prototype, "storage", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], ArrayStorage.prototype, "storageId", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], ArrayStorage.prototype, "initialize", null); + +ArrayStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ArrayStorage); +exports.ArrayStorage = ArrayStorage; + +/***/ }), + +/***/ "./src/storages/MapStorage.ts": +/*!************************************!*\ + !*** ./src/storages/MapStorage.ts ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray")); + +var _getIterator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/get-iterator */ "@babel/runtime/core-js/get-iterator")); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var MapStorage = +/*#__PURE__*/ +function () { + function MapStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, MapStorage); + this.randomGenerator = randomGenerator; + this.options = options; + } + + (0, _createClass2.default)(MapStorage, [{ + key: "initialize", + value: function initialize() { + this.storage = new _map.default(); + this.storageId = this.randomGenerator.getRandomString(6); + } + }, { + key: "get", + value: function get(key) { + var value = this.storage.get(key); + + if (!value) { + throw new Error("No value found in map storage with key `".concat(key, "`")); + } + + return value; + } + }, { + key: "getKeyOf", + value: function getKeyOf(value) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator2.default)(this.storage), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var _step$value = (0, _slicedToArray2.default)(_step.value, 2), + key = _step$value[0], + storageValue = _step$value[1]; + + if (value === storageValue) { + return key; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return null; + } + }, { + key: "getLength", + value: function getLength() { + return this.storage.size; + } + }, { + key: "getStorage", + value: function getStorage() { + return this.storage; + } + }, { + key: "getStorageId", + value: function getStorageId() { + return this.storageId; + } + }, { + key: "has", + value: function has(key) { + return this.storage.has(key); + } + }, { + key: "mergeWith", + value: function mergeWith(storage) { + var mergeId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.storage = new _map.default((0, _toConsumableArray2.default)(this.storage).concat((0, _toConsumableArray2.default)(storage.getStorage()))); + + if (mergeId) { + this.storageId = storage.getStorageId(); + } + } + }, { + key: "set", + value: function set(key, value) { + this.storage.set(key, value); + } + }]); + return MapStorage; +}(); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", String)], MapStorage.prototype, "storageId", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", _map.default)], MapStorage.prototype, "storage", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], MapStorage.prototype, "initialize", null); + +MapStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], MapStorage); +exports.MapStorage = MapStorage; + +/***/ }), + +/***/ "./src/storages/control-flow/ControlFlowStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/control-flow/ControlFlowStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); + +var ControlFlowStorage = +/*#__PURE__*/ +function (_MapStorage_1$MapStor) { + (0, _inherits2.default)(ControlFlowStorage, _MapStorage_1$MapStor); + + function ControlFlowStorage(randomGenerator, options) { + (0, _classCallCheck2.default)(this, ControlFlowStorage); + return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ControlFlowStorage).call(this, randomGenerator, options)); + } + + return ControlFlowStorage; +}(MapStorage_1.MapStorage); + +ControlFlowStorage = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], ControlFlowStorage); +exports.ControlFlowStorage = ControlFlowStorage; + +/***/ }), + +/***/ "./src/storages/custom-node-group/CustomNodeGroupStorage.ts": +/*!******************************************************************!*\ + !*** ./src/storages/custom-node-group/CustomNodeGroupStorage.ts ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var CustomNodeGroupStorage_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var CustomNodeGroup_1 = __webpack_require__(/*! ../../enums/custom-nodes/CustomNodeGroup */ "./src/enums/custom-nodes/CustomNodeGroup.ts"); + +var MapStorage_1 = __webpack_require__(/*! ../MapStorage */ "./src/storages/MapStorage.ts"); + +var CustomNodeGroupStorage = CustomNodeGroupStorage_1 = +/*#__PURE__*/ +function (_MapStorage_1$MapStor) { + (0, _inherits2.default)(CustomNodeGroupStorage, _MapStorage_1$MapStor); + + function CustomNodeGroupStorage(customNodeGroupFactory, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, CustomNodeGroupStorage); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CustomNodeGroupStorage).call(this, randomGenerator, options)); + _this.customNodeGroupFactory = customNodeGroupFactory; + return _this; + } + + (0, _createClass2.default)(CustomNodeGroupStorage, [{ + key: "initialize", + value: function initialize() { + var _this2 = this; + + (0, _get2.default)((0, _getPrototypeOf2.default)(CustomNodeGroupStorage.prototype), "initialize", this).call(this); + CustomNodeGroupStorage_1.customNodeGroupsList.forEach(function (customNodeGroupName) { + var customNodeGroup = _this2.customNodeGroupFactory(customNodeGroupName); + + if (!customNodeGroup) { + return; + } + + _this2.storage.set(customNodeGroupName, customNodeGroup); + }); + } + }]); + return CustomNodeGroupStorage; +}(MapStorage_1.MapStorage); + +CustomNodeGroupStorage.customNodeGroupsList = [CustomNodeGroup_1.CustomNodeGroup.ConsoleOutputCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DebugProtectionCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.DomainLockCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.SelfDefendingCustomNodeGroup, CustomNodeGroup_1.CustomNodeGroup.StringArrayCustomNodeGroup]; + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], CustomNodeGroupStorage.prototype, "initialize", null); + +CustomNodeGroupStorage = CustomNodeGroupStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__ICustomNodeGroup)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object])], CustomNodeGroupStorage); +exports.CustomNodeGroupStorage = CustomNodeGroupStorage; + +/***/ }), + +/***/ "./src/storages/string-array/StringArrayStorage.ts": +/*!*********************************************************!*\ + !*** ./src/storages/string-array/StringArrayStorage.ts ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "@babel/runtime/helpers/getPrototypeOf")); + +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "@babel/runtime/helpers/get")); + +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "@babel/runtime/helpers/inherits")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var StringArrayStorage_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayStorage_1 = __webpack_require__(/*! ../ArrayStorage */ "./src/storages/ArrayStorage.ts"); + +var StringArrayStorage = StringArrayStorage_1 = +/*#__PURE__*/ +function (_ArrayStorage_1$Array) { + (0, _inherits2.default)(StringArrayStorage, _ArrayStorage_1$Array); + + function StringArrayStorage(identifierNamesGeneratorFactory, arrayUtils, randomGenerator, options) { + var _this; + + (0, _classCallCheck2.default)(this, StringArrayStorage); + _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(StringArrayStorage).call(this, randomGenerator, options)); + _this.identifierNamesGenerator = identifierNamesGeneratorFactory(options); + _this.arrayUtils = arrayUtils; + return _this; + } + + (0, _createClass2.default)(StringArrayStorage, [{ + key: "initialize", + value: function initialize() { + (0, _get2.default)((0, _getPrototypeOf2.default)(StringArrayStorage.prototype), "initialize", this).call(this); + var baseStringArrayName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength); + var baseStringArrayCallsWrapperName = this.identifierNamesGenerator.generate().slice(0, StringArrayStorage_1.stringArrayNameLength); + var stringArrayName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayName); + var stringArrayCallsWrapperName = "".concat(this.options.identifiersPrefix).concat(baseStringArrayCallsWrapperName); + this.storageId = "".concat(stringArrayName, "|").concat(stringArrayCallsWrapperName); + } + }, { + key: "rotateArray", + value: function rotateArray(rotationValue) { + this.storage = this.arrayUtils.rotate(this.storage, rotationValue); + } + }, { + key: "toString", + value: function toString() { + return this.storage.map(function (value) { + return "'".concat(value, "'"); + }).toString(); + } + }]); + return StringArrayStorage; +}(ArrayStorage_1.ArrayStorage); + +StringArrayStorage.stringArrayNameLength = 7; + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], StringArrayStorage.prototype, "initialize", null); + +StringArrayStorage = StringArrayStorage_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IArrayUtils)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object, Object, Object])], StringArrayStorage); +exports.StringArrayStorage = StringArrayStorage; + +/***/ }), + +/***/ "./src/templates/AtobTemplate.ts": +/*!***************************************!*\ + !*** ./src/templates/AtobTemplate.ts ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function AtobTemplate() { + return "\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n "; +} + +exports.AtobTemplate = AtobTemplate; + +/***/ }), + +/***/ "./src/templates/GlobalVariableNoEvalTemplate.ts": +/*!*******************************************************!*\ + !*** ./src/templates/GlobalVariableNoEvalTemplate.ts ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableNoEvalTemplate() { + return "\n var that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "; +} + +exports.GlobalVariableNoEvalTemplate = GlobalVariableNoEvalTemplate; + +/***/ }), + +/***/ "./src/templates/GlobalVariableTemplate1.ts": +/*!**************************************************!*\ + !*** ./src/templates/GlobalVariableTemplate1.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableTemplate1() { + return "\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "; +} + +exports.GlobalVariableTemplate1 = GlobalVariableTemplate1; + +/***/ }), + +/***/ "./src/templates/GlobalVariableTemplate2.ts": +/*!**************************************************!*\ + !*** ./src/templates/GlobalVariableTemplate2.ts ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function GlobalVariableTemplate2() { + return "\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n "; +} + +exports.GlobalVariableTemplate2 = GlobalVariableTemplate2; + +/***/ }), + +/***/ "./src/templates/Rc4Template.ts": +/*!**************************************!*\ + !*** ./src/templates/Rc4Template.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function Rc4Template() { + return "\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "; +} + +exports.Rc4Template = Rc4Template; + +/***/ }), + +/***/ "./src/templates/SingleNodeCallControllerTemplate.ts": +/*!***********************************************************!*\ + !*** ./src/templates/SingleNodeCallControllerTemplate.ts ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SingleNodeCallControllerTemplate() { + return "\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "; +} + +exports.SingleNodeCallControllerTemplate = SingleNodeCallControllerTemplate; + +/***/ }), + +/***/ "./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts": +/*!*****************************************************************************************************************************!*\ + !*** ./src/templates/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate.ts ***! + \*****************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function ConsoleOutputDisableExpressionTemplate() { + return "\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "; +} + +exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts": +/*!*************************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-call-node/DebugProtectionFunctionCallTemplate.ts ***! + \*************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionCallTemplate() { + return "\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n "; +} + +exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts": +/*!*********************************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate.ts ***! + \*********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionIntervalTemplate() { + return "\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "; +} + +exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts": +/*!****************************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts ***! + \****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebugProtectionFunctionTemplate() { + return "\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "; +} + +exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts": +/*!*************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplate.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebuggerTemplate() { + return "\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "; +} + +exports.DebuggerTemplate = DebuggerTemplate; + +/***/ }), + +/***/ "./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts": +/*!*******************************************************************************************************!*\ + !*** ./src/templates/debug-protection-nodes/debug-protection-function-node/DebuggerTemplateNoEval.ts ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DebuggerTemplateNoEval() { + return "\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "; +} + +exports.DebuggerTemplateNoEval = DebuggerTemplateNoEval; + +/***/ }), + +/***/ "./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts": +/*!************************************************************************************!*\ + !*** ./src/templates/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate.ts ***! + \************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function DomainLockNodeTemplate() { + return "\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: 'item',\n value: 'attribute',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + '_' + this.value + '_' + i;\n default:\n this.item + '_' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp(\"[{diff}]\", \"g\");\n var domains = \"{domains}\".replace(regExp, \"\").split(\";\");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!(\"~\" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(\".\") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n "; +} + +exports.DomainLockNodeTemplate = DomainLockNodeTemplate; + +/***/ }), + +/***/ "./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts": +/*!*************************************************************************************************!*\ + !*** ./src/templates/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(escapeSequenceEncoder) { + return "\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(escapeSequenceEncoder.encode("(\\\\[x|u](\\w){2,4})+", true), "');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('ind\u0435xOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('ind\u0435xOf');\n }\n })\n \n {selfDefendingFunctionName}();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts": +/*!**********************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/SelfDefendingTemplate.ts ***! + \**********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(randomGenerator, escapeSequenceEncoder) { + var identifierLength = 6; + var rc4BytesIdentifier = randomGenerator.getRandomString(identifierLength); + var statesIdentifier = randomGenerator.getRandomString(identifierLength); + var newStateIdentifier = randomGenerator.getRandomString(identifierLength); + var firstStateIdentifier = randomGenerator.getRandomString(identifierLength); + var secondStateIdentifier = randomGenerator.getRandomString(identifierLength); + var checkStateIdentifier = randomGenerator.getRandomString(identifierLength); + var runStateIdentifier = randomGenerator.getRandomString(identifierLength); + var getStateIdentifier = randomGenerator.getRandomString(identifierLength); + var stateResultIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n var StatesClass = function (".concat(rc4BytesIdentifier, ") {\n this.").concat(rc4BytesIdentifier, " = ").concat(rc4BytesIdentifier, ";\n this.").concat(statesIdentifier, " = [1, 0, 0];\n this.").concat(newStateIdentifier, " = function(){return 'newState';};\n this.").concat(firstStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *", true), "';\n this.").concat(secondStateIdentifier, " = '").concat(escapeSequenceEncoder.encode("['|\"].+['|\"];? *}", true), "';\n };\n \n StatesClass.prototype.").concat(checkStateIdentifier, " = function () {\n var regExp = new RegExp(this.").concat(firstStateIdentifier, " + this.").concat(secondStateIdentifier, ");\n var expression = regExp.test(this.").concat(newStateIdentifier, ".toString())\n ? --this.").concat(statesIdentifier, "[1]\n : --this.").concat(statesIdentifier, "[0];\n \n return this.").concat(runStateIdentifier, "(expression);\n };\n \n StatesClass.prototype.").concat(runStateIdentifier, " = function (").concat(stateResultIdentifier, ") {\n if (!Boolean(~").concat(stateResultIdentifier, ")) {\n return ").concat(stateResultIdentifier, ";\n }\n \n return this.").concat(getStateIdentifier, "(this.").concat(rc4BytesIdentifier, ");\n };\n\n StatesClass.prototype.").concat(getStateIdentifier, " = function (").concat(rc4BytesIdentifier, ") {\n for (var i = 0, len = this.").concat(statesIdentifier, ".length; i < len; i++) {\n this.").concat(statesIdentifier, ".push(Math.round(Math.random()));\n len = this.").concat(statesIdentifier, ".length;\n }\n \n return ").concat(rc4BytesIdentifier, "(this.").concat(statesIdentifier, "[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(checkStateIdentifier, "();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts": +/*!************************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate.ts ***! + \************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayBase64DecodeNodeTemplate(randomGenerator) { + var identifierLength = 6; + var initializedIdentifier = randomGenerator.getRandomString(identifierLength); + var base64DecodeFunctionIdentifier = randomGenerator.getRandomString(identifierLength); + var dataIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, " = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(base64DecodeFunctionIdentifier, "(value);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n "); +} + +exports.StringArrayBase64DecodeNodeTemplate = StringArrayBase64DecodeNodeTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts": +/*!********************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate.ts ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayCallsWrapperTemplate() { + return "\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n "; +} + +exports.StringArrayCallsWrapperTemplate = StringArrayCallsWrapperTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts": +/*!*********************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate.ts ***! + \*********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayRc4DecodeNodeTemplate(randomGenerator) { + var identifierLength = 6; + var initializedIdentifier = randomGenerator.getRandomString(identifierLength); + var rc4Identifier = randomGenerator.getRandomString(identifierLength); + var dataIdentifier = randomGenerator.getRandomString(identifierLength); + var onceIdentifier = randomGenerator.getRandomString(identifierLength); + return "\n if ({stringArrayCallsWrapperName}.".concat(initializedIdentifier, " === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(rc4Identifier, " = rc4;\n \n {stringArrayCallsWrapperName}.").concat(dataIdentifier, " = {};\n \n {stringArrayCallsWrapperName}.").concat(initializedIdentifier, " = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(onceIdentifier, " === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(onceIdentifier, " = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(rc4Identifier, "(value, key);\n {stringArrayCallsWrapperName}.").concat(dataIdentifier, "[index] = value;\n } else {\n value = cachedValue;\n }\n "); +} + +exports.StringArrayRc4DecodeNodeTemplate = StringArrayRc4DecodeNodeTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts": +/*!***********************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-node/StringArrayTemplate.ts ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayTemplate() { + return "\n var {stringArrayName} = [{stringArray}];\n "; +} + +exports.StringArrayTemplate = StringArrayTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts": +/*!*****************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/SelfDefendingTemplate.ts ***! + \*****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function SelfDefendingTemplate(escapeSequenceEncoder) { + return "\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(escapeSequenceEncoder.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}", true), "');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n "); +} + +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }), + +/***/ "./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts": +/*!*****************************************************************************************************************!*\ + !*** ./src/templates/string-array-nodes/string-array-rotate-function-node/StringArrayRotateFunctionTemplate.ts ***! + \*****************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function StringArrayRotateFunctionTemplate() { + return "\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n "; +} + +exports.StringArrayRotateFunctionTemplate = StringArrayRotateFunctionTemplate; + +/***/ }), + +/***/ "./src/utils/ArrayUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/ArrayUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var ArrayUtils = +/*#__PURE__*/ +function () { + function ArrayUtils(randomGenerator) { + (0, _classCallCheck2.default)(this, ArrayUtils); + this.randomGenerator = randomGenerator; + } + + (0, _createClass2.default)(ArrayUtils, [{ + key: "createWithRange", + value: function createWithRange(length) { + var range = []; + + for (var i = 0; i < length; i++) { + range.push(i); + } + + return range; + } + }, { + key: "rotate", + value: function rotate(array, times) { + if (!array.length) { + throw new ReferenceError("Cannot rotate empty array."); + } + + if (times <= 0) { + return array; + } + + var newArray = array; + var temp; + + while (times--) { + temp = newArray.pop(); + + if (temp) { + newArray.unshift(temp); + } + } + + return newArray; + } + }, { + key: "shuffle", + value: function shuffle(array) { + var shuffledArray = (0, _toConsumableArray2.default)(array); + + for (var i = shuffledArray.length; i; i--) { + var j = Math.floor(this.randomGenerator.getMathRandom() * i); + var _ref = [shuffledArray[j], shuffledArray[i - 1]]; + shuffledArray[i - 1] = _ref[0]; + shuffledArray[j] = _ref[1]; + } + + return shuffledArray; + } + }]); + return ArrayUtils; +}(); + +ArrayUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], ArrayUtils); +exports.ArrayUtils = ArrayUtils; + +/***/ }), + +/***/ "./src/utils/CryptUtils.ts": +/*!*********************************!*\ + !*** ./src/utils/CryptUtils.ts ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var RandomGenerator_1 = __webpack_require__(/*! ./RandomGenerator */ "./src/utils/RandomGenerator.ts"); + +var Utils_1 = __webpack_require__(/*! ./Utils */ "./src/utils/Utils.ts"); + +var CryptUtils = +/*#__PURE__*/ +function () { + function CryptUtils(randomGenerator) { + (0, _classCallCheck2.default)(this, CryptUtils); + this.randomGenerator = randomGenerator; + } + + (0, _createClass2.default)(CryptUtils, [{ + key: "btoa", + value: function btoa(string) { + var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + var output = ''; + string = encodeURIComponent(string).replace(/%([0-9A-F]{2})/g, function (match, p1) { + return String.fromCharCode(parseInt("".concat(Utils_1.Utils.hexadecimalPrefix).concat(p1))); + }); + + for (var block, charCode, idx = 0, map = chars; string.charAt(idx | 0) || (map = '=', idx % 1); output += map.charAt(63 & block >> 8 - idx % 1 * 8)) { + charCode = string.charCodeAt(idx += 3 / 4); + + if (charCode > 0xFF) { + throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."); + } + + block = block << 8 | charCode; + } + + return output; + } + }, { + key: "hideString", + value: function hideString(str, length) { + var _this = this; + + var escapeRegExp = function escapeRegExp(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + }; + + var randomMerge = function randomMerge(s1, s2) { + var i1 = -1; + var i2 = -1; + var result = ''; + + while (i1 < s1.length || i2 < s2.length) { + if (_this.randomGenerator.getMathRandom() < 0.5 && i2 < s2.length) { + result += s2.charAt(++i2); + } else { + result += s1.charAt(++i1); + } + } + + return result; + }; + + var randomString = this.randomGenerator.getRandomGenerator().string({ + length: length, + pool: RandomGenerator_1.RandomGenerator.randomGeneratorPool + }); + var randomStringDiff = randomString.replace(new RegExp("[".concat(escapeRegExp(str), "]"), 'g'), ''); + var randomStringDiffArray = randomStringDiff.split(''); + this.randomGenerator.getRandomGenerator().shuffle(randomStringDiffArray); + randomStringDiff = randomStringDiffArray.join(''); + return [randomMerge(str, randomStringDiff), randomStringDiff]; + } + }, { + key: "rc4", + value: function rc4(string, key) { + var s = [], + j = 0, + x, + result = ''; + + for (var i = 0; i < 256; i++) { + s[i] = i; + } + + for (i = 0; i < 256; i++) { + j = (j + s[i] + key.charCodeAt(i % key.length)) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + } + + i = 0; + j = 0; + + for (var y = 0; y < string.length; y++) { + i = (i + 1) % 256; + j = (j + s[i]) % 256; + x = s[i]; + s[i] = s[j]; + s[j] = x; + result += String.fromCharCode(string.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]); + } + + return result; + } + }]); + return CryptUtils; +}(); + +CryptUtils = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IRandomGenerator)), tslib_1.__metadata("design:paramtypes", [Object])], CryptUtils); +exports.CryptUtils = CryptUtils; + +/***/ }), + +/***/ "./src/utils/EscapeSequenceEncoder.ts": +/*!********************************************!*\ + !*** ./src/utils/EscapeSequenceEncoder.ts ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _map = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/core-js/map */ "@babel/runtime/core-js/map")); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var EscapeSequenceEncoder = +/*#__PURE__*/ +function () { + function EscapeSequenceEncoder() { + (0, _classCallCheck2.default)(this, EscapeSequenceEncoder); + this.stringsCache = new _map.default(); + } + + (0, _createClass2.default)(EscapeSequenceEncoder, [{ + key: "encode", + value: function encode(string, encodeAllSymbols) { + var cacheKey = "".concat(string, "-").concat(String(encodeAllSymbols)); + + if (this.stringsCache.has(cacheKey)) { + return this.stringsCache.get(cacheKey); + } + + var radix = 16; + var replaceRegExp = new RegExp('[\\s\\S]', 'g'); + var escapeSequenceRegExp = new RegExp('[\'\"\\\\\\s]'); + var regExp = new RegExp('[\\x00-\\x7F]'); + var prefix; + var template; + var result = string.replace(replaceRegExp, function (character) { + if (!encodeAllSymbols && !escapeSequenceRegExp.exec(character)) { + return character; + } + + if (regExp.exec(character)) { + prefix = '\\x'; + template = '00'; + } else { + prefix = "\\u"; + template = '0000'; + } + + return "".concat(prefix).concat((template + character.charCodeAt(0).toString(radix)).slice(-template.length)); + }); + this.stringsCache.set(cacheKey, result); + return result; + } + }]); + return EscapeSequenceEncoder; +}(); + +EscapeSequenceEncoder = tslib_1.__decorate([inversify_1.injectable()], EscapeSequenceEncoder); +exports.EscapeSequenceEncoder = EscapeSequenceEncoder; + +/***/ }), + +/***/ "./src/utils/NumberUtils.ts": +/*!**********************************!*\ + !*** ./src/utils/NumberUtils.ts ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var NumberUtils = +/*#__PURE__*/ +function () { + function NumberUtils() { + (0, _classCallCheck2.default)(this, NumberUtils); + } + + (0, _createClass2.default)(NumberUtils, null, [{ + key: "toHex", + value: function toHex(dec) { + var radix = 16; + return dec.toString(radix); + } + }, { + key: "isCeil", + value: function isCeil(number) { + return number % 1 === 0; + } + }]); + return NumberUtils; +}(); + +exports.NumberUtils = NumberUtils; + +/***/ }), + +/***/ "./src/utils/RandomGenerator.ts": +/*!**************************************!*\ + !*** ./src/utils/RandomGenerator.ts ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var tslib_1 = __webpack_require__(/*! tslib */ "tslib"); + +var RandomGenerator_1; +"use strict"; + +var inversify_1 = __webpack_require__(/*! inversify */ "inversify"); + +var ServiceIdentifiers_1 = __webpack_require__(/*! ../container/ServiceIdentifiers */ "./src/container/ServiceIdentifiers.ts"); + +var md5_1 = tslib_1.__importDefault(__webpack_require__(/*! md5 */ "md5")); + +var chance_1 = __webpack_require__(/*! chance */ "chance"); + +var Initializable_1 = __webpack_require__(/*! ../decorators/Initializable */ "./src/decorators/Initializable.ts"); + +var RandomGenerator = RandomGenerator_1 = +/*#__PURE__*/ +function () { + function RandomGenerator(sourceCode, options) { + (0, _classCallCheck2.default)(this, RandomGenerator); + this.sourceCode = sourceCode; + this.options = options; + } + + (0, _createClass2.default)(RandomGenerator, [{ + key: "initialize", + value: function initialize() { + var _this = this; + + var getRandomInteger = function getRandomInteger(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + }; + + var getSeed = function getSeed() { + var md5Hash = md5_1.default(_this.sourceCode.getSourceCode()); + return _this.seed + Number(md5Hash.replace(/\D/g, '')); + }; + + this.seed = this.options.seed !== 0 ? this.options.seed : getRandomInteger(0, 999999999); + this.randomGenerator = new chance_1.Chance(getSeed()); + } + }, { + key: "getMathRandom", + value: function getMathRandom() { + return this.getRandomInteger(0, 99999) / 100000; + } + }, { + key: "getRandomFloat", + value: function getRandomFloat(min, max) { + return this.getRandomGenerator().floating({ + min: min, + max: max, + fixed: 7 + }); + } + }, { + key: "getRandomGenerator", + value: function getRandomGenerator() { + return this.randomGenerator; + } + }, { + key: "getRandomInteger", + value: function getRandomInteger(min, max) { + return this.getRandomGenerator().integer({ + min: min, + max: max + }); + } + }, { + key: "getRandomString", + value: function getRandomString(length) { + var pool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RandomGenerator_1.randomGeneratorPool; + return this.getRandomGenerator().string({ + length: length, + pool: pool + }); + } + }, { + key: "getSeed", + value: function getSeed() { + return this.seed; + } + }]); + return RandomGenerator; +}(); + +RandomGenerator.randomGeneratorPool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Object)], RandomGenerator.prototype, "randomGenerator", void 0); + +tslib_1.__decorate([Initializable_1.initializable(), tslib_1.__metadata("design:type", Number)], RandomGenerator.prototype, "seed", void 0); + +tslib_1.__decorate([inversify_1.postConstruct(), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", void 0)], RandomGenerator.prototype, "initialize", null); + +RandomGenerator = RandomGenerator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.ISourceCode)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object])], RandomGenerator); +exports.RandomGenerator = RandomGenerator; + +/***/ }), + +/***/ "./src/utils/Utils.ts": +/*!****************************!*\ + !*** ./src/utils/Utils.ts ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "@babel/runtime/helpers/interopRequireDefault"); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "@babel/runtime/helpers/createClass")); + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var Utils = +/*#__PURE__*/ +function () { + function Utils() { + (0, _classCallCheck2.default)(this, Utils); + } + + (0, _createClass2.default)(Utils, null, [{ + key: "extractDomainFrom", + value: function extractDomainFrom(url) { + var domain; + + if (url.indexOf('://') > -1 || url.indexOf('//') === 0) { + domain = url.split('/')[2]; + } else { + domain = url.split('/')[0]; + } + + domain = domain.split(':')[0]; + return domain; + } + }]); + return Utils; +}(); + +Utils.hexadecimalPrefix = '0x'; +exports.Utils = Utils; + +/***/ }), + +/***/ "@babel/runtime/core-js/array/from": +/*!****************************************************!*\ + !*** external "@babel/runtime/core-js/array/from" ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/array/from"); + +/***/ }), + +/***/ "@babel/runtime/core-js/get-iterator": +/*!******************************************************!*\ + !*** external "@babel/runtime/core-js/get-iterator" ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/get-iterator"); + +/***/ }), + +/***/ "@babel/runtime/core-js/map": +/*!*********************************************!*\ + !*** external "@babel/runtime/core-js/map" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/map"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/assign": +/*!*******************************************************!*\ + !*** external "@babel/runtime/core-js/object/assign" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/assign"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/define-property": +/*!****************************************************************!*\ + !*** external "@babel/runtime/core-js/object/define-property" ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/define-property"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/freeze": +/*!*******************************************************!*\ + !*** external "@babel/runtime/core-js/object/freeze" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/freeze"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/get-own-property-descriptor": +/*!****************************************************************************!*\ + !*** external "@babel/runtime/core-js/object/get-own-property-descriptor" ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/get-own-property-descriptor"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/get-own-property-names": +/*!***********************************************************************!*\ + !*** external "@babel/runtime/core-js/object/get-own-property-names" ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/get-own-property-names"); + +/***/ }), + +/***/ "@babel/runtime/core-js/object/keys": +/*!*****************************************************!*\ + !*** external "@babel/runtime/core-js/object/keys" ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/object/keys"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/define-metadata": +/*!*****************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/define-metadata" ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/define-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/get-metadata": +/*!**************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/get-metadata" ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/get-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/reflect/has-metadata": +/*!**************************************************************!*\ + !*** external "@babel/runtime/core-js/reflect/has-metadata" ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/reflect/has-metadata"); + +/***/ }), + +/***/ "@babel/runtime/core-js/set": +/*!*********************************************!*\ + !*** external "@babel/runtime/core-js/set" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/core-js/set"); + +/***/ }), + +/***/ "@babel/runtime/helpers/classCallCheck": +/*!********************************************************!*\ + !*** external "@babel/runtime/helpers/classCallCheck" ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/classCallCheck"); + +/***/ }), + +/***/ "@babel/runtime/helpers/construct": +/*!***************************************************!*\ + !*** external "@babel/runtime/helpers/construct" ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/construct"); + +/***/ }), + +/***/ "@babel/runtime/helpers/createClass": +/*!*****************************************************!*\ + !*** external "@babel/runtime/helpers/createClass" ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/createClass"); + +/***/ }), + +/***/ "@babel/runtime/helpers/get": +/*!*********************************************!*\ + !*** external "@babel/runtime/helpers/get" ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/get"); + +/***/ }), + +/***/ "@babel/runtime/helpers/getPrototypeOf": +/*!********************************************************!*\ + !*** external "@babel/runtime/helpers/getPrototypeOf" ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/getPrototypeOf"); + +/***/ }), + +/***/ "@babel/runtime/helpers/inherits": +/*!**************************************************!*\ + !*** external "@babel/runtime/helpers/inherits" ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/inherits"); + +/***/ }), + +/***/ "@babel/runtime/helpers/interopRequireDefault": +/*!***************************************************************!*\ + !*** external "@babel/runtime/helpers/interopRequireDefault" ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/interopRequireDefault"); + +/***/ }), + +/***/ "@babel/runtime/helpers/possibleConstructorReturn": +/*!*******************************************************************!*\ + !*** external "@babel/runtime/helpers/possibleConstructorReturn" ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/possibleConstructorReturn"); + +/***/ }), + +/***/ "@babel/runtime/helpers/slicedToArray": +/*!*******************************************************!*\ + !*** external "@babel/runtime/helpers/slicedToArray" ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/slicedToArray"); + +/***/ }), + +/***/ "@babel/runtime/helpers/toConsumableArray": +/*!***********************************************************!*\ + !*** external "@babel/runtime/helpers/toConsumableArray" ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/toConsumableArray"); + +/***/ }), + +/***/ "@babel/runtime/helpers/typeof": +/*!************************************************!*\ + !*** external "@babel/runtime/helpers/typeof" ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("@babel/runtime/helpers/typeof"); + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chalk"); + +/***/ }), + +/***/ "chance": +/*!*************************!*\ + !*** external "chance" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chance"); + +/***/ }), + +/***/ "class-validator": +/*!**********************************!*\ + !*** external "class-validator" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("class-validator"); + +/***/ }), + +/***/ "escodegen-wallaby": +/*!************************************!*\ + !*** external "escodegen-wallaby" ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("escodegen-wallaby"); + +/***/ }), + +/***/ "espree": +/*!*************************!*\ + !*** external "espree" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("espree"); + +/***/ }), + +/***/ "estraverse": +/*!*****************************!*\ + !*** external "estraverse" ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("estraverse"); + +/***/ }), + +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("events"); + +/***/ }), + +/***/ "inversify": +/*!****************************!*\ + !*** external "inversify" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("inversify"); + +/***/ }), + +/***/ "js-string-escape": +/*!***********************************!*\ + !*** external "js-string-escape" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("js-string-escape"); + +/***/ }), + +/***/ "md5": +/*!**********************!*\ + !*** external "md5" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("md5"); + +/***/ }), + +/***/ "reflect-metadata": +/*!***********************************!*\ + !*** external "reflect-metadata" ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("reflect-metadata"); + +/***/ }), + +/***/ "string-template": +/*!**********************************!*\ + !*** external "string-template" ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("string-template"); + +/***/ }), + +/***/ "tslib": +/*!************************!*\ + !*** external "tslib" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("tslib"); + +/***/ }) + +/******/ }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/package.json b/package.json index b17e9216..08ce9267 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ }, "types": "index.d.ts", "dependencies": { - "@babel/runtime": "7.0.0-beta.51", + "@babel/runtime": "7.0.0-beta.54", "chalk": "2.4.1", "chance": "1.0.16", - "class-validator": "0.8.5", - "commander": "2.15.1", - "escodegen-wallaby": "1.6.18", + "class-validator": "0.9.0", + "commander": "2.16.0", + "escodegen-wallaby": "1.6.19", "espree": "4.0.0", "estraverse": "4.2.0", "inversify": "4.13.0", @@ -41,10 +41,10 @@ "tslib": "1.9.3" }, "devDependencies": { - "@babel/cli": "7.0.0-beta.51", - "@babel/core": "7.0.0-beta.51", - "@babel/plugin-transform-runtime": "7.0.0-beta.51", - "@babel/preset-env": "7.0.0-beta.51", + "@babel/cli": "7.0.0-beta.54", + "@babel/core": "7.0.0-beta.54", + "@babel/plugin-transform-runtime": "7.0.0-beta.54", + "@babel/preset-env": "7.0.0-beta.54", "@types/chai": "4.1.4", "@types/chance": "1.0.1", "@types/escodegen": "0.0.6", @@ -52,9 +52,9 @@ "@types/estree": "0.0.38", "@types/md5": "2.1.32", "@types/mkdirp": "0.5.2", - "@types/mocha": "5.2.3", + "@types/mocha": "5.2.5", "@types/multimatch": "2.1.2", - "@types/node": "10.3.6", + "@types/node": "10.5.2", "@types/rimraf": "2.0.2", "@types/sinon": "5.0.1", "@types/string-template": "1.0.2", @@ -62,23 +62,23 @@ "awesome-typescript-loader": "5.2.0", "babel-loader": "8.0.0-beta.3", "chai": "4.1.2", - "coveralls": "3.0.1", + "coveralls": "3.0.2", "istanbul": "1.1.0-alpha.1", "mocha": "5.2.0", "pjson": "1.0.9", "pre-commit": "1.2.2", "rimraf": "2.6.2", - "sinon": "6.0.1", + "sinon": "6.1.3", "threads": "0.12.0", "ts-node": "6.1.0", - "tslint": "5.10.0", + "tslint": "5.11.0", "tslint-eslint-rules": "5.3.1", "tslint-language-service": "0.9.9", - "tslint-microsoft-contrib": "5.0.3", + "tslint-microsoft-contrib": "5.1.0", "tslint-webpack-plugin": "1.2.2", "typescript": "2.9.2", - "webpack": "4.12.2", - "webpack-cli": "3.0.8", + "webpack": "4.16.1", + "webpack-cli": "3.1.0", "webpack-node-externals": "1.7.2" }, "repository": { diff --git a/src/node-transformers/obfuscating-transformers/FunctionTransformer.ts b/src/node-transformers/obfuscating-transformers/FunctionTransformer.ts index 5f32843d..bc99fbb8 100644 --- a/src/node-transformers/obfuscating-transformers/FunctionTransformer.ts +++ b/src/node-transformers/obfuscating-transformers/FunctionTransformer.ts @@ -62,13 +62,7 @@ export class FunctionTransformer extends AbstractNodeTransformer { case TransformationStage.Obfuscating: return { enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => { - if ( - parentNode && ( - NodeGuards.isFunctionDeclarationNode(node) || - NodeGuards.isFunctionExpressionNode(node) || - NodeGuards.isArrowFunctionExpressionNode(node) - ) - ) { + if (parentNode && NodeGuards.isFunctionNode(node)) { return this.transformNode(node, parentNode); } } @@ -104,7 +98,11 @@ export class FunctionTransformer extends AbstractNodeTransformer { .forEach((paramsNode: ESTree.Node) => { estraverse.traverse(paramsNode, { enter: (node: ESTree.Node): estraverse.VisitorOption | void => { - if (NodeGuards.isPropertyNode(paramsNode)) { + if ( + NodeGuards.isPropertyNode(node) + && node.shorthand + && NodeGuards.isIdentifierNode(node.key) + ) { return estraverse.VisitorOption.Skip; } @@ -122,41 +120,14 @@ export class FunctionTransformer extends AbstractNodeTransformer { }); } - /** - * @param {Property[]} properties - * @param {Set} ignoredIdentifierNamesSet - */ - private addIdentifiersToIgnoredIdentifierNamesSet ( - properties: ESTree.Property[], - ignoredIdentifierNamesSet: Set - ): void { - properties.forEach((property: ESTree.Property) => { - if (!property.key || !NodeGuards.isIdentifierNode(property.key)) { - return; - } - - ignoredIdentifierNamesSet.add(property.key.name); - }); - } - /** * @param {Function} functionNode * @param {TNodeWithBlockScope} blockScopeNode */ private replaceFunctionParams (functionNode: ESTree.Function, blockScopeNode: TNodeWithBlockScope): void { - const ignoredIdentifierNamesSet: Set = new Set(); - const replaceVisitor: estraverse.Visitor = { enter: (node: ESTree.Node, parentNode: ESTree.Node | null): void => { - if (NodeGuards.isObjectPatternNode(node)) { - this.addIdentifiersToIgnoredIdentifierNamesSet(node.properties, ignoredIdentifierNamesSet); - } - - if ( - parentNode && - NodeGuards.isReplaceableIdentifierNode(node, parentNode) && - !ignoredIdentifierNamesSet.has(node.name) - ) { + if (parentNode && NodeGuards.isReplaceableIdentifierNode(node, parentNode)) { const newIdentifier: ESTree.Identifier = this.identifierObfuscatingReplacer .replace(node.name, blockScopeNode); const newIdentifierName: string = newIdentifier.name; diff --git a/src/node/NodeGuards.ts b/src/node/NodeGuards.ts index c5c366bc..5b7ba124 100644 --- a/src/node/NodeGuards.ts +++ b/src/node/NodeGuards.ts @@ -120,6 +120,16 @@ export class NodeGuards { return node.type === NodeType.ExpressionStatement; } + /** + * @param {Node} node + * @returns {boolean} + */ + public static isFunctionNode(node: ESTree.Node): node is ESTree.Function { + return NodeGuards.isFunctionDeclarationNode(node) || + NodeGuards.isFunctionExpressionNode(node) || + NodeGuards.isArrowFunctionExpressionNode(node); + } + /** * @param {Node} node * @returns {boolean} diff --git a/test/dev/dev.ts b/test/dev/dev.ts index bdc76cd9..c59a7749 100644 --- a/test/dev/dev.ts +++ b/test/dev/dev.ts @@ -6,11 +6,9 @@ import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNo let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( ` - (function () { - let a = 0; - let b = 0; - var test = {a, b}; - })(); + function foo (data) { + return ({data}) => data + 1; + } `, { ...NO_ADDITIONAL_NODES_PRESET, diff --git a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/FunctionTransformer.spec.ts b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/FunctionTransformer.spec.ts index e20898d9..b282d732 100644 --- a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/FunctionTransformer.spec.ts +++ b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/FunctionTransformer.spec.ts @@ -77,8 +77,10 @@ describe('FunctionTransformer', () => { }); describe('Variant #2: correct transformation when identifier with same name in parent scope exist', () => { + const functionParameterRegExp: RegExp = /^\(function *\(\) *{ *function *_0x[a-f0-9]{4,6} *\(_0x[a-f0-9]{4,6}\) *\{/; const callbackParameterRegExp: RegExp = /\['then'] *\(\({ *data *}\)/; const callbackBodyRegExp: RegExp = /console\['log']\(data\)/; + const returnRegExp: RegExp = /return _0x[a-f0-9]{4,6};/; let obfuscatedCode: string; @@ -94,13 +96,53 @@ describe('FunctionTransformer', () => { obfuscatedCode = obfuscationResult.getObfuscatedCode(); }); - it('match #1: shouldn\'t transform callback parameter object pattern identifier', () => { - assert.match(obfuscatedCode, callbackParameterRegExp); + it('match #1: should transform function parameter identifier', () => { + assert.match(obfuscatedCode, functionParameterRegExp); }); it('match #2: shouldn\'t transform callback parameter object pattern identifier', () => { + assert.match(obfuscatedCode, callbackParameterRegExp); + }); + + it('match #3: shouldn\'t transform callback body identifier', () => { assert.match(obfuscatedCode, callbackBodyRegExp); }); + + it('match #4: should transform identifier in `ReturnStatement`', () => { + assert.match(obfuscatedCode, returnRegExp); + }); + }); + + describe('Variant #3: correct transformation when parent scope identifier conflicts with current scope object pattern identifier', () => { + const functionObjectPatternParameterRegExp: RegExp = /function _0x[a-f0-9]{4,6} *\({data, *\.\.\._0x[a-f0-9]{4,6}}\) *{/; + const returnRegExp1: RegExp = /return data *\+ *_0x[a-f0-9]{4,6};/; + const returnRegExp2: RegExp = /return _0x[a-f0-9]{4,6};/; + + let obfuscatedCode: string; + + before(() => { + const code: string = readFileAsString(__dirname + '/fixtures/object-pattern-as-parameter-3.js'); + const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate( + code, + { + ...NO_ADDITIONAL_NODES_PRESET + } + ); + + obfuscatedCode = obfuscationResult.getObfuscatedCode(); + }); + + it('match #1: should transform function parameter object pattern rest identifier', () => { + assert.match(obfuscatedCode, functionObjectPatternParameterRegExp); + }); + + it('match #2: should transform identifier in `ReturnStatement` of inner function', () => { + assert.match(obfuscatedCode, returnRegExp1); + }); + + it('match #2: should transform identifier in `ReturnStatement` of outer function', () => { + assert.match(obfuscatedCode, returnRegExp2); + }); }); }); @@ -365,4 +407,28 @@ describe('FunctionTransformer', () => { assert.match(obfuscatedCode, returnRegExp); }); }); + + describe('ignored identifier names set', () => { + describe('Variant #1: avoid to add `ObjectPattern` identifier to the set when same identifier exist in function parameter', () => { + const functionBodyRegExp: RegExp = /\[]\['find']\(\({bar: *_0x[a-f0-9]{4,6}}\) *=> *_0x[a-f0-9]{4,6}\);/; + + let obfuscatedCode: string; + + before(() => { + const code: string = readFileAsString(__dirname + '/fixtures/identifier-names-set-object-pattern.js'); + const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate( + code, + { + ...NO_ADDITIONAL_NODES_PRESET + } + ); + + obfuscatedCode = obfuscationResult.getObfuscatedCode(); + }); + + it('should transform identifiers in function body', () => { + assert.match(obfuscatedCode, functionBodyRegExp); + }); + }); + }); }); diff --git a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/identifier-names-set-object-pattern.js b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/identifier-names-set-object-pattern.js new file mode 100644 index 00000000..fab2e7e4 --- /dev/null +++ b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/identifier-names-set-object-pattern.js @@ -0,0 +1,3 @@ +function foo(bar) { + [].find(({bar: baz}) => bar); +} \ No newline at end of file diff --git a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-2.js b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-2.js index de39f766..91b53090 100644 --- a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-2.js +++ b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-2.js @@ -2,6 +2,7 @@ function foo (data) { new Promise((resolve) => resolve({data: data})) .then(({data}) => console.log(data)); + return data; } foo(1); diff --git a/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-3.js b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-3.js new file mode 100644 index 00000000..698a3f59 --- /dev/null +++ b/test/functional-tests/node-transformers/obfuscating-transformers/function-transformer/fixtures/object-pattern-as-parameter-3.js @@ -0,0 +1,9 @@ +(function(){ + function foo (data) { + function bar ({data, ...rest}) { + return data + rest; + } + + return data; + } +})(); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index cf2711d8..6c167dce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,537 +2,536 @@ # yarn lockfile v1 -"@babel/cli@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-beta.51.tgz#d186cdd59f9236bc9156aaa8eda61638f566b7fc" +"@babel/cli@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.0.0-beta.54.tgz#c3b9766ad3218988f120e4058509adff0b72b183" dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.0.0" glob "^7.0.0" lodash "^4.17.5" + mkdirp "^0.5.1" output-file-sync "^2.0.0" slash "^1.0.0" source-map "^0.5.0" optionalDependencies: chokidar "^2.0.3" -"@babel/code-frame@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" +"@babel/code-frame@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.54.tgz#0024f96fdf7028a21d68e273afd4e953214a1ead" dependencies: - "@babel/highlight" "7.0.0-beta.51" + "@babel/highlight" "7.0.0-beta.54" -"@babel/core@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.51.tgz#0e54bd6b638736b2ae593c31a47f0969e2b2b96d" +"@babel/core@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.54.tgz#253c54d0095403a5cfa764e7d9b458194692d02b" dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helpers" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/code-frame" "7.0.0-beta.54" + "@babel/generator" "7.0.0-beta.54" + "@babel/helpers" "7.0.0-beta.54" + "@babel/parser" "7.0.0-beta.54" + "@babel/template" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" convert-source-map "^1.1.0" debug "^3.1.0" json5 "^0.5.0" lodash "^4.17.5" - micromatch "^3.1.10" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" +"@babel/generator@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.54.tgz#c043c7eebeebfd7e665d95c281a4aafc83d4e1c9" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" jsesc "^2.5.1" lodash "^4.17.5" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-annotate-as-pure@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.51.tgz#38cf7920bf5f338a227f754e286b6fbadee04b58" +"@babel/helper-annotate-as-pure@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.54.tgz#1626126a3f9fc4ed280ac942372c7d39653d7121" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.51.tgz#2133fffe3e2f71591e42147b947291ca2ad39237" +"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.54.tgz#d0a1967635b9eebcafdba80491917ee4981c12fa" dependencies: - "@babel/helper-explode-assignable-expression" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-explode-assignable-expression" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-call-delegate@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.51.tgz#04ed727c97cf05bcb2fd644837331ab15d63c819" +"@babel/helper-call-delegate@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.54.tgz#f6b72cfd832fb26eb2a806e18de05f88d3a8f302" dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-hoist-variables" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-define-map@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.51.tgz#d88c64737e948c713f9f1153338e8415fee40b11" +"@babel/helper-define-map@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.54.tgz#2036d7c49365987f091db9702ce2f3b55f677730" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/helper-explode-assignable-expression@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.51.tgz#9875332ad8b5d5c982fa481cb82b731703f2cd2d" +"@babel/helper-explode-assignable-expression@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.54.tgz#cf067f3330965c2048bf087ea06f62c76d94a792" dependencies: - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" +"@babel/helper-function-name@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.54.tgz#307875507a1eda2482a09a9a4df6a25632ffb34b" dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-get-function-arity" "7.0.0-beta.54" + "@babel/template" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-get-function-arity@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" +"@babel/helper-get-function-arity@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.54.tgz#757bd189b077074a004028cfde5f083c306cc6c4" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-hoist-variables@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.51.tgz#5d7ebc8596567b644fc989912c3a3ef98be058fc" +"@babel/helper-hoist-variables@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.54.tgz#8635be8095135ff73f753ed189e449f68b4f43cb" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-member-expression-to-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.51.tgz#2a42536574176588806e602eb17a52d323f82870" +"@babel/helper-member-expression-to-functions@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.54.tgz#bce9ddc484317b13d2615bafe2b524d0d56d99df" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-module-imports@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.51.tgz#ce00428045fbb7d5ebc0ea7bf835789f15366ab2" +"@babel/helper-module-imports@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.54.tgz#c2d8e14ff034225bf431356db77ef467b8d35aac" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/helper-module-transforms@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.51.tgz#13af0c8ee41f277743c8fc43d444315db2326f73" +"@babel/helper-module-transforms@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.54.tgz#8cc57eb0db5f0945d866524d555abd084e30cc35" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-simple-access" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-beta.54" + "@babel/helper-simple-access" "7.0.0-beta.54" + "@babel/helper-split-export-declaration" "7.0.0-beta.54" + "@babel/template" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/helper-optimise-call-expression@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.51.tgz#21f2158ef083a123ce1e04665b5bb84f370080d7" +"@babel/helper-optimise-call-expression@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.54.tgz#4af8dd4ff90dbd29b3bcf85fff43952e2ae1016e" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-plugin-utils@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.51.tgz#0f6a5f2b6d1c6444413f8fab60940d79b63c2031" +"@babel/helper-plugin-utils@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.54.tgz#61d2a9a0f9a3e31838a458debb9eebd7bdd249b4" -"@babel/helper-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.51.tgz#99722a3c0c704596afb123284b0a888a1a003d82" +"@babel/helper-regex@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.54.tgz#8ac562f855f132fc68dfd10b132552555ac870d9" dependencies: lodash "^4.17.5" -"@babel/helper-remap-async-to-generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.51.tgz#0edc57e05dcb5dde2a0b6ee6f8d0261982def25f" +"@babel/helper-remap-async-to-generator@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.54.tgz#39a50052aadd74d40c73b7c58eb963b90fac56d3" dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-wrap-function" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-annotate-as-pure" "7.0.0-beta.54" + "@babel/helper-wrap-function" "7.0.0-beta.54" + "@babel/template" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-replace-supers@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.51.tgz#279a61afb849476c6cc70d5519f83df4a74ffa6f" +"@babel/helper-replace-supers@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.54.tgz#901f5a1493a410799fd3ab3e0c0d29d18071c89f" dependencies: - "@babel/helper-member-expression-to-functions" "7.0.0-beta.51" - "@babel/helper-optimise-call-expression" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-member-expression-to-functions" "7.0.0-beta.54" + "@babel/helper-optimise-call-expression" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-simple-access@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.51.tgz#c9d7fecd84a181d50a3afcc422fc94a968be3050" +"@babel/helper-simple-access@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.54.tgz#5f760a19589a9b6f07e80a65ef4bcbd4fba8c253" dependencies: - "@babel/template" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/helper-split-export-declaration@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" +"@babel/helper-split-export-declaration@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.54.tgz#89cd8833c95481a0827ac6a1bfccddb92b75a109" dependencies: - "@babel/types" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.54" -"@babel/helper-wrap-function@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.51.tgz#6c516fb044109964ee031c22500a830313862fb1" +"@babel/helper-wrap-function@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.54.tgz#dc1b7a483a3074a3531b36523e03156d910a3a2a" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-beta.54" + "@babel/template" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/helpers@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.51.tgz#95272be2ab4634d6820425f8925031a928918397" +"@babel/helpers@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.54.tgz#b86a99a80efd81668caef307610b961197446a74" dependencies: - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.54" + "@babel/traverse" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" -"@babel/highlight@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" +"@babel/highlight@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.54.tgz#155d507358329b8e7068970017c3fd74a9b08584" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/parser@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" +"@babel/parser@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.54.tgz#c01aa63b57c9c8dce8744796c81d9df121f20db4" -"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.51.tgz#f7d692f946a4a7fca78e4336407a00beaf8a4dea" +"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.54.tgz#19871bd655b5d748b0ae3e9ecebe247be8b7f83b" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.51" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-remap-async-to-generator" "7.0.0-beta.54" + "@babel/plugin-syntax-async-generators" "7.0.0-beta.54" -"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.51.tgz#5bc469e5e6d1b84a5d6046b59e90ca016c2086d6" +"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.54.tgz#5481269a020dd0d38715a8094fed015d30ef4c2a" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.54" -"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.51.tgz#3ecc6d2919d52c94cbfae8625da33582102fb3d6" +"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.54.tgz#931f69298fa0c411b2596616cf5a1d82925b87a9" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.54" -"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.51.tgz#d296c3ea74ca37fd7fa55bbf8c0cd85aa7d99f7b" +"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.54.tgz#1624631faf688bcbde4918712bd0af7186f7d245" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-regex" "7.0.0-beta.54" regexpu-core "^4.2.0" -"@babel/plugin-syntax-async-generators@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.51.tgz#6921af1dc3da0fcedde0a61073eec797b8caa707" +"@babel/plugin-syntax-async-generators@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.54.tgz#ffac8f64927614762897cc9643495fd38097dd41" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.51.tgz#6d57a119c1f064c458e45bad45bef0a83ed10c00" +"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.54.tgz#e0f445612081ab573e2535adbabc7b710d17940c" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.51.tgz#ce2675720cb41248c26433515c90c94b9d01a6fd" +"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.54.tgz#2eb8ddde19ddf73a343d087a087159ed44e54809" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-arrow-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.51.tgz#29b9db6e38688a06ec5c25639996d89a5ebfdbe3" +"@babel/plugin-transform-arrow-functions@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.54.tgz#44a977b8e61e4efcc7658bbbe260f204ca1bcf72" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-async-to-generator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.51.tgz#945385055a2e6d3566bf55af127c8d725cd3a173" +"@babel/plugin-transform-async-to-generator@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.54.tgz#d035e65c50884937d64dbe68d16498c032f8bbec" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-remap-async-to-generator" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-remap-async-to-generator" "7.0.0-beta.54" -"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.51.tgz#23129baf814471f39ea94eec84ab1ffe76c9fe96" +"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.54.tgz#938a77fb12f0e11661bdf5386e4aeca47f0c053b" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-block-scoping@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.51.tgz#be555c79f0da4eb168a7fe16d787a9a7173701e0" +"@babel/plugin-transform-block-scoping@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.54.tgz#bcae1c2ffae4cc3b7b3e5455f0a98daecc09a3c6" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/plugin-transform-classes@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.51.tgz#043f31fb6327664a32d8ba65de15799efdc65da0" +"@babel/plugin-transform-classes@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.54.tgz#b15781d2e499ce25438e73fea2fa5a09858568ff" dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-define-map" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-optimise-call-expression" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-replace-supers" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" + "@babel/helper-annotate-as-pure" "7.0.0-beta.54" + "@babel/helper-define-map" "7.0.0-beta.54" + "@babel/helper-function-name" "7.0.0-beta.54" + "@babel/helper-optimise-call-expression" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-replace-supers" "7.0.0-beta.54" + "@babel/helper-split-export-declaration" "7.0.0-beta.54" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.51.tgz#8c72a1ab3e0767034ff9e6732d2581c23c032efe" +"@babel/plugin-transform-computed-properties@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.54.tgz#b28494942b94fb86d01994763d2b5c43bdd986af" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-destructuring@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.51.tgz#d5d454e574c7ef33ee49e918b048afb29be935f6" +"@babel/plugin-transform-destructuring@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.54.tgz#81f649a3e4fcb62c2b2ad497f783a800b994472f" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-dotall-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.51.tgz#980558a1e5f7e28850f5ffde20404291e2aa33fb" +"@babel/plugin-transform-dotall-regex@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.54.tgz#2835b7f4141b19fa0648eb96ffe3c4fccd1eca20" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-regex" "7.0.0-beta.54" regexpu-core "^4.1.3" -"@babel/plugin-transform-duplicate-keys@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.51.tgz#541eaf8a97d14a9809b359d8f548001f085b9b7f" +"@babel/plugin-transform-duplicate-keys@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.54.tgz#4b8f4fb349902a800679191f59d0fa53fca49400" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.51.tgz#04b4e3e40b3701112dd6eda39625132757881fd4" +"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.54.tgz#1017096366fb43ebca8ed8d8d0cdd1ebd64febb2" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-for-of@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.51.tgz#44f476b06c4035517a8403a2624fb164c4371455" +"@babel/plugin-transform-for-of@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.54.tgz#261d2992058a9e09234b9ff67820054ffc55f79c" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-function-name@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.51.tgz#70653c360b53254246f4659ec450b0c0a56d86aa" +"@babel/plugin-transform-function-name@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.54.tgz#cc722f9973931337def3d1e6c55138581edd371e" dependencies: - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-literals@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.51.tgz#45b07a94223cfa226701a79460b42b32df1dec05" +"@babel/plugin-transform-literals@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.54.tgz#70f07ecc2f3b7bc9f542a578e82eec18a5504098" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-modules-amd@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.51.tgz#f68a8be7f65177d246506a3914dae4d66e675a1f" +"@babel/plugin-transform-modules-amd@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.54.tgz#fb50740741420bb485ee1315d2e1133db4e433d2" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-modules-commonjs@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.51.tgz#4038f9e15244e10900cb89f5b796d050f1eb195b" +"@babel/plugin-transform-modules-commonjs@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.54.tgz#07d912a7a24dad2d9bf5d44ce322ddc457a8db37" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-simple-access" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-simple-access" "7.0.0-beta.54" -"@babel/plugin-transform-modules-systemjs@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.51.tgz#6e7fc4ad9421b725cddf37cc924eaf777f228c27" +"@babel/plugin-transform-modules-systemjs@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.54.tgz#0923f012ac252e037467245ff27f8954f4ce6803" dependencies: - "@babel/helper-hoist-variables" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-hoist-variables" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-modules-umd@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.51.tgz#ee2ef575579d96e40613fca6e6c8edb5cadb6c6f" +"@babel/plugin-transform-modules-umd@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.54.tgz#3af0e2cf8f533b2984a8ca6da316246850c3aeda" dependencies: - "@babel/helper-module-transforms" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-transforms" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-new-target@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.51.tgz#7075a106595cbfdd425ed6b830b79f8a7aff5283" +"@babel/plugin-transform-new-target@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.54.tgz#634ee57fa805720195cd31086c973f1fc5c9949b" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-object-super@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.51.tgz#ac18e88bc1d79b718bdaf48a756833cdf5bdcebf" +"@babel/plugin-transform-object-super@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.54.tgz#d25fad66eff90de03ee62f8384f0af57bcd065d9" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-replace-supers" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-replace-supers" "7.0.0-beta.54" -"@babel/plugin-transform-parameters@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.51.tgz#990195b1dfdb1bcc94906f3034951089ed1edd4e" +"@babel/plugin-transform-parameters@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.54.tgz#76306f19b9acac6cf13721af15ecb9f382864ff7" dependencies: - "@babel/helper-call-delegate" "7.0.0-beta.51" - "@babel/helper-get-function-arity" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-call-delegate" "7.0.0-beta.54" + "@babel/helper-get-function-arity" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-regenerator@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.51.tgz#536f0d599d2753dca0a2be8a65e2c244a7b5612b" +"@babel/plugin-transform-regenerator@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.54.tgz#8b46e192f3bfe096bbbf86e27764e7662e5f9a0f" dependencies: - regenerator-transform "^0.12.4" + regenerator-transform "^0.13.3" -"@babel/plugin-transform-runtime@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.51.tgz#0c9cab174f4e3e131659fd65c5ce8e3d73376820" +"@babel/plugin-transform-runtime@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.54.tgz#ad45d1e84a9d0cfc48df148dda609ff09c121fd2" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-shorthand-properties@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.51.tgz#ddbc0b1ae1ddb3bcfe6969f2c968103f11e32bd9" +"@babel/plugin-transform-shorthand-properties@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.54.tgz#50e73c2afc5898b1055510ddf60ee13a6301517f" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-spread@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.51.tgz#100129bc8d7dcf4bc79adcd6129a4214259d8a50" +"@babel/plugin-transform-spread@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.54.tgz#4f0852df0f4b1db2426c40facd8fe5f028a3dbc9" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-sticky-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.51.tgz#48cbeacd31bd05ee800b5facbcb09c5781bd9619" +"@babel/plugin-transform-sticky-regex@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.54.tgz#568f35eb5118ae96fad82eac36374d7923b47883" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-regex" "7.0.0-beta.54" -"@babel/plugin-transform-template-literals@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.51.tgz#2d0595f56461d4345ba35c38d73033f87ecbbbc8" +"@babel/plugin-transform-template-literals@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.54.tgz#cb1f6303cafb8442a6c6c69a0dfbb60699f327bc" dependencies: - "@babel/helper-annotate-as-pure" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-annotate-as-pure" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-typeof-symbol@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.51.tgz#4950c0c8e3c9e1e141e45cebab5e6148263204c3" +"@babel/plugin-transform-typeof-symbol@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.54.tgz#6d068686239c9ebaf534d1c0d8032953f7b521bc" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" -"@babel/plugin-transform-unicode-regex@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.51.tgz#9019f91508f40b50a64435043228c4142c2cd864" +"@babel/plugin-transform-unicode-regex@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.54.tgz#1dc7e9150b39aaeb19fca1c863e082f6096afc60" dependencies: - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/helper-regex" "7.0.0-beta.51" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/helper-regex" "7.0.0-beta.54" regexpu-core "^4.1.3" -"@babel/preset-env@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.51.tgz#5b580e6e9e8304166c1317017e863c06dcfc04a2" +"@babel/preset-env@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.54.tgz#4b05c4e3aaed64a509098e4e854dfc0e02edf053" dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" - "@babel/helper-plugin-utils" "7.0.0-beta.51" - "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.51" - "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.51" - "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.51" - "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.51" - "@babel/plugin-syntax-async-generators" "7.0.0-beta.51" - "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.51" - "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.51" - "@babel/plugin-transform-arrow-functions" "7.0.0-beta.51" - "@babel/plugin-transform-async-to-generator" "7.0.0-beta.51" - "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.51" - "@babel/plugin-transform-block-scoping" "7.0.0-beta.51" - "@babel/plugin-transform-classes" "7.0.0-beta.51" - "@babel/plugin-transform-computed-properties" "7.0.0-beta.51" - "@babel/plugin-transform-destructuring" "7.0.0-beta.51" - "@babel/plugin-transform-dotall-regex" "7.0.0-beta.51" - "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.51" - "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.51" - "@babel/plugin-transform-for-of" "7.0.0-beta.51" - "@babel/plugin-transform-function-name" "7.0.0-beta.51" - "@babel/plugin-transform-literals" "7.0.0-beta.51" - "@babel/plugin-transform-modules-amd" "7.0.0-beta.51" - "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.51" - "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.51" - "@babel/plugin-transform-modules-umd" "7.0.0-beta.51" - "@babel/plugin-transform-new-target" "7.0.0-beta.51" - "@babel/plugin-transform-object-super" "7.0.0-beta.51" - "@babel/plugin-transform-parameters" "7.0.0-beta.51" - "@babel/plugin-transform-regenerator" "7.0.0-beta.51" - "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.51" - "@babel/plugin-transform-spread" "7.0.0-beta.51" - "@babel/plugin-transform-sticky-regex" "7.0.0-beta.51" - "@babel/plugin-transform-template-literals" "7.0.0-beta.51" - "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.51" - "@babel/plugin-transform-unicode-regex" "7.0.0-beta.51" + "@babel/helper-module-imports" "7.0.0-beta.54" + "@babel/helper-plugin-utils" "7.0.0-beta.54" + "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.54" + "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.54" + "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.54" + "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.54" + "@babel/plugin-syntax-async-generators" "7.0.0-beta.54" + "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.54" + "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.54" + "@babel/plugin-transform-arrow-functions" "7.0.0-beta.54" + "@babel/plugin-transform-async-to-generator" "7.0.0-beta.54" + "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.54" + "@babel/plugin-transform-block-scoping" "7.0.0-beta.54" + "@babel/plugin-transform-classes" "7.0.0-beta.54" + "@babel/plugin-transform-computed-properties" "7.0.0-beta.54" + "@babel/plugin-transform-destructuring" "7.0.0-beta.54" + "@babel/plugin-transform-dotall-regex" "7.0.0-beta.54" + "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.54" + "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.54" + "@babel/plugin-transform-for-of" "7.0.0-beta.54" + "@babel/plugin-transform-function-name" "7.0.0-beta.54" + "@babel/plugin-transform-literals" "7.0.0-beta.54" + "@babel/plugin-transform-modules-amd" "7.0.0-beta.54" + "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.54" + "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.54" + "@babel/plugin-transform-modules-umd" "7.0.0-beta.54" + "@babel/plugin-transform-new-target" "7.0.0-beta.54" + "@babel/plugin-transform-object-super" "7.0.0-beta.54" + "@babel/plugin-transform-parameters" "7.0.0-beta.54" + "@babel/plugin-transform-regenerator" "7.0.0-beta.54" + "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.54" + "@babel/plugin-transform-spread" "7.0.0-beta.54" + "@babel/plugin-transform-sticky-regex" "7.0.0-beta.54" + "@babel/plugin-transform-template-literals" "7.0.0-beta.54" + "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.54" + "@babel/plugin-transform-unicode-regex" "7.0.0-beta.54" browserslist "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" -"@babel/runtime@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.51.tgz#48b8ed18307034c6620f643514650ca2ccc0165a" +"@babel/runtime@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.54.tgz#39ebb42723fe7ca4b3e1b00e967e80138d47cadf" dependencies: core-js "^2.5.7" - regenerator-runtime "^0.11.1" + regenerator-runtime "^0.12.0" -"@babel/template@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" +"@babel/template@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.54.tgz#d5b0d2d2d55c0e78b048c61a058f36cfd7d91af3" dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/code-frame" "7.0.0-beta.54" + "@babel/parser" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" lodash "^4.17.5" -"@babel/traverse@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" +"@babel/traverse@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.54.tgz#2c17f98dcdbf19aa918fde128f0e1a0bc089e05a" dependencies: - "@babel/code-frame" "7.0.0-beta.51" - "@babel/generator" "7.0.0-beta.51" - "@babel/helper-function-name" "7.0.0-beta.51" - "@babel/helper-split-export-declaration" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" + "@babel/code-frame" "7.0.0-beta.54" + "@babel/generator" "7.0.0-beta.54" + "@babel/helper-function-name" "7.0.0-beta.54" + "@babel/helper-split-export-declaration" "7.0.0-beta.54" + "@babel/parser" "7.0.0-beta.54" + "@babel/types" "7.0.0-beta.54" debug "^3.1.0" globals "^11.1.0" - invariant "^2.2.0" lodash "^4.17.5" -"@babel/types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" +"@babel/types@7.0.0-beta.54": + version "7.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.54.tgz#025ad68492fed542c13f14c579a44c848e531063" dependencies: esutils "^2.0.2" lodash "^4.17.5" @@ -544,6 +543,10 @@ dependencies: samsam "1.3.0" +"@sinonjs/samsam@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.0.0.tgz#9163742ac35c12d3602dece74317643b35db6a80" + "@types/chai@4.1.4": version "4.1.4" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.4.tgz#5ca073b330d90b4066d6ce18f60d57f2084ce8ca" @@ -594,9 +597,9 @@ dependencies: "@types/node" "*" -"@types/mocha@5.2.3": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.3.tgz#11f3a5629d67cd444fa6c94536576244e6a52ea9" +"@types/mocha@5.2.5": + version "5.2.5" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073" "@types/multimatch@2.1.2": version "2.1.2" @@ -606,9 +609,9 @@ version "10.0.3" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.0.3.tgz#1f89840c7aac2406cc43a2ecad98fc02a8e130e4" -"@types/node@10.3.6": - version "10.3.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.6.tgz#ea8aab9439b59f40d19ec5f13b44642344872b11" +"@types/node@10.5.2": + version "10.5.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.2.tgz#f19f05314d5421fe37e74153254201a7bf00a707" "@types/rimraf@2.0.2": version "2.0.2" @@ -629,140 +632,140 @@ version "1.13.6" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.6.tgz#128d1685a7c34d31ed17010fc87d6a12c1de6976" -"@webassemblyjs/ast@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.12.tgz#a9acbcb3f25333c4edfa1fdf3186b1ccf64e6664" +"@webassemblyjs/ast@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.13.tgz#81155a570bd5803a30ec31436bc2c9c0ede38f25" dependencies: - "@webassemblyjs/helper-module-context" "1.5.12" - "@webassemblyjs/helper-wasm-bytecode" "1.5.12" - "@webassemblyjs/wast-parser" "1.5.12" + "@webassemblyjs/helper-module-context" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/wast-parser" "1.5.13" debug "^3.1.0" mamacro "^0.0.3" -"@webassemblyjs/floating-point-hex-parser@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz#0f36044ffe9652468ce7ae5a08716a4eeff9cd9c" +"@webassemblyjs/floating-point-hex-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz#29ce0baa97411f70e8cce68ce9c0f9d819a4e298" -"@webassemblyjs/helper-api-error@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz#05466833ff2f9d8953a1a327746e1d112ea62aaf" +"@webassemblyjs/helper-api-error@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz#e49b051d67ee19a56e29b9aa8bd949b5b4442a59" -"@webassemblyjs/helper-buffer@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz#1f0de5aaabefef89aec314f7f970009cd159c73d" +"@webassemblyjs/helper-buffer@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz#873bb0a1b46449231137c1262ddfd05695195a1e" dependencies: debug "^3.1.0" -"@webassemblyjs/helper-code-frame@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz#3cdc1953093760d1c0f0caf745ccd62bdb6627c7" +"@webassemblyjs/helper-code-frame@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz#1bd2181b6a0be14e004f0fe9f5a660d265362b58" dependencies: - "@webassemblyjs/wast-printer" "1.5.12" + "@webassemblyjs/wast-printer" "1.5.13" -"@webassemblyjs/helper-fsm@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz#6bc1442b037f8e30f2e57b987cee5c806dd15027" +"@webassemblyjs/helper-fsm@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz#cdf3d9d33005d543a5c5e5adaabf679ffa8db924" -"@webassemblyjs/helper-module-context@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz#b5588ca78b33b8a0da75f9ab8c769a3707baa861" +"@webassemblyjs/helper-module-context@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz#dc29ddfb51ed657655286f94a5d72d8a489147c5" dependencies: debug "^3.1.0" mamacro "^0.0.3" -"@webassemblyjs/helper-wasm-bytecode@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz#d12a3859db882a448891a866a05d0be63785b616" +"@webassemblyjs/helper-wasm-bytecode@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz#03245817f0a762382e61733146f5773def15a747" -"@webassemblyjs/helper-wasm-section@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz#ff9fe1507d368ad437e7969d25e8c1693dac1884" +"@webassemblyjs/helper-wasm-section@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz#efc76f44a10d3073b584b43c38a179df173d5c7d" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-buffer" "1.5.12" - "@webassemblyjs/helper-wasm-bytecode" "1.5.12" - "@webassemblyjs/wasm-gen" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" debug "^3.1.0" -"@webassemblyjs/ieee754@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz#ee9574bc558888f13097ce3e7900dff234ea19a4" +"@webassemblyjs/ieee754@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz#573e97c8c12e4eebb316ca5fde0203ddd90b0364" dependencies: ieee754 "^1.1.11" -"@webassemblyjs/leb128@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.12.tgz#0308eec652765ee567d8a5fa108b4f0b25b458e1" +"@webassemblyjs/leb128@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.13.tgz#ab52ebab9cec283c1c1897ac1da833a04a3f4cee" dependencies: - leb "^0.3.0" + long "4.0.0" -"@webassemblyjs/utf8@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.12.tgz#d5916222ef314bf60d6806ed5ac045989bfd92ce" +"@webassemblyjs/utf8@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.13.tgz#6b53d2cd861cf94fa99c1f12779dde692fbc2469" -"@webassemblyjs/wasm-edit@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz#821c9358e644a166f2c910e5af1b46ce795a17aa" +"@webassemblyjs/wasm-edit@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz#c9cef5664c245cf11b3b3a73110c9155831724a8" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-buffer" "1.5.12" - "@webassemblyjs/helper-wasm-bytecode" "1.5.12" - "@webassemblyjs/helper-wasm-section" "1.5.12" - "@webassemblyjs/wasm-gen" "1.5.12" - "@webassemblyjs/wasm-opt" "1.5.12" - "@webassemblyjs/wasm-parser" "1.5.12" - "@webassemblyjs/wast-printer" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/helper-wasm-section" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" + "@webassemblyjs/wasm-opt" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" + "@webassemblyjs/wast-printer" "1.5.13" debug "^3.1.0" -"@webassemblyjs/wasm-gen@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz#0b7ccfdb93dab902cc0251014e2e18bae3139bcb" +"@webassemblyjs/wasm-gen@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz#8e6ea113c4b432fa66540189e79b16d7a140700e" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-wasm-bytecode" "1.5.12" - "@webassemblyjs/ieee754" "1.5.12" - "@webassemblyjs/leb128" "1.5.12" - "@webassemblyjs/utf8" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/ieee754" "1.5.13" + "@webassemblyjs/leb128" "1.5.13" + "@webassemblyjs/utf8" "1.5.13" -"@webassemblyjs/wasm-opt@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz#bd758a8bc670f585ff1ae85f84095a9e0229cbc9" +"@webassemblyjs/wasm-opt@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz#147aad7717a7ee4211c36b21a5f4c30dddf33138" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-buffer" "1.5.12" - "@webassemblyjs/wasm-gen" "1.5.12" - "@webassemblyjs/wasm-parser" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-buffer" "1.5.13" + "@webassemblyjs/wasm-gen" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" debug "^3.1.0" -"@webassemblyjs/wasm-parser@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz#7b10b4388ecf98bd7a22e702aa62ec2f46d0c75e" +"@webassemblyjs/wasm-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz#6f46516c5bb23904fbdf58009233c2dd8a54c72f" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-api-error" "1.5.12" - "@webassemblyjs/helper-wasm-bytecode" "1.5.12" - "@webassemblyjs/ieee754" "1.5.12" - "@webassemblyjs/leb128" "1.5.12" - "@webassemblyjs/utf8" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-api-error" "1.5.13" + "@webassemblyjs/helper-wasm-bytecode" "1.5.13" + "@webassemblyjs/ieee754" "1.5.13" + "@webassemblyjs/leb128" "1.5.13" + "@webassemblyjs/utf8" "1.5.13" -"@webassemblyjs/wast-parser@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz#9cf5ae600ecae0640437b5d4de5dd6b6088d0d8b" +"@webassemblyjs/wast-parser@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz#5727a705d397ae6a3ae99d7f5460acf2ec646eea" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/floating-point-hex-parser" "1.5.12" - "@webassemblyjs/helper-api-error" "1.5.12" - "@webassemblyjs/helper-code-frame" "1.5.12" - "@webassemblyjs/helper-fsm" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/floating-point-hex-parser" "1.5.13" + "@webassemblyjs/helper-api-error" "1.5.13" + "@webassemblyjs/helper-code-frame" "1.5.13" + "@webassemblyjs/helper-fsm" "1.5.13" long "^3.2.0" mamacro "^0.0.3" -"@webassemblyjs/wast-printer@1.5.12": - version "1.5.12" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz#563ca4d01b22d21640b2463dc5e3d7f7d9dac520" +"@webassemblyjs/wast-printer@1.5.13": + version "1.5.13" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz#bb34d528c14b4f579e7ec11e793ec50ad7cd7c95" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/wast-parser" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/wast-parser" "1.5.13" long "^3.2.0" abbrev@1: @@ -1124,18 +1127,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1403,11 +1394,12 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -class-validator@0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.8.5.tgz#484785acda98f68549c3a84dc1bb2f77b736dc58" +class-validator@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.9.0.tgz#199d5169a31567c83d27f5637c92ad6bebe10448" dependencies: - validator "9.2.0" + google-libphonenumber "^3.1.6" + validator "10.4.0" cli-cursor@^2.1.0: version "2.1.0" @@ -1470,6 +1462,10 @@ commander@2.15.1, commander@^2.12.1, commander@^2.8.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" +commander@2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" + commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -1544,15 +1540,16 @@ core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -coveralls@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.1.tgz#12e15914eaa29204e56869a5ece7b9e1492d2ae2" +coveralls@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.2.tgz#f5a0bcd90ca4e64e088b710fa8dda640aea4884f" dependencies: - js-yaml "^3.6.1" + growl "~> 1.10.0" + js-yaml "^3.11.0" lcov-parse "^0.0.10" - log-driver "^1.2.5" + log-driver "^1.2.7" minimist "^1.2.0" - request "^2.79.0" + request "^2.85.0" create-ecdh@^4.0.0: version "4.0.1" @@ -1604,12 +1601,6 @@ crypt@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -1658,10 +1649,16 @@ debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1: +decamelize@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -1815,6 +1812,14 @@ enhanced-resolve@^4.0.0: memory-fs "^0.4.0" tapable "^1.0.0" +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -1866,9 +1871,9 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen-wallaby@1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/escodegen-wallaby/-/escodegen-wallaby-1.6.18.tgz#95a41e2fdc88687466e43550c7bf136386fd4363" +escodegen-wallaby@1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/escodegen-wallaby/-/escodegen-wallaby-1.6.19.tgz#acd6bbd73f9270763e18570cdc13c0d694759a23" dependencies: esprima "^2.7.1" estraverse "^1.9.1" @@ -1877,9 +1882,9 @@ escodegen-wallaby@1.6.18: optionalDependencies: source-map "~0.2.0" -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2062,6 +2067,12 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" @@ -2201,11 +2212,15 @@ globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +google-libphonenumber@^3.1.6: + version "3.1.10" + resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.1.10.tgz#53095e151c435f46f9382437eb0e9780f184f36e" + graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -growl@1.10.5: +growl@1.10.5, "growl@~> 1.10.0": version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" @@ -2299,15 +2314,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -2320,10 +2326,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -2436,7 +2438,7 @@ interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -2721,13 +2723,20 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@3.x, js-yaml@^3.6.1, js-yaml@^3.7.0: +js-yaml@3.x, js-yaml@^3.7.0: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -2811,10 +2820,6 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -leb@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2841,6 +2846,13 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -2849,7 +2861,7 @@ lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" -log-driver@^1.2.5: +log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" @@ -2874,6 +2886,10 @@ lolex@^2.4.2: version "2.6.0" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.6.0.tgz#cf9166f3c9dece3cdeb5d6b01fce50f14a1203e3" +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + long@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" @@ -2947,7 +2963,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: +micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -3406,16 +3422,32 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" @@ -3674,13 +3706,17 @@ regenerator-runtime@^0.10.0: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" -regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1: +regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-transform@^0.12.4: - version "0.12.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.4.tgz#aa9b6c59f4b97be080e972506c560b3bccbfcff0" +regenerator-runtime@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.0.tgz#8052ac952d85b10f3425192cd0c53f45cf65c6cb" + +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" dependencies: private "^0.1.6" @@ -3751,9 +3787,9 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.79.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" +request@^2.85.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -3763,7 +3799,6 @@ request@^2.79.0: forever-agent "~0.6.1" form-data "~2.3.1" har-validator "~5.0.3" - hawk "~6.0.2" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -3773,7 +3808,6 @@ request@^2.79.0: performance-now "^2.1.0" qs "~6.5.1" safe-buffer "^5.1.1" - stringstream "~0.0.5" tough-cookie "~2.3.3" tunnel-agent "^0.6.0" uuid "^3.1.0" @@ -3946,11 +3980,12 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -sinon@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.0.1.tgz#4247b97dd8fecbe1e19f8b816a5e7eed3993bcfe" +sinon@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.1.3.tgz#98e7d716b7b11f7f1200e9c997e74f50ae094660" dependencies: "@sinonjs/formatio" "^2.0.0" + "@sinonjs/samsam" "^2.0.0" diff "^3.5.0" lodash.get "^4.4.2" lolex "^2.4.2" @@ -3989,12 +4024,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" @@ -4148,10 +4177,6 @@ string_decoder@^1.0.0, string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4326,9 +4351,9 @@ tslint-language-service@0.9.9: dependencies: mock-require "^2.0.2" -tslint-microsoft-contrib@5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.0.3.tgz#6fc3e238179cd72045c2b422e4d655f4183a8d5c" +tslint-microsoft-contrib@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.1.0.tgz#777c32d51aba16f4565e47aac749a1631176cd9f" dependencies: tsutils "^2.12.1" @@ -4338,9 +4363,9 @@ tslint-webpack-plugin@1.2.2: dependencies: chalk "^2.1.0" -tslint@5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3" +tslint@5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" @@ -4353,7 +4378,7 @@ tslint@5.10.0: resolve "^1.3.2" semver "^5.3.0" tslib "^1.8.0" - tsutils "^2.12.1" + tsutils "^2.27.2" tsutils@2.8.0: version "2.8.0" @@ -4367,6 +4392,12 @@ tsutils@^2.12.1: dependencies: tslib "^1.8.1" +tsutils@^2.27.2: + version "2.28.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1" + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -4550,9 +4581,9 @@ v8-compile-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz#526492e35fc616864284700b7043e01baee09f0a" -validator@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-9.2.0.tgz#ad216eed5f37cac31a6fe00ceab1f6b88bded03e" +validator@10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-10.4.0.tgz#ee99a44afb3bb5ed350a159f056ca72a204cfc3c" verror@1.10.0: version "1.10.0" @@ -4576,9 +4607,9 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -webpack-cli@3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.0.8.tgz#90eddcf04a4bfc31aa8c0edc4c76785bc4f1ccd9" +webpack-cli@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994" dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" @@ -4590,7 +4621,7 @@ webpack-cli@3.0.8: loader-utils "^1.1.0" supports-color "^5.4.0" v8-compile-cache "^2.0.0" - yargs "^11.1.0" + yargs "^12.0.1" webpack-log@^1.2.0: version "1.2.0" @@ -4612,22 +4643,22 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.12.2: - version "4.12.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.12.2.tgz#d2b8418eb40cedcbf2c1f5905d23a99546011ce9" +webpack@4.16.1: + version "4.16.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.1.tgz#2c4b89ea648125c3e67bcca6adf49ce2c14b2d31" dependencies: - "@webassemblyjs/ast" "1.5.12" - "@webassemblyjs/helper-module-context" "1.5.12" - "@webassemblyjs/wasm-edit" "1.5.12" - "@webassemblyjs/wasm-opt" "1.5.12" - "@webassemblyjs/wasm-parser" "1.5.12" + "@webassemblyjs/ast" "1.5.13" + "@webassemblyjs/helper-module-context" "1.5.13" + "@webassemblyjs/wasm-edit" "1.5.13" + "@webassemblyjs/wasm-opt" "1.5.13" + "@webassemblyjs/wasm-parser" "1.5.13" acorn "^5.6.2" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" chrome-trace-event "^1.0.0" - enhanced-resolve "^4.0.0" - eslint-scope "^3.7.1" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" @@ -4697,15 +4728,15 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -y18n@^4.0.0: +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -4717,19 +4748,19 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" dependencies: camelcase "^4.1.0" -yargs@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" +yargs@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2" dependencies: cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" + decamelize "^2.0.0" + find-up "^3.0.0" get-caller-file "^1.0.1" os-locale "^2.0.0" require-directory "^2.1.1" @@ -4737,8 +4768,8 @@ yargs@^11.1.0: set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" yargs@~3.10.0: version "3.10.0" From 836f665cab3b187fab2263314df372bfd27e2e45 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sat, 21 Jul 2018 17:50:50 +0300 Subject: [PATCH 02/11] Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/297 --- dist/index.browser.js | 8 +- dist/index.cli.js | 14866 +--------------- dist/index.js | 14123 +-------------- .../FunctionTransformer.ts | 36 +- src/node/NodeGuards.ts | 2 +- 5 files changed, 36 insertions(+), 28999 deletions(-) diff --git a/dist/index.browser.js b/dist/index.browser.js index d05d7278..60e47305 100644 --- a/dist/index.browser.js +++ b/dist/index.browser.js @@ -21,21 +21,21 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JavaScriptObfuscator=t():e.JavaScriptObfuscator=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=527)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23);t.METADATA_KEY=r;var i=n(498);t.Container=i.Container;var a=n(36);t.BindingScopeEnum=a.BindingScopeEnum,t.BindingTypeEnum=a.BindingTypeEnum,t.TargetTypeEnum=a.TargetTypeEnum;var o=n(482);t.AsyncContainerModule=o.AsyncContainerModule,t.ContainerModule=o.ContainerModule;var s=n(481);t.injectable=s.injectable;var u=n(480);t.tagged=u.tagged;var c=n(479);t.named=c.named;var l=n(168);t.inject=l.inject,t.LazyServiceIdentifer=l.LazyServiceIdentifer;var d=n(478);t.optional=d.optional;var f=n(477);t.unmanaged=f.unmanaged;var p=n(476);t.multiInject=p.multiInject;var h=n(475);t.targetName=h.targetName;var m=n(474);t.postConstruct=m.postConstruct;var g=n(170);t.MetadataReader=g.MetadataReader;var y=n(48);t.guid=y.guid;var v=n(42);t.decorate=v.decorate;var b=n(165);t.traverseAncerstors=b.traverseAncerstors,t.taggedConstraint=b.taggedConstraint,t.namedConstraint=b.namedConstraint,t.typeConstraint=b.typeConstraint;var C=n(68);t.getServiceIdentifierAsString=C.getServiceIdentifierAsString;var S=n(473);t.multiBindToService=S.multiBindToService},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(7);function i(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1/0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(r.length>=n)return r;var a=t.parentNode;if(!a)throw new ReferenceError("`parentNode` property of given node is `undefined`");return f.NodeGuards.isBlockStatementNode(t)&&a===t&&r.push(t),(f.NodeGuards.isProgramNode(t)||i&&f.NodeGuards.isNodeHasBlockScope(t,a))&&r.push(t),t!==a?e.getBlockScopesOfNodeRecursive(a,n,r,++i):r}},{key:"getSiblingStatementByOffset",value:function(t,n){var r=e.getScopeOfNode(t),i=f.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body;return i[i.indexOf(t)+n]||null}}]),e}();t.NodeUtils=h},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(7)),o=r(n(5)),s=r(n(387)),u=r(n(384)),c=r(n(381)),l=r(n(378)),d=r(n(57)),f=r(n(104));Object.defineProperty(t,"__esModule",{value:!0});var p={configurable:!0,enumerable:!0},h="_initialized",m="_initializablePropertiesSet",g="_wrappedMethodsSet",y="constructor";function v(e,t,n){(0,l.default)(e,n)||(0,c.default)(e,t,n)}t.initializable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initialize",t=(0,f.default)(this)[0];return function(n,r){var l=n[e];if(!l||"function"!=typeof l)throw new Error("`".concat(e,"` method with initialization logic not ")+"found. `@".concat(t,"` decorator requires `").concat(e,"` method"));return v(h,!1,n),v(m,new d.default,n),v(g,new d.default,n),function(e,t){var n=(0,u.default)(e),r=[t,y];n.forEach(function(n){var u=(0,s.default)(m,e),c=(0,s.default)(g,e),l=r.includes(n)||u.has(n)||c.has(n);if(!l){var d=e[n];if("function"==typeof d){var f=(0,o.default)(e,n)||p,y=f.value;(0,a.default)(e,n,(0,i.default)({},f,{value:function(){if(!(0,s.default)(h,this))throw new Error("Class should be initialized with `".concat(t,"()` method"));return y.apply(this,arguments)}})),c.add(n)}}})}(n,e),function(e,t,n){var r=(0,o.default)(e,t)||p,s=r.value;(0,a.default)(e,t,(0,i.default)({},r,{value:function(){(0,c.default)(h,!0,this);var e=s.apply(this,arguments);return this[n],e}}))}(n,e,r),function(e,t){(0,s.default)(m,e).add(t);var n="_".concat(t.toString()),r=(0,o.default)(e,n)||p;return(0,a.default)(e,t,(0,i.default)({},r,{get:function(){if(void 0===this[n])throw new Error("Property `".concat(t.toString(),"` is not initialized! Initialize it first!"));return this[n]},set:function(e){this[n]=e}})),r}(n,r)}}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports=n(434)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Finalizing="Finalizing"}(t.TransformationStage||(t.TransformationStage={}))},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(8)),o=r(n(7)),s=r(n(6)),u=r(n(5)),c=function(e,t,n,r){var i,a=arguments.length,c=a<3?t:null===r?r=(0,u.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(c=(a<3?i(c):a>3?i(t,n,c):i(t,n))||c);return a>3&&c&&(0,o.default)(t,n,c),c},l=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},d=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),p=n(4),h=function e(t,n){(0,i.default)(this,e),this.randomGenerator=t,this.options=n};h=c([f.injectable(),d(0,f.inject(p.ServiceIdentifiers.IRandomGenerator)),d(1,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",[Object,Object])],h),t.AbstractNodeTransformer=h},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var u=s(n(103)),c=n(41),l=function(){function e(){(0,a.default)(this,e)}return(0,o.default)(e,null,[{key:"programNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}},{key:"arrayExpressionNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}},{key:"assignmentExpressionNode",value:function(e,t,n){return{type:c.NodeType.AssignmentExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"binaryExpressionNode",value:function(e,t,n){return{type:c.NodeType.BinaryExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"blockStatementNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:c.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}},{key:"breakStatement",value:function(e){var t={type:c.NodeType.BreakStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"callExpressionNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{type:c.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}},{key:"continueStatement",value:function(e){var t={type:c.NodeType.ContinueStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"expressionStatementNode",value:function(e){return{type:c.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}},{key:"functionDeclarationNode",value:function(t,n,r){return{type:c.NodeType.FunctionDeclaration,id:e.identifierNode(t),params:n,body:r,generator:!1,metadata:{ignoredNode:!1}}}},{key:"functionExpressionNode",value:function(e,t){return{type:c.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}},{key:"ifStatementNode",value:function(e,t,n){return(0,i.default)({type:c.NodeType.IfStatement,test:e,consequent:t},n&&{alternate:n},{metadata:{ignoredNode:!1}})}},{key:"identifierNode",value:function(e){return{type:c.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}},{key:"literalNode",value:function(e,t){return t=void 0!==t?t:"'".concat(e,"'"),{type:c.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:u.Precedence.Primary},metadata:{ignoredNode:!1}}}},{key:"logicalExpressionNode",value:function(e,t,n){return{type:c.NodeType.LogicalExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"memberExpressionNode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.MemberExpression,computed:n,object:e,property:t,metadata:{ignoredNode:!1}}}},{key:"methodDefinitionNode",value:function(e,t,n,r){return{type:c.NodeType.MethodDefinition,key:e,value:t,kind:n,computed:r,static:!1,metadata:{ignoredNode:!1}}}},{key:"objectExpressionNode",value:function(e){return{type:c.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}},{key:"propertyNode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:n,metadata:{ignoredNode:!1}}}},{key:"returnStatementNode",value:function(e){return{type:c.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}},{key:"switchStatementNode",value:function(e,t){return{type:c.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}},{key:"switchCaseNode",value:function(e,t){return{type:c.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}},{key:"unaryExpressionNode",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:c.NodeType.UnaryExpression,operator:e,argument:t,prefix:n,metadata:{ignoredNode:!1}}}},{key:"updateExpressionNode",value:function(e,t){return{type:c.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}},{key:"variableDeclarationNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"var";return{type:c.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}},{key:"variableDeclaratorNode",value:function(e,t){return{type:c.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}},{key:"whileStatementNode",value:function(e,t){return{type:c.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}]),e}();t.NodeFactory=l},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(8)),u=i(n(7)),c=i(n(6)),l=i(n(5)),d=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=n(4),g=n(370),y=n(369),v=r=function(){function e(t,n,r){(0,a.default)(this,e),this.cachedNode=null,this.identifierNamesGenerator=t(r),this.randomGenerator=n,this.options=r}return(0,o.default)(e,[{key:"getNode",value:function(){return this.cachedNode||(this.cachedNode=this.getNodeStructure()),this.cachedNode}},{key:"getGlobalVariableTemplate",value:function(){return this.randomGenerator.getRandomGenerator().pickone(r.globalVariableTemplateFunctions)}}]),e}();v.globalVariableTemplateFunctions=[g.GlobalVariableTemplate1(),y.GlobalVariableTemplate2()],v=r=d([h.injectable(),p(0,h.inject(m.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,h.inject(m.ServiceIdentifiers.IRandomGenerator)),p(2,h.inject(m.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Function,Object,Object])],v),t.AbstractCustomNode=v},function(e,t,n){e.exports=n(510)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NAMED_TAG="named",t.NAME_TAG="name",t.UNMANAGED_TAG="unmanaged",t.OPTIONAL_TAG="optional",t.INJECT_TAG="inject",t.MULTI_INJECT_TAG="multi_inject",t.TAGGED="inversify:tagged",t.TAGGED_PROP="inversify:tagged_props",t.PARAM_TYPES="inversify:paramtypes",t.DESIGN_PARAM_TYPES="design:paramtypes",t.POST_CONSTRUCT="post_construct"},function(e,t,n){!function e(t){"use strict";var r,i,a,o,s,u,c,l,d;function f(e){var t,n,r={};for(t in e)e.hasOwnProperty(t)&&(n=e[t],r[t]="object"==typeof n&&null!==n?f(n):n);return r}function p(e,t){this.parent=e,this.key=t}function h(e,t,n,r){this.node=e,this.path=t,this.wrap=n,this.ref=r}function m(){}function g(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function y(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function v(e,t){return(new m).traverse(e,t)}function b(e,t){var n;return n=function(e,t){var n,r,i,a;for(r=e.length,i=0;r;)t(e[a=i+(n=r>>>1)])?r=n:(i=a+1,r-=n+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),(n-=1)>=0&&(e.extendedRange[0]=t[n].range[1]),e}return(i=Array.isArray)||(i=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),s=Object.create||function(){function e(){}return function(t){return e.prototype=t,new e}}(),u=Object.keys||function(e){var t,n=[];for(t in e)n.push(t);return n},r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},o={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},a={Break:c={},Skip:l={},Remove:d={}},p.prototype.replace=function(e){this.parent[this.key]=e},p.prototype.remove=function(){return i(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},m.prototype.path=function(){var e,t,n,r,a;function o(e,t){if(i(t))for(n=0,r=t.length;n=0;)if(v=o[d=m[f]])if(i(v)){for(p=v.length;(p-=1)>=0;)if(v[p]){if(y(s,m[f]))a=new h(v[p],[d,p],"Property",null);else{if(!g(v[p]))continue;a=new h(v[p],[d,p],null,null)}n.push(a)}}else g(v)&&n.push(new h(v,d,null,null))}}else if(a=r.pop(),u=this.__execute(t.leave,a),this.__state===c||u===c)return},m.prototype.replace=function(e,t){var n,r,a,o,s,u,f,m,v,b,C,S,A;function E(e){var t,r,i,a;if(e.ref.remove())for(r=e.ref.key,a=e.ref.parent,t=n.length;t--;)if((i=n[t]).ref&&i.ref.parent===a){if(i.ref.key=0;)if(b=a[A=v[f]])if(i(b)){for(m=b.length;(m-=1)>=0;)if(b[m]){if(y(o,v[f]))u=new h(b[m],[A,m],"Property",new p(b,m));else{if(!g(b[m]))continue;u=new h(b[m],[A,m],null,new p(b,m))}n.push(u)}}else g(b)&&n.push(new h(b,A,null,new p(a,A)))}}else if(u=r.pop(),void 0!==(s=this.__execute(t.leave,u))&&s!==c&&s!==l&&s!==d&&u.ref.replace(s),this.__state!==d&&s!==d||E(u),this.__state===c||s===c)return S.root;return S.root},t.version=n(453).version,t.Syntax=r,t.traverse=v,t.replace=function(e,t){return(new m).replace(e,t)},t.attachComments=function(e,t,n){var r,i,o,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(o=0,i=t.length;oe.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?a.Break:u[s].extendedRange[0]>e.range[1]?a.Skip:void 0}}),s=0,v(e,{leave:function(e){for(var t;se.range[1]?a.Skip:void 0}}),e},t.VisitorKeys=o,t.VisitorOption=a,t.Controller=m,t.cloneEnvironment=function(){return e({})},t}(t)},function(e,t,n){var r=n(33),i=n(16),a=n(50),o=n(44),s=n(37),u=function(e,t,n){var c,l,d,f=e&u.F,p=e&u.G,h=e&u.S,m=e&u.P,g=e&u.B,y=e&u.W,v=p?i:i[t]||(i[t]={}),b=v.prototype,C=p?r:h?r[t]:(r[t]||{}).prototype;for(c in p&&(n=t),n)(l=!f&&C&&void 0!==C[c])&&s(v,c)||(d=l?C[c]:n[c],v[c]=p&&"function"!=typeof C[c]?n[c]:g&&l?a(d,r):y&&C[c]==d?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):m&&"function"==typeof d?a(Function.call,d):d,m&&((v.virtual||(v.virtual={}))[c]=d,e&u.R&&b&&!b[c]&&o(b,c,d)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(26);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(){(0,a.default)(this,e)}return(0,o.default)(e,null,[{key:"set",value:function(e,t){e.metadata=(0,i.default)(e.metadata||{},t)}},{key:"get",value:function(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}},{key:"isIgnoredNode",value:function(t){return!0===e.get(t,"ignoredNode")}},{key:"isRenamedIdentifier",value:function(t){return!0===e.get(t,"renamedIdentifier")}},{key:"isReplacedLiteral",value:function(t){return!0===e.get(t,"replacedLiteral")}}]),e}();t.NodeMetadata=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",t.DUPLICATED_METADATA="Metadata key was used more than once in a parameter:",t.NULL_ARGUMENT="NULL argument",t.KEY_NOT_FOUND="Key Not Found",t.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",t.CANNOT_UNBIND="Could not unbind serviceIdentifier:",t.NOT_REGISTERED="No matching bindings found for serviceIdentifier:",t.MISSING_INJECTABLE_ANNOTATION="Missing required @injectable annotation in:",t.MISSING_INJECT_ANNOTATION="Missing required @inject or @multiInject annotation in:",t.UNDEFINED_INJECT_ANNOTATION=function(e){return"@inject called with undefined this could mean that the class "+e+" has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation."},t.CIRCULAR_DEPENDENCY="Circular dependency found:",t.NOT_IMPLEMENTED="Sorry, this feature is not fully implemented yet.",t.INVALID_BINDING_TYPE="Invalid binding type:",t.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",t.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Middleware must return!",t.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!",t.INVALID_TO_SELF_VALUE="The toSelf function can only be applied when a constructor is used as service identifier",t.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",t.ARGUMENTS_LENGTH_MISMATCH=function(){for(var e=[],t=0;t= than the number of constructor arguments of its base class."},t.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT="Invalid Container constructor argument. Container options must be an object.",t.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE="Invalid Container option. Default scope must be a string ('singleton' or 'transient').",t.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE="Invalid Container option. Auto bind injectable must be a boolean",t.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK="Invalid Container option. Skip base check must be a boolean",t.MULTIPLE_POST_CONSTRUCT_METHODS="Cannot apply @postConstruct decorator multiple times in the same class",t.POST_CONSTRUCT_ERROR=function(){for(var e=[],t=0;t1?t-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:0,a=t.length?e.getOptimalBlockScope(t,i):n;e.prepend(a,r)}},{key:"getOptimalBlockScope",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,i=t[n];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&i.stackTrace.length?e.getOptimalBlockScope(i.stackTrace,0,--r):i.callee}},{key:"insertAfter",value:function(t,n,r){var i=e.getScopeStatements(t).indexOf(r);e.insertAtIndex(t,n,i+1)}},{key:"insertAtIndex",value:function(t,n,r){n=e.parentizeScopeStatementsBeforeAppend(t,n),e.setScopeStatements(t,(0,i.default)(e.getScopeStatements(t).slice(0,r)).concat((0,i.default)(n),(0,i.default)(e.getScopeStatements(t).slice(r))))}},{key:"prepend",value:function(t,n){n=e.parentizeScopeStatementsBeforeAppend(t,n),e.setScopeStatements(t,(0,i.default)(n).concat((0,i.default)(e.getScopeStatements(t))))}},{key:"getScopeStatements",value:function(e){return s.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}},{key:"parentizeScopeStatementsBeforeAppend",value:function(e,t){return t.forEach(function(t){t.parentNode=e}),t}},{key:"setScopeStatements",value:function(e,t){s.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}]),e}();t.NodeAppender=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.guid=function(){function e(){return Math.floor(65536*(Math.random()+1)).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}},function(e,t,n){var r=n(125),i=n(123);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(76);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i,a=new(function(){function e(){this.instances=[]}return e.prototype.get=function(e){var t=this.instances.find(function(t){return t.type===e});return t||(t={type:e,object:new e},this.instances.push(t)),t.object},e}());t.useContainer=function(e,t){r=e,i=t},t.getFromContainer=function(e){if(r)try{var t=r.get(e);if(t)return t;if(!i||!i.fallback)return t}catch(e){if(!i||!i.fallbackOnErrors)throw e}return a.get(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.isValid=function(e){var t=this;return"isValid"!==e&&"getMessage"!==e&&-1!==Object.keys(this).map(function(e){return t[e]}).indexOf(e)},e.getMessage=function(e,t){var n=this,r=t?"each value in ":"";switch(e){case this.NESTED_VALIDATION:return r+"nested property $property must be either object or array";case this.IS_DEFINED:return r+"$property should not be null or undefined";case this.EQUALS:return r+"$property must be equal to $constraint1";case this.NOT_EQUALS:return r+"$property should not be equal to $constraint1";case this.IS_EMPTY:return r+"$property must be empty";case this.IS_NOT_EMPTY:return r+"$property should not be empty";case this.IS_IN:return r+"$property must be one of the following values: $constraint1";case this.IS_NOT_IN:return r+"$property should not be one of the following values: $constraint1";case this.IS_BOOLEAN:return r+"$property must be a boolean value";case this.IS_DATE:return r+"$property must be a Date instance";case this.IS_NUMBER:return r+"$property must be a number";case this.IS_INT:return r+"$property must be an integer number";case this.IS_STRING:return r+"$property must be a string";case this.IS_DATE_STRING:return r+"$property must be a ISOString";case this.IS_ARRAY:return r+"$property must be an array";case this.IS_ENUM:return r+"$property must be a valid enum value";case this.IS_DIVISIBLE_BY:return r+"$property must be divisible by $constraint1";case this.IS_POSITIVE:return r+"$property must be a positive number";case this.IS_NEGATIVE:return r+"$property must be a negative number";case this.MIN:return r+"$property must be greater than $constraint1";case this.MAX:return r+"$property must be less than $constraint1";case this.MIN_DATE:return"minimal allowed date for "+r+"$property is $constraint1";case this.MAX_DATE:return"maximal allowed date for "+r+"$property is $constraint1";case this.IS_BOOLEAN_STRING:return r+"$property must be a boolean string";case this.IS_NUMBER_STRING:return r+"$property must be a number string";case this.CONTAINS:return r+"$property must contain a $constraint1 string";case this.NOT_CONTAINS:return r+"$property should not contain a $constraint1 string";case this.IS_ALPHA:return r+"$property must contain only letters (a-zA-Z)";case this.IS_ALPHANUMERIC:return r+"$property must contain only letters and numbers";case this.IS_ASCII:return r+"$property must contain only ASCII characters";case this.IS_BASE64:return r+"$property must be base64 encoded";case this.IS_BYTE_LENGTH:return r+"$property's byte length must fall into ($constraint1, $constraint2) range";case this.IS_CREDIT_CARD:return r+"$property must be a credit card";case this.IS_CURRENCY:return r+"$property must be a currency";case this.IS_EMAIL:return r+"$property must be an email";case this.IS_FQDN:return r+"$property must be a valid domain name";case this.IS_FULL_WIDTH:return r+"$property must contain a full-width characters";case this.IS_HALF_WIDTH:return r+"$property must contain a half-width characters";case this.IS_VARIABLE_WIDTH:return r+"$property must contain a full-width and half-width characters";case this.IS_HEX_COLOR:return r+"$property must be a hexadecimal color";case this.IS_HEXADECIMAL:return r+"$property must be a hexadecimal number";case this.IS_IP:return r+"$property must be an ip address";case this.IS_ISBN:return r+"$property must be an ISBN";case this.IS_ISIN:return r+"$property must be an ISIN (stock/security identifier)";case this.IS_ISO8601:return r+"$property must be a valid ISO 8601 date string";case this.IS_JSON:return r+"$property must be a json string";case this.IS_LOWERCASE:return r+"$property must be a lowercase string";case this.IS_MOBILE_PHONE:return r+"$property must be a phone number";case this.IS_MONGO_ID:return r+"$property must be a mongodb id";case this.IS_MULTIBYTE:return r+"$property must contain one or more multibyte chars";case this.IS_SURROGATE_PAIR:return r+"$property must contain any surrogate pairs chars";case this.IS_URL:return r+"$property must be an URL address";case this.IS_UUID:return r+"$property must be an UUID";case this.IS_UPPERCASE:return r+"$property must be uppercase";case this.LENGTH:return function(e){var t=null!==e.constraints[0]&&void 0!==e.constraints[0],n=null!==e.constraints[1]&&void 0!==e.constraints[1];return t&&(!e.value||e.value.lengthe.constraints[1]?r+"$property must be shorter than or equal to $constraint2 characters":r+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"};case this.MIN_LENGTH:return r+"$property must be longer than or equal to $constraint1 characters";case this.MAX_LENGTH:return r+"$property must be shorter than or equal to $constraint1 characters";case this.MATCHES:return r+"$property must match $constraint1 regular expression";case this.ARRAY_CONTAINS:return r+"$property must contain $constraint1 values";case this.ARRAY_NOT_CONTAINS:return r+"$property should not contain $constraint1 values";case this.ARRAY_NOT_EMPTY:return r+"$property should not be empty";case this.ARRAY_MIN_SIZE:return r+"$property must contain at least $constraint1 elements";case this.ARRAY_MAX_SIZE:return r+"$property must contain not more than $constraint1 elements";case this.ARRAY_UNIQUE:return r+"All $property's elements must be unique";case this.IS_INSTANCE:return function(e){return e.constraints[0]?r+"$property must be an instance of "+e.constraints[0].name:r+(n.IS_INSTANCE+" decorator expects and object as value, but got falsy value.")}}return""},e.CUSTOM_VALIDATION="customValidation",e.NESTED_VALIDATION="nestedValidation",e.CONDITIONAL_VALIDATION="conditionalValidation",e.WHITELIST="whitelistValidation",e.IS_DEFINED="isDefined",e.EQUALS="equals",e.NOT_EQUALS="notEquals",e.IS_EMPTY="isEmpty",e.IS_NOT_EMPTY="isNotEmpty",e.IS_IN="isIn",e.IS_NOT_IN="isNotIn",e.IS_BOOLEAN="isBoolean",e.IS_DATE="isDate",e.IS_NUMBER="isNumber",e.IS_STRING="isString",e.IS_DATE_STRING="isDateString",e.IS_ARRAY="isArray",e.IS_INT="isInt",e.IS_ENUM="isEnum",e.IS_DIVISIBLE_BY="isDivisibleBy",e.IS_POSITIVE="isPositive",e.IS_NEGATIVE="isNegative",e.MIN="min",e.MAX="max",e.MIN_DATE="minDate",e.MAX_DATE="maxDate",e.IS_BOOLEAN_STRING="isBooleanString",e.IS_NUMBER_STRING="isNumberString",e.CONTAINS="contains",e.NOT_CONTAINS="notContains",e.IS_ALPHA="isAlpha",e.IS_ALPHANUMERIC="isAlphanumeric",e.IS_ASCII="isAscii",e.IS_BASE64="isBase64",e.IS_BYTE_LENGTH="isByteLength",e.IS_CREDIT_CARD="isCreditCard",e.IS_CURRENCY="isCurrency",e.IS_EMAIL="isEmail",e.IS_FQDN="isFqdn",e.IS_FULL_WIDTH="isFullWidth",e.IS_HALF_WIDTH="isHalfWidth",e.IS_VARIABLE_WIDTH="isVariableWidth",e.IS_HEX_COLOR="isHexColor",e.IS_HEXADECIMAL="isHexadecimal",e.IS_IP="isIp",e.IS_ISBN="isIsbn",e.IS_ISIN="isIsin",e.IS_ISO8601="isIso8601",e.IS_JSON="isJson",e.IS_LOWERCASE="isLowercase",e.IS_MOBILE_PHONE="isMobilePhone",e.IS_MONGO_ID="isMongoId",e.IS_MULTIBYTE="isMultibyte",e.IS_SURROGATE_PAIR="isSurrogatePair",e.IS_URL="isUrl",e.IS_UUID="isUuid",e.LENGTH="length",e.IS_UPPERCASE="isUppercase",e.MIN_LENGTH="minLength",e.MAX_LENGTH="maxLength",e.MATCHES="matches",e.IS_MILITARY_TIME="isMilitaryTime",e.ARRAY_CONTAINS="arrayContains",e.ARRAY_NOT_CONTAINS="arrayNotContains",e.ARRAY_NOT_EMPTY="arrayNotEmpty",e.ARRAY_MIN_SIZE="arrayMinSize",e.ARRAY_MAX_SIZE="arrayMaxSize",e.ARRAY_UNIQUE="arrayUnique",e.IS_INSTANCE="isInstance",e}();t.ValidationTypes=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputDisableExpressionNode="ConsoleOutputDisableExpressionNode",e.DebugProtectionFunctionCallNode="DebugProtectionFunctionCallNode",e.DebugProtectionFunctionIntervalNode="DebugProtectionFunctionIntervalNode",e.DebugProtectionFunctionNode="DebugProtectionFunctionNode",e.DomainLockNode="DomainLockNode",e.NodeCallsControllerFunctionNode="NodeCallsControllerFunctionNode",e.SelfDefendingUnicodeNode="SelfDefendingUnicodeNode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArrayNode="StringArrayNode",e.StringArrayRotateFunctionNode="StringArrayRotateFunctionNode"}(t.CustomNode||(t.CustomNode={}))},function(e,t,n){var r=n(398),i=n(397),a=n(396);e.exports=function(e,t){return r(e)||i(e,t)||a()}},function(e,t,n){var r=n(412),i=n(411),a=n(403);e.exports=function(e){return r(e)||i(e)||a()}},function(e,t,n){e.exports=n(418)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.ClassDeclarationTransformer="ClassDeclarationTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomNodesTransformer="CustomNodesTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.CatchClauseTransformer="CatchClauseTransformer",e.FunctionDeclarationTransformer="FunctionDeclarationTransformer",e.FunctionTransformer="FunctionTransformer",e.ImportDeclarationTransformer="ImportDeclarationTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationTransformer="VariableDeclarationTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,n){var r=n(91)("meta"),i=n(26),a=n(37),o=n(32).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(38)(function(){return u(Object.preventExtensions({}))}),l=function(e){o(e,r,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return c&&d.NEED&&u(e)&&!a(e,r)&&l(e),e}}},function(e,t,n){var r=n(123);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(509)(!0);n(118)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(304),i=function(){function e(){this.validationMetadatas=[],this.constraintMetadatas=[]}return e.prototype.addValidationSchema=function(e){var t=this;(new r.ValidationSchemaToMetadataTransformer).transform(e).forEach(function(e){return t.addValidationMetadata(e)})},e.prototype.addValidationMetadata=function(e){this.validationMetadatas.push(e)},e.prototype.addConstraintMetadata=function(e){this.constraintMetadatas.push(e)},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach(function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)}),t},e.prototype.getTargetValidationMetadatas=function(e,t,n){var r=this.validationMetadatas.filter(function(r){return(r.target===e||r.target===t)&&(!!r.always||(!(n&&n.length>0)||r.groups&&!!r.groups.find(function(e){return-1!==n.indexOf(e)})))}),i=this.validationMetadatas.filter(function(t){return t.target!==e&&((!(t.target instanceof Function)||e.prototype instanceof t.target)&&(!!t.always||(!(n&&n.length>0)||t.groups&&!!t.groups.find(function(e){return-1!==n.indexOf(e)}))))}).filter(function(e){return!r.find(function(t){return t.propertyName===e.propertyName&&t.type===e.type})});return r.concat(i)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.filter(function(t){return t.target===e})},e}();t.MetadataStorage=i},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,null,[{key:"extractDomainFrom",value:function(e){return(e.indexOf("://")>-1||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0]).split(":")[0]}}]),e}();o.hexadecimalPrefix="0x",t.Utils=o},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(8)),s=r(n(7)),u=r(n(6)),c=r(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(4),m=function(){function e(t,n,r){(0,i.default)(this,e),this.identifierNamesGenerator=t(r),this.randomGenerator=n,this.options=r}return(0,a.default)(e,[{key:"getAppendEvent",value:function(){return this.appendEvent}},{key:"getCustomNodes",value:function(){return this.customNodes}},{key:"appendCustomNodeIfExist",value:function(e,t){var n=this.customNodes.get(e);n&&t(n)}},{key:"getRandomStackTraceIndex",value:function(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}}]),e}();m=l([p.injectable(),f(0,p.inject(h.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,p.inject(h.ServiceIdentifiers.IRandomGenerator)),f(2,p.inject(h.ServiceIdentifiers.IOptions)),d("design:paramtypes",[Function,Object,Object])],m),t.AbstractCustomNodeGroup=m},function(e,t,n){e.exports=n(430)},function(e,t,n){var r=n(25),i=n(16),a=n(38);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*a(function(){n(1)}),"Object",o)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(29);function i(e){return"function"==typeof e?e.name:"symbol"==typeof e?e.toString():e}function a(e){if(e.name)return e.name;var t=e.toString(),n=t.match(/^function\s*([^\s(]+)/);return n?n[1]:"Anonymous function: "+t}t.getServiceIdentifierAsString=i,t.listRegisteredBindingsForServiceIdentifier=function(e,t,n){var r="",i=n(e,t);return 0!==i.length&&(r="\nRegistered bindings:",i.forEach(function(e){var t="Object";null!==e.implementationType&&(t=a(e.implementationType)),r=r+"\n "+t,e.constraint.metaData&&(r=r+" - "+e.constraint.metaData)})),r},t.circularDependencyToException=function e(t){t.childRequests.forEach(function(t){if(function e(t,n){return null!==t.parentRequest&&(t.parentRequest.serviceIdentifier===n||e(t.parentRequest,n))}(t,t.serviceIdentifier)){var n=function e(t,n){void 0===n&&(n=[]);var r=i(t.serviceIdentifier);return n.push(r),null!==t.parentRequest?e(t.parentRequest,n):n}(t).reverse().join(" --\x3e ");throw new Error(r.CIRCULAR_DEPENDENCY+" "+n)}e(t)})},t.listMetadataForTarget=function(e,t){if(t.isTagged()||t.isNamed()){var n="",r=t.getNamedTag(),i=t.getCustomTags();return null!==r&&(n+=r.toString()+"\n"),null!==i&&i.forEach(function(e){n+=e.toString()+"\n"})," "+e+"\n "+e+" - "+n}return" "+e},t.getFunctionName=a},function(e,t,n){var r=n(26);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){var r=n(50),i=n(176),a=n(175),o=n(27),s=n(94),u=n(114),c={},l={};(t=e.exports=function(e,t,n,d,f){var p,h,m,g,y=f?function(){return e}:u(e),v=r(n,d,t?2:1),b=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(a(y)){for(p=s(e.length);p>b;b++)if((g=t?v(o(h=e[b])[0],h[1]):v(e[b]))===c||g===l)return g}else for(m=y.call(e);!(h=m.next()).done;)if((g=i(m,v,h.value,t))===c||g===l)return g}).BREAK=c,t.RETURN=l},function(e,t,n){n(507);for(var r=n(33),i=n(44),a=n(61),o=n(30)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;udocument.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[a[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[o]=e):n=u(),void 0===t?n:i(n,t)}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3));Object.defineProperty(t,"__esModule",{value:!0}),n(524);var o=n(4),s=n(43),u=function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,null,[{key:"obfuscate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new s.InversifyContainerFacade;n.load(e,t);var r=n.get(o.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return n.unload(),r}}]),e}();u.version="0.17.0",t.JavaScriptObfuscator=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});for(var r,i=t.alpha={"en-US":/^[A-Z]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ω]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},a=t.alphanumeric={"en-US":/^[0-9A-Z]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},o=t.decimal={"en-US":".",ar:"٫"},s=t.englishLocales=["AU","GB","HK","IN","NZ","ZA","ZM"],u=0;u=0;l--)(i=e[l])&&(c=(a<3?i(c):a>3?i(t,n,c):i(t,n))||c);return a>3&&c&&(0,o.default)(t,n,c),c},l=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},d=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),p=n(4),h=function e(t){(0,i.default)(this,e),this.options=t};h=c([f.injectable(),d(0,f.inject(p.ServiceIdentifiers.IOptions)),l("design:paramtypes",[Object])],h),t.AbstractObfuscatingReplacer=h},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,null,[{key:"toHex",value:function(e){return e.toString(16)}},{key:"isCeil",value:function(e){return e%1==0}}]),e}();t.NumberUtils=o},function(e,t,n){var r=n(5),i=n(335),a=(n(9),n(332));function o(t,n,s){return"undefined"!=typeof Reflect&&i?e.exports=o=i:e.exports=o=function(e,t,n){var i=a(e,t);if(i){var o=r(i,t);return o.get?o.get.call(n):o.value}},o(t,n,s||t)}e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base64="base64",e.Rc4="rc4"}(t.StringArrayEncoding||(t.StringArrayEncoding={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Inline="inline",e.Separate="separate"}(t.SourceMapMode||(t.SourceMapMode={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.HexadecimalIdentifierNamesGenerator="hexadecimal",e.MangledIdentifierNamesGenerator="mangled"}(t.IdentifierNamesGenerator||(t.IdentifierNamesGenerator={}))},function(e,t,n){"use strict";var r=n(0)(n(150));Object.defineProperty(t,"__esModule",{value:!0});var i=n(84),a=n(45),o=n(83);t.NO_ADDITIONAL_NODES_PRESET=(0,r.default)({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!1,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:o.SourceMapMode.Separate,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:a.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,n){var r=n(178),i=n(25),a=n(93)("metadata"),o=a.store||(a.store=new(n(425))),s=function(e,t,n){var i=o.get(e);if(!i){if(!n)return;o.set(e,i=new r)}var a=i.get(t);if(!a){if(!n)return;i.set(t,a=new r)}return a};e.exports={store:o,map:s,has:function(e,t,n){var r=s(t,n,!1);return void 0!==r&&r.has(e)},get:function(e,t,n){var r=s(t,n,!1);return void 0===r?void 0:r.get(e)},set:function(e,t,n,r){s(n,r,!0).set(e,t)},keys:function(e,t){var n=s(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},key:function(e){return void 0===e||"symbol"==typeof e?e:String(e)},exp:function(e){i(i.S,"Reflect",e)}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(32).f,i=n(37),a=n(30)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(89),i=n(75),a=n(49),o=n(127),s=n(37),u=n(185),c=Object.getOwnPropertyDescriptor;t.f=n(35)?c:function(e,t){if(e=a(e),t=o(t,!0),u)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){e.exports=!0},function(e,t,n){var r=n(16),i=n(33),a=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(92)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){var r=n(122),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,r.default)(e),(t=(0,i.default)(t,o)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));var n=e.split(".");if(t.require_tld){var a=n.pop();if(!n.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(a))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20]/.test(a))return!1}for(var s,u=0;u=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),g=n(4),y=r=function(){function e(t,n,r){(0,o.default)(this,e),this.replacerDataByControlFlowStorageId=new a.default,this.controlFlowCustomNodeFactory=t,this.randomGenerator=n,this.options=r}return(0,s.default)(e,[{key:"insertCustomNodeToControlFlowStorage",value:function(e,t,n,i){var a=this,o=t.getStorageId(),s=r.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,o),u=s.get(n);if(this.randomGenerator.getMathRandom()":i.Relational,"<=":i.Relational,">=":i.Relational,in:i.Relational,instanceof:i.Relational,"<<":i.BitwiseSHIFT,">>":i.BitwiseSHIFT,">>>":i.BitwiseSHIFT,"+":i.Additive,"-":i.Additive,"*":i.Multiplicative,"%":i.Multiplicative,"/":i.Multiplicative,"**":i.Exponentiation};var M=7,w=1;function k(e,t){var n="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(n+=e);return n}function B(e){return/[\r\n]/g.test(e)}function R(e){var t=e.length;return t&&u.code.isLineTerminator(e.charCodeAt(t-1))}function O(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function P(e,t){var n,r;function i(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(n in t)t.hasOwnProperty(n)&&(i(r=t[n])?i(e[n])?P(e[n],r):e[n]=P({},r):e[n]=r);return e}function j(e,t){return 8232==(-2&e)?(t?"u":"\\u")+(8232===e?"2028":"2029"):10===e||13===e?(t?"":"\\")+(10===e?"n":"r"):String.fromCharCode(e)}function L(e,t){var n;return 8===e?"\\b":12===e?"\\f":9===e?"\\t":(n=e.toString(16).toUpperCase(),f||e>255?"\\u"+"0000".slice(n.length)+n:0!==e||u.code.isDecimalDigit(t)?11===e?"\\x0B":"\\x"+"00".slice(n.length)+n:"\\0")}function G(e){if(92===e)return"\\\\";if(10===e)return"\\n";if(13===e)return"\\r";if(8232===e)return"\\u2028";if(8233===e)return"\\u2029";throw new Error("Incorrectly classified character")}function V(e,t){if(!I)return c(e)?function e(t){var n,r,i,a="";for(n=0,r=t.length;no&&(s=o)}for(void 0!==t?(c=l,"*"===n[1][s]&&(t+=" "),l=t):(1&s&&--s,c=l),r=1,i=n.length;r0){if(o=t,x){for(t=[],p=(a=e.leadingComments[0]).extendedRange,h=a.range,(y=((g=_.substring(p[0],h[0])).match(/\n/g)||[]).length)>0?(t.push(k("\n",y)),t.push(H(K(a)))):(t.push(g),t.push(K(a))),m=h,n=1,i=e.leadingComments.length;n0?(t.push(k("\n",y)),t.push(H(K(a)))):(t.push(g),t.push(K(a)));else for(s=!R(V(t).toString()),c=k(" ",function(e){var t;for(t=e.length-1;t>=0&&!u.code.isLineTerminator(e.charCodeAt(t));--t);return e.length-1-t}(V([l,t,d]).toString())),n=0,i=e.trailingComments.length;n")),e.expression?(t.push(v),"{"===(n=this.generateExpression(e.body,i.Assignment,M)).toString().charAt(0)&&(n=["(",n,")"]),t.push(n)):t.push(this.maybeBlock(e.body,9)),t},Z.prototype.generateIterationForStatement=function(e,t,n){var a=["for"+v+(t.await?"await"+v:"")+"("],o=this;return W(function(){t.left.type===r.VariableDeclaration?W(function(){a.push(t.left.kind+U()),a.push(o.generateStatement(t.left.declarations[0],0))}):a.push(o.generateExpression(t.left,i.Call,M)),a=[z(a=z(a,e),o.generateExpression(t.right,i.Sequence+("of"===e?1:0),M)),")"]}),a.push(this.maybeBlock(t.body,n)),a},Z.prototype.generatePropertyKey=function(e,t){var n=[];return t&&n.push("["),n.push(this.generateExpression(e,i.Sequence,M)),t&&n.push("]"),n},Z.prototype.generateAssignment=function(e,t,n,r,a){return i.Assignment2&&("\n"===(r=_.substring(n[0]+1,n[1]-1))[0]&&(i=["{"]),i.push(r)),c=w,8&t&&(c|=16),o=0,s=e.body.length;o0&&(e.body[o-1].trailingComments||e.body[o].leadingComments||q(e.body[o-1].range[1],e.body[o].range[0],i))),o===s-1&&(c|=32),u=e.body[o].leadingComments&&x?a.generateStatement(e.body[o],c):H(a.generateStatement(e.body[o],c)),i.push(u),R(V(u).toString())||x&&o1?W(u):u(),n.push(this.semicolon(t)),n},ThrowStatement:function(e,t){return[z("throw",this.generateExpression(e.argument,i.Sequence,M)),this.semicolon(t)]},TryStatement:function(e,t){var n,r,i,a;if(n=["try",this.maybeBlock(e.block,w)],n=this.maybeBlockSuffix(e.block,n),e.handlers)for(r=0,i=e.handlers.length;r0?"\n":""],o=17,i=0;i0&&(e.body[i-1].trailingComments||e.body[i].leadingComments||q(e.body[i-1].range[1],e.body[i].range[0],n))),r=H(this.generateStatement(e.body[i],o)),n.push(r),i+10){for(r.push("("),o=0,s=a;o=2&&48===o.charCodeAt(0))&&a.push("."),a.push("."),a.push(X(e.property))),$(a,i.Member,t)},MetaProperty:function(e,t,n){return $([e.meta&&"string"==typeof e.meta.type&&e.meta.type===r.Identifier?e.meta.name:e.meta,".",e.property&&"string"==typeof e.property.type&&e.property.type===r.Identifier?e.property.name:e.property],i.Member,t)},UnaryExpression:function(e,t,n){var r,a,o,s,c;return a=this.generateExpression(e.argument,i.Unary,M),""===v?r=z(e.operator,a):(r=[e.operator],e.operator.length>2?r=z(r,a):(c=(s=V(r).toString()).charCodeAt(s.length-1),o=a.toString().charCodeAt(0),(43===c||45===c)&&c===o||u.code.isIdentifierPartES5(c)&&u.code.isIdentifierPartES5(o)?(r.push(U()),r.push(a)):r.push(a))),$(r,i.Unary,t)},YieldExpression:function(e,t,n){var r;return r=e.delegate?"yield*":"yield",e.argument&&(r=z(r,this.generateExpression(e.argument,i.Yield,M))),$(r,i.Yield,t)},AwaitExpression:function(e,t,n){return $(z(e.all?"await*":"await",this.generateExpression(e.argument,i.Await,M)),i.Await,t)},UpdateExpression:function(e,t,n){return e.prefix?$([e.operator,this.generateExpression(e.argument,i.Unary,M)],i.Unary,t):$([this.generateExpression(e.argument,i.Postfix,M),e.operator],i.Postfix,t)},FunctionExpression:function(e,t,n){var r=[Q(e,!0),"function"];return e.id?(r.push(ee(e)||U()),r.push(X(e.id))):r.push(ee(e)||v),r.push(this.generateFunctionBody(e)),r},ArrayPattern:function(e,t,n){return this.ArrayExpression(e,t,n,!0)},ArrayExpression:function(e,t,n,r){var a,o,s=this;return e.elements.length?(o=!r&&e.elements.length>1,a=["[",o?y:""],W(function(t){var n,r;for(n=0,r=e.elements.length;n1,W(function(){o=s.generateExpression(e.properties[0],i.Sequence,M)}),r||B(V(o).toString())?(W(function(t){var n,u;if(a=["{",y,t,o],r)for(a.push(","+y),n=1,u=e.properties.length;n126))){o+=L(r,e.charCodeAt(t+1));continue}}o+=String.fromCharCode(r)}if(a=(i=!("double"===m||"auto"===m&&c0&&(i=+r.slice(a+1),r=r.slice(0,a)),n>=0&&(i-=r.length-n-1,r=+(r.slice(0,n)+r.slice(n+1))+""),a=0;48===r.charCodeAt(r.length+a-1);)--a;return 0!==a&&(i-=a,r=r.slice(0,a)),0!==i&&(r+="e"+i),(r.length1e12&&Math.floor(e)===e&&(r="0x"+e.toString(16)).length0||E.moz.comprehensionExpressionStartsWithAssignment?a=z(a,u):a.push(u)}),e.filter&&(a=z(a,"if"+v),u=this.generateExpression(e.filter,i.Sequence,M),a=z(a,["(",u,")"])),E.moz.comprehensionExpressionStartsWithAssignment||(u=this.generateExpression(e.body,i.Assignment,M),a=z(a,u)),a.push(e.type===r.GeneratorExpression?")":"]"),a},ComprehensionBlock:function(e,t,n){var a;return a=z(a=z(a=e.left.type===r.VariableDeclaration?[e.left.kind,U(),this.generateStatement(e.left.declarations[0],0)]:this.generateExpression(e.left,i.Call,M),e.of?"of":"in"),this.generateExpression(e.right,i.Sequence,M)),["for"+v+"(",a,")"]},SpreadElement:function(e,t,n){return["...",this.generateExpression(e.argument,i.Assignment,M)]},RestElement:function(e,t,n){return["...",this.generatePattern(e.argument,i.Assignment,M)]},SpreadProperty:function(e,t,n){return["...",this.generateExpression(e.argument,i.Assignment,M)]},RestProperty:function(e,t,n){return["...",this.generatePattern(e.argument,i.Assignment,M)]},TaggedTemplateExpression:function(e,t,n){var r=3;return 2&n||(r=1),$([this.generateExpression(e.tag,i.Call,r),this.generateExpression(e.quasi,i.Primary,4)],i.TaggedTemplate,t)},TemplateElement:function(e,t,n){return e.value.raw},TemplateLiteral:function(e,t,n){var r,a,o;for(r=["`"],a=0,o=e.quasis.length;a=0||e.indexOf("'")>=0)return t;return"double"===m?'"'+e+'"':"'"+e+"'"}(e.value.value,e.value.raw):this.generateExpression(e.value,i.Sequence,{allowIn:!0,allowCall:!0}),a.push(o)),a},JSXClosingElement:function(e,t,n){return[""]},JSXFragment:function(e,t,n){return this.JSXElement(e,t,n)},JSXOpeningFragment:function(e,t,n){return this.JSXOpeningElement(e,t,n)},JSXClosingFragment:function(e,t,n){return this.JSXClosingElement(e,t,n)},JSXElement:function(e,t,n){var a=[],o=this;256&n||(l+=d);var s=this.generateExpression(e.openingElement,i.JSXElement,{allowIn:!0,allowCall:!0});a.push(s);var u,c,f=[];return W(function(t){for(u=0,c=e.children.length;u3&&e.attributes[c].value&&e.attributes[c].value.type!==r.Literal&&(u[u.length-1].multiline=!0);return W(function(e){for(var t=0,n=u.length;t0&&t%3==0||u[t].multiline?a.push(y+e):a.push(" "),a.push(o.generateExpression(u[t].expr,i.Sequence,3))}),a.push(e.selfClosing?"/>":">"),a},JSXSpreadAttribute:function(e,t,n){return["{...",this.generateExpression(e.argument,i.Sequence,{allowIn:!0,allowCall:!0}),"}"]},JSXText:function(e,t,n){return e.raw}},O(Z.prototype,Z.Expression),Z.prototype.generateExpression=function(e,t,n){var a,o;return o=e.type||r.Property,E.verbatim&&e.hasOwnProperty(E.verbatim)?function(e,t){var n;return V("string"==typeof(n=e[E.verbatim])?$(Y(n),i.Sequence,t):$(Y(n.content),null!=n.precedence?n.precedence:i.Sequence,t),e)}(e,t):(a=this[o](e,t,n),E.comment&&(a=J(e,a)),V(a,e))},Z.prototype.generateStatement=function(e,t){var n,i;return n=this[e.type](e,t),E.comment&&(n=J(e,n)),i=V(n).toString(),e.type!==r.Program||S||""!==y||"\n"!==i.charAt(i.length-1)||(n=I?V(n).replaceRight(/\s+$/,""):i.replace(/\s+$/,"")),V(n,e)},D={indent:{style:"",base:0},renumber:!0,hexadecimal:!0,quotes:"auto",escapeless:!0,compact:!0,parentheses:!1,semicolons:!1},F={indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},t.version=n(442).version,t.generate=function(r,i){var a,s,u={indent:null,base:null,parse:null,comment:!1,format:{indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null,sourceCode:null};return null!=i?("string"==typeof i.indent&&(u.format.indent.style=i.indent),"number"==typeof i.base&&(u.format.indent.base=i.base),i=P(u,i),d=i.format.indent.style,l="string"==typeof i.base?i.base:k(d,i.format.indent.base)):(d=(i=u).format.indent.style,l=k(d,i.format.indent.base)),f=i.format.json,p=i.format.renumber,h=!f&&i.format.hexadecimal,m=f?"double":i.format.quotes,g=i.format.escapeless,y=i.format.newline,v=i.format.space,i.format.compact&&(y=v=d=l=""),b=i.format.parentheses,C=i.format.semicolons,S=i.format.safeConcatenation,A=i.directive,N=f?null:i.parse,I=i.sourceMap,_=i.sourceCode,x=i.format.preserveBlankLines&&null!==_,E=i,I&&(o=t.browser?e.sourceMap.SourceNode:n(446).SourceNode),a=ne(r),I?(s=a.toStringWithSourceMap({file:i.file,sourceRoot:i.sourceMapRoot}),i.sourceContent&&s.map.setSourceContent(i.sourceMap,i.sourceContent),i.sourceMapWithCode?s:s.map.toString()):(s={code:a.toString(),map:null},i.sourceMapWithCode?s:s.code)},t.attachComments=s.attachComments,t.Precedence=P({},i),t.browser=!1,t.FORMAT_MINIFY=D,t.FORMAT_DEFAULTS=F}()}).call(this,n(126))},function(e,t,n){e.exports=n(452)},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(7)),o=r(n(6)),s=r(n(5)),u=function(e,t,n,r){var i,u=arguments.length,c=u<3?t:null===r?r=(0,s.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,o.default)(Reflect))&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(c=(u<3?i(c):u>3?i(t,n,c):i(t,n))||c);return u>3&&c&&(0,a.default)(t,n,c),c};Object.defineProperty(t,"__esModule",{value:!0});var c=function e(){(0,i.default)(this,e)};c=u([n(1).injectable()],c),t.AbstractCalleeDataExtractor=c},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(33),i=n(16),a=n(92),o=n(108),s=n(32).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=a?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:o.f(e)})}},function(e,t,n){t.f=n(30)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(110),i=n(165),a=function(){function e(e){this._binding=e}return e.prototype.when=function(e){return this._binding.constraint=e,new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetNamed=function(e){return this._binding.constraint=i.namedConstraint(e),new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetIsDefault=function(){return this._binding.constraint=function(e){return null!==e.target&&!e.target.isNamed()&&!e.target.isTagged()},new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetTagged=function(e,t){return this._binding.constraint=i.taggedConstraint(e)(t),new r.BindingOnSyntax(this._binding)},e.prototype.whenInjectedInto=function(e){return this._binding.constraint=function(t){return i.typeConstraint(e)(t.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenParentNamed=function(e){return this._binding.constraint=function(t){return i.namedConstraint(e)(t.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenParentTagged=function(e,t){return this._binding.constraint=function(n){return i.taggedConstraint(e)(t)(n.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorIs=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.typeConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorIs=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.typeConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorNamed=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.namedConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorNamed=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.namedConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._binding.constraint=function(n){return i.traverseAncerstors(n,i.taggedConstraint(e)(t))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorTagged=function(e,t){return this._binding.constraint=function(n){return!i.traverseAncerstors(n,i.taggedConstraint(e)(t))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorMatches=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,e)},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorMatches=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,e)},new r.BindingOnSyntax(this._binding)},e}();t.BindingWhenSyntax=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(109),i=function(){function e(e){this._binding=e}return e.prototype.onActivation=function(e){return this._binding.onActivation=e,new r.BindingWhenSyntax(this._binding)},e}();t.BindingOnSyntax=i},function(e,t,n){var r=n(50),i=n(125),a=n(60),o=n(94),s=n(504);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,d=6==e,f=5==e||d,p=t||s;return function(t,s,h){for(var m,g,y=a(t),v=i(y),b=r(s,h,3),C=o(v.length),S=0,A=n?p(t,C):u?p(t,0):void 0;C>S;S++)if((f||S in v)&&(g=b(m=v[S],S,y),e))if(n)A[S]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return S;case 2:A.push(m)}else if(l)return!1;return d?-1:c||l?l:A}}},function(e,t,n){"use strict";var r=n(33),i=n(25),a=n(59),o=n(38),s=n(44),u=n(116),c=n(70),l=n(115),d=n(26),f=n(88),p=n(32).f,h=n(111)(0),m=n(35);e.exports=function(e,t,n,g,y,v){var b=r[e],C=b,S=y?"set":"add",A=C&&C.prototype,E={};return m&&"function"==typeof C&&(v||A.forEach&&!o(function(){(new C).entries().next()}))?(C=t(function(t,n){l(t,C,e,"_c"),t._c=new b,void 0!=n&&c(n,y,t[S],t)}),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!v||"clear"!=e)&&s(C.prototype,e,function(n,r){if(l(this,C,e),!t&&v&&!d(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),v||p(C.prototype,"size",{get:function(){return this._c.size}})):(C=g.getConstructor(t,e,y,S),u(C.prototype,n),a.NEED=!0),f(C,e),E[e]=C,i(i.G+i.W+i.F,E),v||g.setStrong(C,e,y),C}},function(e,t,n){var r=n(124),i=n(30)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){var r=n(113),i=n(30)("iterator"),a=n(61);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(44);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){e.exports=n(44)},function(e,t,n){"use strict";var r=n(92),i=n(25),a=n(117),o=n(44),s=n(61),u=n(508),c=n(88),l=n(72),d=n(30)("iterator"),f=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,m,g,y){u(n,t,h);var v,b,C,S=function(e){if(!f&&e in I)return I[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",E="values"==m,N=!1,I=e.prototype,_=I[d]||I["@@iterator"]||m&&I[m],x=_||S(m),D=m?E?S("entries"):x:void 0,F="Array"==t&&I.entries||_;if(F&&(C=l(F.call(new e)))!==Object.prototype&&C.next&&(c(C,A,!0),r||"function"==typeof C[d]||o(C,d,p)),E&&_&&"values"!==_.name&&(N=!0,x=function(){return _.call(this)}),r&&!y||!f&&!N&&I[d]||o(I,d,x),s[t]=x,s[A]=p,m)if(v={values:E?x:S("values"),keys:g?x:S("keys"),entries:D},y)for(b in v)b in I||a(I,b,v[b]);else i(i.P+i.F*(f||N),t,v);return v}},function(e,t){},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(93)("keys"),i=n(91);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(124);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(26);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(198),i={};for(var a in r)r.hasOwnProperty(a)&&(i[r[a]]=a);var o=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var s in o)if(o.hasOwnProperty(s)){if(!("channels"in o[s]))throw new Error("missing channels property: "+s);if(!("labels"in o[s]))throw new Error("missing channel labels property: "+s);if(o[s].labels.length!==o[s].channels)throw new Error("channel and label counts mismatch: "+s);var u=o[s].channels,c=o[s].labels;delete o[s].channels,delete o[s].labels,Object.defineProperty(o[s],"channels",{value:u}),Object.defineProperty(o[s],"labels",{value:c})}o.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,a=e[2]/255,o=Math.min(r,i,a),s=Math.max(r,i,a),u=s-o;return s===o?t=0:r===s?t=(i-a)/u:i===s?t=2+(a-r)/u:a===s&&(t=4+(r-i)/u),(t=Math.min(60*t,360))<0&&(t+=360),n=(o+s)/2,[t,100*(s===o?0:n<=.5?u/(s+o):u/(2-s-o)),100*n]},o.rgb.hsv=function(e){var t,n,r=e[0],i=e[1],a=e[2],o=Math.min(r,i,a),s=Math.max(r,i,a),u=s-o;return n=0===s?0:u/s*1e3/10,s===o?t=0:r===s?t=(i-a)/u:i===s?t=2+(a-r)/u:a===s&&(t=4+(r-i)/u),(t=Math.min(60*t,360))<0&&(t+=360),[t,n,s/255*1e3/10]},o.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[o.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},o.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},o.rgb.keyword=function(e){var t=i[e];if(t)return t;var n,a,o,s=1/0;for(var u in r)if(r.hasOwnProperty(u)){var c=r[u],l=(a=e,o=c,Math.pow(a[0]-o[0],2)+Math.pow(a[1]-o[1],2)+Math.pow(a[2]-o[2],2));l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},o.rgb.lab=function(e){var t=o.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},o.hsl.rgb=function(e){var t,n,r,i,a,o=e[0]/360,s=e[1]/100,u=e[2]/100;if(0===s)return[a=255*u,a,a];t=2*u-(n=u<.5?u*(1+s):u+s-u*s),i=[0,0,0];for(var c=0;c<3;c++)(r=o+1/3*-(c-1))<0&&r++,r>1&&r--,a=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[c]=255*a;return i},o.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=a<=1?a:2-a,[t,100*(0===r?2*i/(a+i):2*n/(r+n)),100*((r+n)/2)]},o.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),u=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,u,o];case 1:return[s,r,o];case 2:return[o,r,u];case 3:return[o,s,r];case 4:return[u,o,r];case 5:return[r,o,s]}},o.hsv.hsl=function(e){var t,n,r,i=e[0],a=e[1]/100,o=e[2]/100,s=Math.max(o,.01);return r=(2-a)*o,n=a*s,[i,100*(n=(n/=(t=(2-a)*s)<=1?t:2-t)||0),100*(r/=2)]},o.hwb.rgb=function(e){var t,n,r,i,a,o,s,u=e[0]/360,c=e[1]/100,l=e[2]/100,d=c+l;switch(d>1&&(c/=d,l/=d),n=1-l,r=6*u-(t=Math.floor(6*u)),0!=(1&t)&&(r=1-r),i=c+r*(n-c),t){default:case 6:case 0:a=n,o=i,s=c;break;case 1:a=i,o=n,s=c;break;case 2:a=c,o=n,s=i;break;case 3:a=c,o=i,s=n;break;case 4:a=i,o=c,s=n;break;case 5:a=n,o=c,s=i}return[255*a,255*o,255*s]},o.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},o.xyz.rgb=function(e){var t,n,r,i=e[0]/100,a=e[1]/100,o=e[2]/100;return n=-.9689*i+1.8758*a+.0415*o,r=.0557*i+-.204*a+1.057*o,t=(t=3.2406*i+-1.5372*a+-.4986*o)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},o.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},o.lab.xyz=function(e){var t,n,r,i=e[0],a=e[1],o=e[2];t=a/500+(n=(i+16)/116),r=n-o/200;var s=Math.pow(n,3),u=Math.pow(t,3),c=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=c>.008856?c:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},o.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},o.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},o.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var a=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(a+=60),a},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},o.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},o.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map(function(e){return e+e}).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},o.rgb.hcg=function(e){var t,n,r=e[0]/255,i=e[1]/255,a=e[2]/255,o=Math.max(Math.max(r,i),a),s=Math.min(Math.min(r,i),a),u=o-s;return t=u<1?s/(1-u):0,n=u<=0?0:o===r?(i-a)/u%6:o===i?2+(a-r)/u:4+(r-i)/u+4,n/=6,[360*(n%=1),100*u,100*t]},o.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},o.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,a=[0,0,0],o=t%1*6,s=o%1,u=1-s;switch(Math.floor(o)){case 0:a[0]=1,a[1]=s,a[2]=0;break;case 1:a[0]=u,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=s;break;case 3:a[0]=0,a[1]=u,a[2]=1;break;case 4:a[0]=s,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=u}return i=(1-n)*r,[255*(n*a[0]+i),255*(n*a[1]+i),255*(n*a[2]+i)]},o.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},o.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},o.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]},o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},function(e,t,n){"use strict";(function(t){const r=n(201),i=n(200),a=n(196).stdout,o=n(195),s="win32"===t.platform&&!(t.env.TERM||"").toLowerCase().startsWith("xterm"),u=["ansi","ansi","ansi256","ansi16m"],c=new Set(["gray"]),l=Object.create(null);function d(e,t){t=t||{};const n=a?a.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function f(e){if(!this||!(this instanceof f)||this.template){const t={};return d(t,e),t.template=function(){const e=[].slice.call(arguments);return function(e,t){if(!Array.isArray(t))return[].slice.call(arguments,1).join(" ");const n=[].slice.call(arguments,2),r=[t.raw[0]];for(let e=1;e{},l);function h(e,t,n){const r=function(){return function(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;ra.level,set(e){a.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>a.enabled,set(e){a.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=p,r}Object.defineProperties(f.prototype,l),e.exports=f(),e.exports.supportsColor=a,e.exports.default=e.exports}).call(this,n(183))},function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}},h=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),g=n(4),y=h(n(213)),v=n(210),b=n(15),C=r=function(){function e(t,n){(0,a.default)(this,e),this.sourceCode=t,this.options=n}return(0,o.default)(e,[{key:"initialize",value:function(){var e,t,n,r=this;this.seed=0!==this.options.seed?this.options.seed:(e=0,t=999999999,Math.floor(Math.random()*(t-e+1)+e)),this.randomGenerator=new v.Chance((n=y.default(r.sourceCode.getSourceCode()),r.seed+Number(n.replace(/\D/g,""))))}},{key:"getMathRandom",value:function(){return this.getRandomInteger(0,99999)/1e5}},{key:"getRandomFloat",value:function(e,t){return this.getRandomGenerator().floating({min:e,max:t,fixed:7})}},{key:"getRandomGenerator",value:function(){return this.randomGenerator}},{key:"getRandomInteger",value:function(e,t){return this.getRandomGenerator().integer({min:e,max:t})}},{key:"getRandomString",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.randomGeneratorPool;return this.getRandomGenerator().string({length:e,pool:t})}},{key:"getSeed",value:function(){return this.seed}}]),e}();C.randomGeneratorPool="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",d([b.initializable(),f("design:type",Object)],C.prototype,"randomGenerator",void 0),d([b.initializable(),f("design:type",Number)],C.prototype,"seed",void 0),d([m.postConstruct(),f("design:type",Function),f("design:paramtypes",[]),f("design:returntype",void 0)],C.prototype,"initialize",null),C=r=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.ISourceCode)),p(1,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Object,Object])],C),t.RandomGenerator=C},function(e,t,n){"use strict";var r=n(0),i=r(n(56)),a=r(n(55)),o=r(n(66)),s=r(n(22)),u=r(n(2)),c=r(n(3)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=function(){function e(t,n){(0,u.default)(this,e),this.randomGenerator=t,this.options=n}return(0,c.default)(e,[{key:"initialize",value:function(){this.storage=new s.default,this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage.get(e);if(!t)throw new Error("No value found in map storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,s=(0,o.default)(this.storage);!(t=(i=s.next()).done);t=!0){var u=(0,a.default)(i.value,2),c=u[0];if(e===u[1])return c}}catch(e){n=!0,r=e}finally{try{t||null==s.return||s.return()}finally{if(n)throw r}}return null}},{key:"getLength",value:function(){return this.storage.size}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"has",value:function(e){return this.storage.has(e)}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=new s.default((0,i.default)(this.storage).concat((0,i.default)(e.getStorage()))),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){this.storage.set(e,t)}}]),e}();h([b.initializable(),m("design:type",String)],C.prototype,"storageId",void 0),h([b.initializable(),m("design:type",s.default)],C.prototype,"storage",void 0),h([y.postConstruct(),m("design:type",Function),m("design:paramtypes",[]),m("design:returntype",void 0)],C.prototype,"initialize",null),C=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(1,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object,Object])],C),t.MapStorage=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlackListNodeGuard="BlackListNodeGuard",e.ConditionalCommentNodeGuard="ConditionalCommentNodeGuard"}(t.ObfuscatingGuard||(t.ObfuscatingGuard={}))},function(e,t,n){"use strict";var r=n(0)(n(150));Object.defineProperty(t,"__esModule",{value:!0});var i=n(84),a=n(45),o=n(83);t.DEFAULT_PRESET=(0,r.default)({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!0,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:o.SourceMapMode.Separate,stringArray:!0,stringArrayEncoding:!1,stringArrayThreshold:.75,target:a.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(52),i=function(){function e(e,t,n){void 0===n&&(n=!1),this.target=e,this.name=t,this.async=n}return Object.defineProperty(e.prototype,"instance",{get:function(){return r.getFromContainer(this.target)},enumerable:!0,configurable:!0}),e}();t.ConstraintMetadata=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(e),e.replace(new RegExp("["+t+"]+","g"),"")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(e);var n=t?new RegExp("["+t+"]"):/\s/,r=e.length-1;for(;r>=0&&n.test(e[r]);)r--;return r=t.min,i=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||et.gt;return n.test(e)&&r&&i&&u&&c};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,s=/^[-+]?[0-9]+$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,a.default)(t);n=String(n);if(!n)return e(t,4)||e(t,6);if("4"===n){if(!o.test(t))return!1;var r=t.split(".").sort(function(e,t){return e-t});return r[3]<=255}if("6"===n){var i=t.split(":"),u=!1,c=e(i[i.length-1],4),l=c?7:8;if(i.length>l)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(i.shift(),i.shift(),u=!0):"::"===t.substr(t.length-2)&&(i.pop(),i.pop(),u=!0);for(var d=0;d0&&d=1:i.length===l}return!1};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,s=/^[0-9A-F]{1,4}$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){(0,o.default)(e);var n=void 0,i=void 0;"object"===(void 0===t?"undefined":r(t))?(n=t.min||0,i=t.max):(n=arguments[1],i=arguments[2]);var a=encodeURI(e).split(/%..|./).length-1;return a>=n&&(void 0===i||a<=i)};var i,a=n(12),o=(i=a)&&i.__esModule?i:{default:i};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),parseFloat(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.toString=function(e,t,n){var r=this;void 0===e&&(e=!1),void 0===t&&(t=!1),void 0===n&&(n="");var i=e?"":"",a=e?"":"",o=function(e){return" - property "+i+n+e+a+" has failed the following constraints: "+i+Object.keys(r.constraints).join(", ")+a+" \n"};if(t){var s=Number.isInteger(+this.property)?"["+this.property+"]":(n?".":"")+this.property;return this.constraints?o(s):this.children.map(function(t){return t.toString(e,!0,""+n+s)}).join("")}return"An instance of "+i+(this.target?this.target.constructor.name:"an object")+a+" has failed the validation:\n"+(this.constraints?o(this.property):"")+this.children.map(function(t){return t.toString(e,!0,r.property)}).join("")},e}();t.ValidationError=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(o,s)}u((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=r[2&a[0]?"return":a[0]?"throw":"next"])&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[0,i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=0},e.prototype.isNumber=function(e,t){return void 0===t&&(t={}),e===1/0||e===-1/0?t.allowInfinity:Number.isNaN(e)?t.allowNaN:Number.isFinite(e)},e.prototype.isInt=function(e){return Number.isInteger(e)},e.prototype.isDivisibleBy=function(e,t){return"number"==typeof e&&"number"==typeof t&&this.validatorJs.isDivisibleBy(String(e),t)},e.prototype.isPositive=function(e){return"number"==typeof e&&e>0},e.prototype.isNegative=function(e){return"number"==typeof e&&e<0},e.prototype.min=function(e,t){return"number"==typeof e&&"number"==typeof t&&e>=t},e.prototype.max=function(e,t){return"number"==typeof e&&"number"==typeof t&&e<=t},e.prototype.minDate=function(e,t){return e&&e.getTime()>=t.getTime()},e.prototype.maxDate=function(e,t){return e&&e.getTime()<=t.getTime()},e.prototype.isBooleanString=function(e){return"string"==typeof e&&this.validatorJs.isBoolean(e)},e.prototype.isNumberString=function(e){return"string"==typeof e&&this.validatorJs.isNumeric(e)},e.prototype.contains=function(e,t){return"string"==typeof e&&this.validatorJs.contains(e,t)},e.prototype.notContains=function(e,t){return"string"==typeof e&&!this.validatorJs.contains(e,t)},e.prototype.isAlpha=function(e){return"string"==typeof e&&this.validatorJs.isAlpha(e)},e.prototype.isAlphanumeric=function(e){return"string"==typeof e&&this.validatorJs.isAlphanumeric(e)},e.prototype.isAscii=function(e){return"string"==typeof e&&this.validatorJs.isAscii(e)},e.prototype.isBase64=function(e){return"string"==typeof e&&this.validatorJs.isBase64(e)},e.prototype.isByteLength=function(e,t,n){return"string"==typeof e&&this.validatorJs.isByteLength(e,t,n)},e.prototype.isCreditCard=function(e){return"string"==typeof e&&this.validatorJs.isCreditCard(e)},e.prototype.isCurrency=function(e,t){return"string"==typeof e&&this.validatorJs.isCurrency(e,t)},e.prototype.isEmail=function(e,t){return"string"==typeof e&&this.validatorJs.isEmail(e,t)},e.prototype.isFQDN=function(e,t){return"string"==typeof e&&this.validatorJs.isFQDN(e,t)},e.prototype.isFullWidth=function(e){return"string"==typeof e&&this.validatorJs.isFullWidth(e)},e.prototype.isHalfWidth=function(e){return"string"==typeof e&&this.validatorJs.isHalfWidth(e)},e.prototype.isVariableWidth=function(e){return"string"==typeof e&&this.validatorJs.isVariableWidth(e)},e.prototype.isHexColor=function(e){return"string"==typeof e&&this.validatorJs.isHexColor(e)},e.prototype.isHexadecimal=function(e){return"string"==typeof e&&this.validatorJs.isHexadecimal(e)},e.prototype.isIP=function(e,t){return"string"==typeof e&&this.validatorJs.isIP(e,t)},e.prototype.isISBN=function(e,t){return"string"==typeof e&&this.validatorJs.isISBN(e,t)},e.prototype.isISIN=function(e){return"string"==typeof e&&this.validatorJs.isISIN(e)},e.prototype.isISO8601=function(e){return"string"==typeof e&&this.validatorJs.isISO8601(e)},e.prototype.isJSON=function(e){return"string"==typeof e&&this.validatorJs.isJSON(e)},e.prototype.isLowercase=function(e){return"string"==typeof e&&this.validatorJs.isLowercase(e)},e.prototype.isMobilePhone=function(e,t){return"string"==typeof e&&this.validatorJs.isMobilePhone(e,t)},e.prototype.isMongoId=function(e){return"string"==typeof e&&this.validatorJs.isMongoId(e)},e.prototype.isMultibyte=function(e){return"string"==typeof e&&this.validatorJs.isMultibyte(e)},e.prototype.isSurrogatePair=function(e){return"string"==typeof e&&this.validatorJs.isSurrogatePair(e)},e.prototype.isURL=function(e,t){return"string"==typeof e&&this.validatorJs.isURL(e,t)},e.prototype.isUUID=function(e,t){return"string"==typeof e&&this.validatorJs.isUUID(e,t)},e.prototype.isUppercase=function(e){return"string"==typeof e&&this.validatorJs.isUppercase(e)},e.prototype.length=function(e,t,n){return"string"==typeof e&&this.validatorJs.isLength(e,t,n)},e.prototype.minLength=function(e,t){return"string"==typeof e&&this.length(e,t)},e.prototype.maxLength=function(e,t){return"string"==typeof e&&this.length(e,0,t)},e.prototype.matches=function(e,t,n){return"string"==typeof e&&this.validatorJs.matches(e,t,n)},e.prototype.isMilitaryTime=function(e){return this.matches(e,/^([01]\d|2[0-3]):?([0-5]\d)$/)},e.prototype.arrayContains=function(e,t){return e instanceof Array&&(!e||t.every(function(t){return-1!==e.indexOf(t)}))},e.prototype.arrayNotContains=function(e,t){return e instanceof Array&&(!e||t.every(function(t){return-1===e.indexOf(t)}))},e.prototype.arrayNotEmpty=function(e){return e instanceof Array&&(e instanceof Array&&e.length>0)},e.prototype.arrayMinSize=function(e,t){return e instanceof Array&&(e instanceof Array&&e.length>=t)},e.prototype.arrayMaxSize=function(e,t){return e instanceof Array&&(e instanceof Array&&e.length<=t)},e.prototype.arrayUnique=function(e){if(!(e instanceof Array))return!1;var t=e.filter(function(e,t,n){return n.indexOf(e)===t});return e.length===t.length},e.prototype.isInstance=function(e,t){return t&&"function"==typeof t&&e instanceof t},e}();t.Validator=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BooleanLiteralObfuscatingReplacer="BooleanLiteralObfuscatingReplacer",e.NumberLiteralObfuscatingReplacer="NumberLiteralObfuscatingReplacer",e.StringLiteralObfuscatingReplacer="StringLiteralObfuscatingReplacer"}(t.LiteralObfuscatingReplacer||(t.LiteralObfuscatingReplacer={}))},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(8)),s=r(n(7)),u=r(n(6)),c=r(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(4),m=function(){function e(t,n){(0,i.default)(this,e),this.randomGenerator=t,this.options=n}return(0,a.default)(e,[{key:"isValidIdentifierName",value:function(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(function(t){return null!==new RegExp(t,"g").exec(e)})}}]),e}();m=l([p.injectable(),f(0,p.inject(h.ServiceIdentifiers.IRandomGenerator)),f(1,p.inject(h.ServiceIdentifiers.IOptions)),d("design:paramtypes",[Object,Object])],m),t.AbstractIdentifierNamesGenerator=m},function(e,t,n){e.exports=n(347)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputCustomNodeGroup="ConsoleOutputCustomNodeGroup",e.DebugProtectionCustomNodeGroup="DebugProtectionCustomNodeGroup",e.DomainLockCustomNodeGroup="DomainLockCustomNodeGroup",e.SelfDefendingCustomNodeGroup="SelfDefendingCustomNodeGroup",e.StringArrayCustomNodeGroup="StringArrayCustomNodeGroup"}(t.CustomNodeGroup||(t.CustomNodeGroup={}))},function(e,t,n){"use strict";var r,i=n(0),a=i(n(55)),o=i(n(22)),s=i(n(2)),u=i(n(3)),c=i(n(8)),l=i(n(7)),d=i(n(6)),f=i(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(47),b=n(20),C=n(13),S=n(14),A=r=function(){function e(t,n){(0,s.default)(this,e),this.cachedHostScopesMap=new o.default,this.cachedHostStatementsMap=new o.default,this.randomGenerator=t,this.options=n}return(0,u.default)(e,[{key:"extractPropertiesToExpressionStatements",value:function(e,t){for(var n=e.length,i=[],a=[],o=0;o=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(40),b=n(100),C=n(13),S=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getControlFlowStorageCallNode",value:function(e,t,n,r){var i=this.controlFlowCustomNodeFactory(v.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);i.initialize(e,t,n,r);var a=i.getNode()[0];if(!a||!C.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}}]),t}(b.AbstractControlFlowReplacer);S=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IControlFlowCustomNode)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],S),t.ExpressionWithOperatorControlFlowReplacer=S},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",e.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",e.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",e.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"}(t.ControlFlowReplacer||(t.ControlFlowReplacer={}))},function(e,t,n){"use strict";var r=n(73),i=n(106),a=n(89),o=n(60),s=n(125),u=Object.assign;e.exports=!u||n(38)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=o(e),u=arguments.length,c=1,l=i.f,d=a.f;u>c;)for(var f,p=s(arguments[c++]),h=l?r(p).concat(l(p)):r(p),m=h.length,g=0;m>g;)d.call(p,f=h[g++])&&(n[f]=p[f]);return n}:u},function(e,t,n){"use strict";e.exports={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression",JSXIdentifier:"JSXIdentifier",JSXNamespacedName:"JSXNamespacedName",JSXMemberExpression:"JSXMemberExpression",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXElement:"JSXElement",JSXClosingElement:"JSXClosingElement",JSXOpeningElement:"JSXOpeningElement",JSXAttribute:"JSXAttribute",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportAllDeclaration:"ExportAllDeclaration",ExportSpecifier:"ExportSpecifier",ImportDeclaration:"ImportDeclaration",ImportSpecifier:"ImportSpecifier",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier"}},function(e,t,n){"use strict";var r,i,a,o=n(159),s=n(441),u=n(440),c=n(439)(n(437)),l=5;function d(){i={tokens:null,range:!1,loc:!1,comment:!1,comments:[],tolerant:!1,errors:[],strict:!1,ecmaFeatures:{},ecmaVersion:l,isModule:!1}}var f=c.tokTypes,p=c.getLineInfo;function h(e){if("number"!=typeof e)return l;var t=e;switch(t>=2015&&(t-=2009),t){case 3:case 5:case 6:case 7:case 8:case 9:case 10:return t;default:throw new Error("Invalid ecmaVersion.")}}function m(e){if(function(e){switch(e.type){case"ImportDeclaration":case"ExportNamedDeclaration":case"ExportDefaultDeclaration":case"ExportAllDeclaration":return i.isModule;default:return!0}}(e)||this.unexpected(e.start),"TemplateElement"===e.type){var t="${"===this.input.slice(e.end,e.end+2);e.range&&(e.range[0]--,e.range[1]+=t?2:1),e.loc&&(e.loc.start.column--,e.loc.end.column+=t?2:1)}return i.attachComment&&s.processComment(e),e.type.indexOf("Function")>-1&&!e.generator&&(e.generator=!1),e}function g(e){return function(t,n,r,i){var a=e.call(this,t,n,r,i);return m.call(this,a)}}function y(e,t,n,r,i,a){var o={type:e?"Block":"Line",value:t};return"number"==typeof n&&(o.start=n,o.end=r,o.range=[n,r]),"object"==typeof i&&(o.loc={start:i,end:a}),o}f.jsxAttrValueToken={},c.plugins.espree=function(e){e.extend("finishNode",g),e.extend("finishNodeAt",g),e.extend("next",function(e){return function(){return function(e){var t=i.ecmaFeatures;switch(e.type){case f.jsxName:case f.jsxText:case f.jsxTagStart:case f.jsxTagEnd:return t.jsx;case f.regexp:return!(i.ecmaVersion<6&&e.value.flags&&e.value.flags.indexOf("y")>-1);default:return!0}}(this)||this.unexpected(),e.call(this)}}),e.extend("parseTopLevel",function(e){return function(t){return i.ecmaFeatures.impliedStrict&&this.options.ecmaVersion>=5&&(this.strict=!0),e.call(this,t)}}),e.raise=e.raiseRecoverable=function(e,t){var n=p(this.input,e),r=new SyntaxError(t);throw r.index=e,r.lineNumber=n.line,r.column=n.column+1,r},e.unexpected=function(e){var t="Unexpected token";if(null!==e&&void 0!==e){if(this.pos=e,this.options.locations)for(;this.posthis.start&&(t+=" "+this.input.slice(this.start,this.end)),this.raise(this.start,t)},e.extend("jsx_readString",function(e){return function(t){var n=e.call(this,t);return this.type===f.string&&(i.jsxAttrValueToken=!0),n}})},t.version=n(436).version,t.tokenize=function(e,t){var n,a,o,s=new u(f,e);n=String,"string"==typeof e||e instanceof String||(e=n(e)),r=null,t=Object.assign({},t);var p={ecmaVersion:l,plugins:{espree:!0}};d(),t.tokens=!0,i.tokens=[],i.range="boolean"==typeof t.range&&t.range,p.ranges=i.range,i.loc="boolean"==typeof t.loc&&t.loc,p.locations=i.loc,i.comment="boolean"==typeof t.comment&&t.comment,i.comment&&(p.onComment=function(){var e=y.apply(this,arguments);i.comments.push(e)}),i.tolerant="boolean"==typeof t.tolerant&&t.tolerant,p.ecmaVersion=i.ecmaVersion=h(t.ecmaVersion),t.ecmaFeatures&&"object"==typeof t.ecmaFeatures&&(i.ecmaFeatures=Object.assign({},t.ecmaFeatures),o=i.ecmaFeatures.impliedStrict,i.ecmaFeatures.impliedStrict="boolean"==typeof o&&o);try{for(var m=c.tokenizer(e,p);(r=m.getToken()).type!==f.eof;)s.onToken(r,i);a=i.tokens,i.comment&&(a.comments=i.comments),i.tolerant&&(a.errors=i.errors)}catch(e){throw e}return a},t.parse=function(e,t){var n,r,o,p=String,m={ecmaVersion:l,plugins:{espree:!0}};return a=null,"string"==typeof e||e instanceof String||(e=p(e)),d(),s.reset(),void 0!==t&&(i.range="boolean"==typeof t.range&&t.range,i.loc="boolean"==typeof t.loc&&t.loc,i.attachComment="boolean"==typeof t.attachComment&&t.attachComment,i.loc&&null!==t.source&&void 0!==t.source&&(i.source=p(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(i.tokens=[],r=new u(f,e)),"boolean"==typeof t.comment&&t.comment&&(i.comment=!0,i.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(i.errors=[]),i.attachComment&&(i.range=!0,i.comments=[],s.reset()),m.ecmaVersion=i.ecmaVersion=h(t.ecmaVersion),"module"===t.sourceType&&(i.isModule=!0,m.ecmaVersion<6&&(m.ecmaVersion=6,i.ecmaVersion=6),m.sourceType="module"),t.ecmaFeatures&&"object"==typeof t.ecmaFeatures&&(i.ecmaFeatures=Object.assign({},t.ecmaFeatures),o=i.ecmaFeatures.impliedStrict,i.ecmaFeatures.impliedStrict="boolean"==typeof o&&o,t.ecmaFeatures.globalReturn&&(m.allowReturnOutsideFunction=!0)),m.onToken=function(e){i.tokens&&r.onToken(e,i),e.type!==f.eof&&(a=e)},(i.attachComment||i.comment)&&(m.onComment=function(){var e=y.apply(this,arguments);i.comments.push(e),i.attachComment&&s.addComment(e)}),i.range&&(m.ranges=!0),i.loc&&(m.locations=!0),i.ecmaFeatures.jsx&&(m.plugins={jsx:!0,espree:!0})),(n=c.parse(e,m)).sourceType=i.isModule?"module":"script",(i.comment||i.attachComment)&&(n.comments=i.comments),i.tokens&&(n.tokens=i.tokens),n.range&&(n.range[0]=n.body.length?n.body[0].range[0]:n.range[0],n.range[1]=a?a.range[1]:n.range[1]),n.loc&&(n.loc.start=n.body.length?n.body[0].loc.start:n.loc.start,n.loc.end=a?a.loc.end:n.loc.end),n},t.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),o)o.hasOwnProperty(e)&&(t[e]=o[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}(),t.VisitorKeys=function(){var e,t=n(435),r={};for(e in"function"==typeof Object.create&&(r=Object.create(null)),t)t.hasOwnProperty(e)&&(r[e]=t[e]);return"function"==typeof Object.freeze&&Object.freeze(r),r}()},function(e,t){!function(){"use strict";var t,n,r,i,a,o;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},r=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),o=0;o<128;++o)i[o]=o>=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(a=new Array(128),o=0;o<128;++o)a[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&r.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:n.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?a[e]:n.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?a[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},function(e,t,n){var r=n(182),i=n(120).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(49),i=n(162).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?function(e){try{return i(e)}catch(e){return o.slice()}}(e):i(r(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",e.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",e.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"}(t.CalleeDataExtractor||(t.CalleeDataExtractor={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23),i=n(31),a=function(e,t){var n=e.parentRequest;return null!==n&&(!!t(n)||a(n,t))};t.traverseAncerstors=a;var o=function(e){return function(t){var n=function(n){return null!==n&&null!==n.target&&n.target.matchesTag(e)(t)};return n.metaData=new i.Metadata(e,t),n}};t.taggedConstraint=o;var s=o(r.NAMED_TAG);t.namedConstraint=s;t.typeConstraint=function(e){return function(t){var n=null;if(null!==t){if(n=t.bindings[0],"string"==typeof e)return n.serviceIdentifier===e;var r=t.bindings[0].implementationType;return e===r}return!1}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(110),i=n(109),a=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new i.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new r.BindingOnSyntax(this._binding)}return e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e}();t.BindingWhenOnSyntax=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23),i=n(48),a=n(31),o=n(491),s=function(){function e(e,t,n,s){this.guid=i.guid(),this.type=e,this.serviceIdentifier=n,this.name=new o.QueryableString(t||""),this.metadata=new Array;var u=null;"string"==typeof s?u=new a.Metadata(r.NAMED_TAG,s):s instanceof a.Metadata&&(u=s),null!==u&&this.metadata.push(u)}return e.prototype.hasTag=function(e){for(var t=0,n=this.metadata;t1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(h(this,t),e)}}),f&&r(l.prototype,"size",{get:function(){return h(this,t)[m]}}),l},def:function(e,t,n){var r,i,a=g(e,t);return a?a.v=n:(e._l=a={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[m]++,"F"!==i&&(e._i[i]=a)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=h(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var r=n(177),i=n(69);e.exports=n(112)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports=n(513)},function(e,t,n){var r=n(180);function i(t,n){return e.exports=i=r||function(e,t){return e.__proto__=t,e},i(t,n)}e.exports=i},function(e,t,n){var r=n(37),i=n(49),a=n(518)(!1),o=n(121)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),u=0,c=[];for(n in s)n!=o&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~a(c,n)||c.push(n));return c}},function(e,t){var n,r,i=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var u,c=[],l=!1,d=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):d=-1,c.length&&p())}function p(){if(!l){var e=s(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++d1)for(var n=1;n=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}},p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=n(4),g=p(n(24)),y=n(186),v=n(13),b=n(28),C=function(){function e(t){(0,i.default)(this,e),this.nodeTransformerFactory=t}return(0,a.default)(e,[{key:"transform",value:function(e,t,n){if(!t.length)return e;for(var r,i=[],a=[],o=t.length,s=0;s=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(4),m=n(83),g=function(){function e(t,n,r){(0,i.default)(this,e),this.obfuscationResultFactory=t,this.cryptUtils=n,this.options=r}return(0,a.default)(e,[{key:"correct",value:function(e,t){return this.obfuscationResultFactory(this.correctObfuscatedCode(e,t),t)}},{key:"correctObfuscatedCode",value:function(e,t){if(!t)return e;var n=this.options.sourceMapBaseUrl+this.options.sourceMapFileName,r="//# sourceMappingURL=";switch(this.options.sourceMapMode){case m.SourceMapMode.Inline:r+="data:application/json;base64,".concat(this.cryptUtils.btoa(t));break;case m.SourceMapMode.Separate:default:if(!n)return e;r+=n}return"".concat(e,"\n").concat(r)}}]),e}();g=l([p.injectable(),f(0,p.inject(h.ServiceIdentifiers.Factory__IObfuscationResult)),f(1,p.inject(h.ServiceIdentifiers.ICryptUtils)),f(2,p.inject(h.ServiceIdentifiers.IOptions)),d("design:paramtypes",[Function,Object,Object])],g),t.SourceMapCorrector=g},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(t){(0,i.default)(this,e),this.sourceCode=t}return(0,a.default)(e,[{key:"getSourceCode",value:function(){return this.sourceCode}}]),e}();t.SourceCode=o},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(8)),s=r(n(7)),u=r(n(6)),c=r(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),p=n(15),h=function(){function e(){(0,i.default)(this,e)}return(0,a.default)(e,[{key:"initialize",value:function(e,t){this.obfuscatedCode=e,this.sourceMap=t}},{key:"getObfuscatedCode",value:function(){return this.obfuscatedCode}},{key:"getSourceMap",value:function(){return this.sourceMap}},{key:"toString",value:function(){return this.obfuscatedCode}}]),e}();l([p.initializable(),d("design:type",String)],h.prototype,"obfuscatedCode",void 0),l([p.initializable(),d("design:type",String)],h.prototype,"sourceMap",void 0),h=l([f.injectable()],h),t.ObfuscationResult=h},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function i(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,o,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(a(n=this._events[e]))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),n.apply(this,s)}else if(i(n))for(s=Array.prototype.slice.call(arguments,1),o=(c=n.slice()).length,u=0;u0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},n.prototype.removeListener=function(e,t){var n,a,o,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(o=(n=this._events[e]).length,a=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(n)){for(s=o;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=s;break}if(a<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(11)),o=r(n(9)),s=r(n(10)),u=r(n(7)),c=r(n(6)),l=r(n(5)),d=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),p=n(191);f.decorate(f.injectable(),p.EventEmitter);var h=function(e){function t(){return(0,i.default)(this,t),(0,a.default)(this,(0,o.default)(t).apply(this,arguments))}return(0,s.default)(t,e),t}(p.EventEmitter);h=d([f.injectable()],h),t.ObfuscationEventEmitter=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base="[javascript-obfuscator]",e.CLI="[javascript-obfuscator-cli]"}(t.LoggingPrefix||(t.LoggingPrefix={}))},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(8)),u=i(n(7)),c=i(n(6)),l=i(n(5)),d=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}},h=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),g=n(4),y=h(n(129)),v=n(193),b=r=function(){function e(t){(0,a.default)(this,e),this.options=t}return(0,o.default)(e,[{key:"info",value:function(e,t){this.options.log&&r.log(r.colorInfo,v.LoggingPrefix.Base,e,t)}},{key:"success",value:function(e,t){this.options.log&&r.log(r.colorSuccess,v.LoggingPrefix.Base,e,t)}},{key:"warn",value:function(e,t){this.options.log&&r.log(r.colorWarn,v.LoggingPrefix.Base,e,t)}}],[{key:"log",value:function(e,t,n,r){var i=e("\n".concat(t," ").concat(n));console.log(i,r||"")}}]),e}();b.colorInfo=y.default.cyan,b.colorSuccess=y.default.green,b.colorWarn=y.default.yellow,b=r=d([m.injectable(),p(0,m.inject(g.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Object])],b),t.Logger=b},function(e,t,n){"use strict";const r=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,i=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,a=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,o=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,s=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):s.get(e)||e}function c(e,t){const n=[],r=t.trim().split(/\s*,\s*/g);let i;for(const t of r)if(isNaN(t)){if(!(i=t.match(a)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(i[2].replace(o,(e,t,n)=>t?u(t):n))}else n.push(Number(t));return n}function l(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error(`Unknown Chalk style: ${e}`);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}e.exports=((e,t)=>{const n=[],a=[];let o=[];if(t.replace(r,(t,r,s,d,f,p)=>{if(r)o.push(u(r));else if(d){const t=o.join("");o=[],a.push(0===n.length?t:l(e,n)(t)),n.push({inverse:s,styles:function(e){i.lastIndex=0;const t=[];let n;for(;null!==(n=i.exec(e));){const e=n[1];if(n[2]){const r=c(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}(d)})}else if(f){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");a.push(l(e,n)(o.join(""))),o=[],n.pop()}else o.push(p)}),a.push(o.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return a.join("")})},function(e,t,n){"use strict";e.exports={stdout:!1,stderr:!1}},function(e,t,n){var r=n(128);function i(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,i=0;i1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=a},function(e,t,n){"use strict";(function(e){const t=n(199),r=(e,n)=>(function(){return`[${e.apply(t,arguments)+n}m`}),i=(e,n)=>(function(){const r=e.apply(t,arguments);return`[${38+n};5;${r}m`}),a=(e,n)=>(function(){const r=e.apply(t,arguments);return`[${38+n};2;${r[0]};${r[1]};${r[2]}m`});Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,n={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};n.color.grey=n.color.gray;for(const t of Object.keys(n)){const r=n[t];for(const t of Object.keys(r)){const i=r[t];n[t]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[t]=n[t],e.set(i[0],i[1])}Object.defineProperty(n,t,{value:r,enumerable:!1}),Object.defineProperty(n,"codes",{value:e,enumerable:!1})}const o=e=>e,s=(e,t,n)=>[e,t,n];n.color.close="",n.bgColor.close="",n.color.ansi={ansi:r(o,0)},n.color.ansi256={ansi256:i(o,0)},n.color.ansi16m={rgb:a(s,0)},n.bgColor.ansi={ansi:r(o,10)},n.bgColor.ansi256={ansi256:i(o,10)},n.bgColor.ansi16m={rgb:a(s,10)};for(let e of Object.keys(t)){if("object"!=typeof t[e])continue;const o=t[e];"ansi16"===e&&(e="ansi"),"ansi16"in o&&(n.color.ansi[e]=r(o.ansi16,0),n.bgColor.ansi[e]=r(o.ansi16,10)),"ansi256"in o&&(n.color.ansi256[e]=i(o.ansi256,0),n.bgColor.ansi256[e]=i(o.ansi256,10)),"rgb"in o&&(n.color.ansi16m[e]=a(o.rgb,0),n.bgColor.ansi16m[e]=a(o.rgb,10))}return n}})}).call(this,n(87)(e))},function(e,t,n){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},u=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var c=s(n(160)),l=u(n(129)),d=function(){function e(){(0,a.default)(this,e)}return(0,o.default)(e,null,[{key:"parse",value:function(t,n){for(var r=e.sourceTypes.length,i=0;i"),u="...".concat(i.substring(a,o).replace(/^\s+/,""),"...");throw new Error("Line ".concat(r.line,": ").concat(n,"\n").concat(s," ").concat(u))}}]),e}();d.colorError=l.default.red,d.nearestSymbolsCount=15,d.sourceTypes=["script","module"],t.EspreeFacade=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.TransformationStage="Transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,n){"use strict";var r,i=n(0),a=i(n(17)),o=i(n(2)),s=i(n(3)),u=i(n(8)),c=i(n(7)),l=i(n(6)),d=i(n(5)),f=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}},m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=m(n(103)),b=n(203),C=n(58),S=n(18),A=n(202),E=n(13),N=r=function(){function e(t,n,r,i,a){(0,o.default)(this,e),this.transformersRunner=t,this.sourceMapCorrector=n,this.randomGenerator=r,this.logger=i,this.options=a}return(0,s.default)(e,[{key:"obfuscate",value:function(e){var t=Date.now();this.logger.info(b.LoggingMessage.Version,"0.17.0"),this.logger.info(b.LoggingMessage.ObfuscationStarted),this.logger.info(b.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getSeed());var n=this.parseCode(e),r=this.transformAstTree(n),i=this.generateCode(e,r),a=(Date.now()-t)/1e3;return this.logger.success(b.LoggingMessage.ObfuscationCompleted,a),this.getObfuscationResult(i)}},{key:"parseCode",value:function(e){return A.EspreeFacade.parse(e,r.espreeParseOptions)}},{key:"transformAstTree",value:function(e){return!E.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runTransformationStage(e,S.TransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runTransformationStage(e,S.TransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runTransformationStage(e,S.TransformationStage.ControlFlowFlattening)),e=this.runTransformationStage(e,S.TransformationStage.Converting),e=this.runTransformationStage(e,S.TransformationStage.Obfuscating),e=this.runTransformationStage(e,S.TransformationStage.Finalizing)):(this.logger.warn(b.LoggingMessage.EmptySourceCode),e)}},{key:"generateCode",value:function(e,t){var n=(0,a.default)({},r.escodegenParams);this.options.sourceMap&&(n.sourceMap=this.options.inputFileName||"sourceMap",n.sourceContent=e);var i=v.generate(t,(0,a.default)({},n,{format:{compact:this.options.compact}}));return i.map=i.map?i.map.toString():"",i}},{key:"getObfuscationResult",value:function(e){return this.sourceMapCorrector.correct(e.code,e.map)}},{key:"runTransformationStage",value:function(e,t){return this.logger.info(b.LoggingMessage.TransformationStage,t),this.transformersRunner.transform(e,r.transformersList,t)}}]),e}();N.espreeParseOptions={attachComment:!0,comment:!0,ecmaFeatures:{experimentalObjectRestSpread:!0},ecmaVersion:9,loc:!0,range:!0},N.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},N.transformersList=[C.NodeTransformer.BlockStatementControlFlowTransformer,C.NodeTransformer.ClassDeclarationTransformer,C.NodeTransformer.CommentsTransformer,C.NodeTransformer.CustomNodesTransformer,C.NodeTransformer.DeadCodeInjectionTransformer,C.NodeTransformer.EvalCallExpressionTransformer,C.NodeTransformer.FunctionControlFlowTransformer,C.NodeTransformer.CatchClauseTransformer,C.NodeTransformer.FunctionDeclarationTransformer,C.NodeTransformer.FunctionTransformer,C.NodeTransformer.ImportDeclarationTransformer,C.NodeTransformer.LabeledStatementTransformer,C.NodeTransformer.LiteralTransformer,C.NodeTransformer.MemberExpressionTransformer,C.NodeTransformer.MetadataTransformer,C.NodeTransformer.MethodDefinitionTransformer,C.NodeTransformer.ObfuscatingGuardsTransformer,C.NodeTransformer.ObjectExpressionKeysTransformer,C.NodeTransformer.ObjectExpressionTransformer,C.NodeTransformer.ParentificationTransformer,C.NodeTransformer.TemplateLiteralTransformer,C.NodeTransformer.VariableDeclarationTransformer],N=r=f([g.injectable(),h(0,g.inject(y.ServiceIdentifiers.ITransformersRunner)),h(1,g.inject(y.ServiceIdentifiers.ISourceMapCorrector)),h(2,g.inject(y.ServiceIdentifiers.IRandomGenerator)),h(3,g.inject(y.ServiceIdentifiers.ILogger)),h(4,g.inject(y.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Object,Object,Object,Object,Object])],N),t.JavaScriptObfuscator=N},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(7)),u=r(n(6)),c=r(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o};Object.defineProperty(t,"__esModule",{value:!0});var d=n(1),f=function(){function e(){(0,a.default)(this,e),this.stringsCache=new i.default}return(0,o.default)(e,[{key:"encode",value:function(e,t){var n="".concat(e,"-").concat(String(t));if(this.stringsCache.has(n))return this.stringsCache.get(n);var r,i,a=new RegExp("[\\s\\S]","g"),o=new RegExp("['\"\\\\\\s]"),s=new RegExp("[\\x00-\\x7F]"),u=e.replace(a,function(e){return t||o.exec(e)?(s.exec(e)?(r="\\x",i="00"):(r="\\u",i="0000"),"".concat(r).concat((i+e.charCodeAt(0).toString(16)).slice(-i.length))):e});return this.stringsCache.set(n,u),u}}]),e}();f=l([d.injectable()],f),t.EscapeSequenceEncoder=f},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,u=(1<>1,l=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-l)-1,p>>=-l,l+=s;l>0;a=256*a+e[t+d],d+=f,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=r;l>0;o=256*o+e[t+d],d+=f,l-=8);if(0===a)a=1-c;else{if(a===u)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),a-=c}return(p?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,u,c=8*a-i-1,l=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+d>=1?f/u:f*Math.pow(2,1-d))*u>=2&&(o++,u/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*u-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[n+p]=255&s,p+=h,s/=256,i-=8);for(o=o<0;e[n+p]=255&o,p+=h,o/=256,c-=8);e[n+p-h]|=128*m}},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=c(e),r=n[0],o=n[1],s=new a(function(e,t,n){return 3*(t+n)/4-n}(0,r,o)),u=0,l=o>0?r-4:r,d=0;d>16&255,s[u++]=t>>8&255,s[u++]=255&t;2===o&&(t=i[e.charCodeAt(d)]<<2|i[e.charCodeAt(d+1)]>>4,s[u++]=255&t);1===o&&(t=i[e.charCodeAt(d)]<<10|i[e.charCodeAt(d+1)]<<4|i[e.charCodeAt(d+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,a=[],o=0,s=n-i;os?s:o+16383));1===i?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return a.join("")};for(var r=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,a,o=[],s=t;s>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t,n){"use strict";(function(e){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JavaScriptObfuscator=t():e.JavaScriptObfuscator=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=531)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23);t.METADATA_KEY=r;var i=n(502);t.Container=i.Container;var o=n(36);t.BindingScopeEnum=o.BindingScopeEnum,t.BindingTypeEnum=o.BindingTypeEnum,t.TargetTypeEnum=o.TargetTypeEnum;var a=n(486);t.AsyncContainerModule=a.AsyncContainerModule,t.ContainerModule=a.ContainerModule;var s=n(485);t.injectable=s.injectable;var u=n(484);t.tagged=u.tagged;var d=n(483);t.named=d.named;var l=n(168);t.inject=l.inject,t.LazyServiceIdentifer=l.LazyServiceIdentifer;var c=n(482);t.optional=c.optional;var p=n(481);t.unmanaged=p.unmanaged;var f=n(480);t.multiInject=f.multiInject;var h=n(479);t.targetName=h.targetName;var g=n(478);t.postConstruct=g.postConstruct;var m=n(170);t.MetadataReader=m.MetadataReader;var y=n(48);t.guid=y.guid;var b=n(42);t.decorate=b.decorate;var v=n(165);t.traverseAncerstors=v.traverseAncerstors,t.taggedConstraint=v.taggedConstraint,t.namedConstraint=v.namedConstraint,t.typeConstraint=v.typeConstraint;var C=n(68);t.getServiceIdentifierAsString=C.getServiceIdentifierAsString;var S=n(477);t.multiBindToService=S.multiBindToService},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(7);function i(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:1/0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(r.length>=n)return r;var o=t.parentNode;if(!o)throw new ReferenceError("`parentNode` property of given node is `undefined`");return p.NodeGuards.isBlockStatementNode(t)&&o===t&&r.push(t),(p.NodeGuards.isProgramNode(t)||i&&p.NodeGuards.isNodeHasBlockScope(t,o))&&r.push(t),t!==o?e.getBlockScopesOfNodeRecursive(o,n,r,++i):r}},{key:"getSiblingStatementByOffset",value:function(t,n){var r=e.getScopeOfNode(t),i=p.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body;return i[i.indexOf(t)+n]||null}}]),e}();t.NodeUtils=h},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),o=r(n(7)),a=r(n(5)),s=r(n(391)),u=r(n(388)),d=r(n(385)),l=r(n(382)),c=r(n(57)),p=r(n(105));Object.defineProperty(t,"__esModule",{value:!0});var f={configurable:!0,enumerable:!0},h="_initialized",g="_initializablePropertiesSet",m="_wrappedMethodsSet",y="constructor";function b(e,t,n){(0,l.default)(e,n)||(0,d.default)(e,t,n)}t.initializable=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initialize",t=(0,p.default)(this)[0];return function(n,r){var l=n[e];if(!l||"function"!=typeof l)throw new Error("`".concat(e,"` method with initialization logic not ")+"found. `@".concat(t,"` decorator requires `").concat(e,"` method"));return b(h,!1,n),b(g,new c.default,n),b(m,new c.default,n),function(e,t){var n=(0,u.default)(e),r=[t,y];n.forEach(function(n){var u=(0,s.default)(g,e),d=(0,s.default)(m,e),l=r.includes(n)||u.has(n)||d.has(n);if(!l){var c=e[n];if("function"==typeof c){var p=(0,a.default)(e,n)||f,y=p.value;(0,o.default)(e,n,(0,i.default)({},p,{value:function(){if(!(0,s.default)(h,this))throw new Error("Class should be initialized with `".concat(t,"()` method"));return y.apply(this,arguments)}})),d.add(n)}}})}(n,e),function(e,t,n){var r=(0,a.default)(e,t)||f,s=r.value;(0,o.default)(e,t,(0,i.default)({},r,{value:function(){(0,d.default)(h,!0,this);var e=s.apply(this,arguments);return this[n],e}}))}(n,e,r),function(e,t){(0,s.default)(g,e).add(t);var n="_".concat(t.toString()),r=(0,a.default)(e,n)||f;return(0,o.default)(e,t,(0,i.default)({},r,{get:function(){if(void 0===this[n])throw new Error("Property `".concat(t.toString(),"` is not initialized! Initialize it first!"));return this[n]},set:function(e){this[n]=e}})),r}(n,r)}}},function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports=n(438)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Preparing="Preparing",e.DeadCodeInjection="DeadCodeInjection",e.ControlFlowFlattening="ControlFlowFlattening",e.Converting="Converting",e.Obfuscating="Obfuscating",e.Finalizing="Finalizing"}(t.TransformationStage||(t.TransformationStage={}))},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(8)),a=r(n(7)),s=r(n(6)),u=r(n(5)),d=function(e,t,n,r){var i,o=arguments.length,d=o<3?t:null===r?r=(0,u.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof Reflect.decorate)d=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(d=(o<3?i(d):o>3?i(t,n,d):i(t,n))||d);return o>3&&d&&(0,a.default)(t,n,d),d},l=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},c=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),f=n(4),h=function e(t,n){(0,i.default)(this,e),this.randomGenerator=t,this.options=n};h=d([p.injectable(),c(0,p.inject(f.ServiceIdentifiers.IRandomGenerator)),c(1,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",[Object,Object])],h),t.AbstractNodeTransformer=h},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),o=r(n(2)),a=r(n(3)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var u=s(n(104)),d=n(41),l=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"programNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:d.NodeType.Program,body:e,sourceType:"script",metadata:{ignoredNode:!1}}}},{key:"arrayExpressionNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:d.NodeType.ArrayExpression,elements:e,metadata:{ignoredNode:!1}}}},{key:"assignmentExpressionNode",value:function(e,t,n){return{type:d.NodeType.AssignmentExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"binaryExpressionNode",value:function(e,t,n){return{type:d.NodeType.BinaryExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"blockStatementNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{type:d.NodeType.BlockStatement,body:e,metadata:{ignoredNode:!1}}}},{key:"breakStatement",value:function(e){var t={type:d.NodeType.BreakStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"callExpressionNode",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{type:d.NodeType.CallExpression,callee:e,arguments:t,metadata:{ignoredNode:!1}}}},{key:"continueStatement",value:function(e){var t={type:d.NodeType.ContinueStatement,metadata:{ignoredNode:!1}};return e&&(t.label=e),t}},{key:"expressionStatementNode",value:function(e){return{type:d.NodeType.ExpressionStatement,expression:e,metadata:{ignoredNode:!1}}}},{key:"functionDeclarationNode",value:function(t,n,r){return{type:d.NodeType.FunctionDeclaration,id:e.identifierNode(t),params:n,body:r,generator:!1,metadata:{ignoredNode:!1}}}},{key:"functionExpressionNode",value:function(e,t){return{type:d.NodeType.FunctionExpression,params:e,body:t,generator:!1,metadata:{ignoredNode:!1}}}},{key:"ifStatementNode",value:function(e,t,n){return(0,i.default)({type:d.NodeType.IfStatement,test:e,consequent:t},n&&{alternate:n},{metadata:{ignoredNode:!1}})}},{key:"identifierNode",value:function(e){return{type:d.NodeType.Identifier,name:e,metadata:{ignoredNode:!1}}}},{key:"literalNode",value:function(e,t){return t=void 0!==t?t:"'".concat(e,"'"),{type:d.NodeType.Literal,value:e,raw:t,"x-verbatim-property":{content:t,precedence:u.Precedence.Primary},metadata:{ignoredNode:!1}}}},{key:"logicalExpressionNode",value:function(e,t,n){return{type:d.NodeType.LogicalExpression,operator:e,left:t,right:n,metadata:{ignoredNode:!1}}}},{key:"memberExpressionNode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:d.NodeType.MemberExpression,computed:n,object:e,property:t,metadata:{ignoredNode:!1}}}},{key:"methodDefinitionNode",value:function(e,t,n,r){return{type:d.NodeType.MethodDefinition,key:e,value:t,kind:n,computed:r,static:!1,metadata:{ignoredNode:!1}}}},{key:"objectExpressionNode",value:function(e){return{type:d.NodeType.ObjectExpression,properties:e,metadata:{ignoredNode:!1}}}},{key:"propertyNode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:d.NodeType.Property,key:e,value:t,kind:"init",method:!1,shorthand:!1,computed:n,metadata:{ignoredNode:!1}}}},{key:"returnStatementNode",value:function(e){return{type:d.NodeType.ReturnStatement,argument:e,metadata:{ignoredNode:!1}}}},{key:"switchStatementNode",value:function(e,t){return{type:d.NodeType.SwitchStatement,discriminant:e,cases:t,metadata:{ignoredNode:!1}}}},{key:"switchCaseNode",value:function(e,t){return{type:d.NodeType.SwitchCase,test:e,consequent:t,metadata:{ignoredNode:!1}}}},{key:"unaryExpressionNode",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:d.NodeType.UnaryExpression,operator:e,argument:t,prefix:n,metadata:{ignoredNode:!1}}}},{key:"updateExpressionNode",value:function(e,t){return{type:d.NodeType.UpdateExpression,operator:e,argument:t,prefix:!1,metadata:{ignoredNode:!1}}}},{key:"variableDeclarationNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"var";return{type:d.NodeType.VariableDeclaration,declarations:e,kind:t,metadata:{ignoredNode:!1}}}},{key:"variableDeclaratorNode",value:function(e,t){return{type:d.NodeType.VariableDeclarator,id:e,init:t,metadata:{ignoredNode:!1}}}},{key:"whileStatementNode",value:function(e,t){return{type:d.NodeType.WhileStatement,test:e,body:t,metadata:{ignoredNode:!1}}}}]),e}();t.NodeFactory=l},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(8)),u=i(n(7)),d=i(n(6)),l=i(n(5)),c=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),g=n(4),m=n(374),y=n(373),b=r=function(){function e(t,n,r){(0,o.default)(this,e),this.cachedNode=null,this.identifierNamesGenerator=t(r),this.randomGenerator=n,this.options=r}return(0,a.default)(e,[{key:"getNode",value:function(){return this.cachedNode||(this.cachedNode=this.getNodeStructure()),this.cachedNode}},{key:"getGlobalVariableTemplate",value:function(){return this.randomGenerator.getRandomGenerator().pickone(r.globalVariableTemplateFunctions)}}]),e}();b.globalVariableTemplateFunctions=[m.GlobalVariableTemplate1(),y.GlobalVariableTemplate2()],b=r=c([h.injectable(),f(0,h.inject(g.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),f(1,h.inject(g.ServiceIdentifiers.IRandomGenerator)),f(2,h.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Function,Object,Object])],b),t.AbstractCustomNode=b},function(e,t,n){e.exports=n(514)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NAMED_TAG="named",t.NAME_TAG="name",t.UNMANAGED_TAG="unmanaged",t.OPTIONAL_TAG="optional",t.INJECT_TAG="inject",t.MULTI_INJECT_TAG="multi_inject",t.TAGGED="inversify:tagged",t.TAGGED_PROP="inversify:tagged_props",t.PARAM_TYPES="inversify:paramtypes",t.DESIGN_PARAM_TYPES="design:paramtypes",t.POST_CONSTRUCT="post_construct"},function(e,t,n){!function e(t){"use strict";var r,i,o,a,s,u,d,l,c;function p(e){var t,n,r={};for(t in e)e.hasOwnProperty(t)&&(n=e[t],r[t]="object"==typeof n&&null!==n?p(n):n);return r}function f(e,t){this.parent=e,this.key=t}function h(e,t,n,r){this.node=e,this.path=t,this.wrap=n,this.ref=r}function g(){}function m(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function y(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function b(e,t){return(new g).traverse(e,t)}function v(e,t){var n;return n=function(e,t){var n,r,i,o;for(r=e.length,i=0;r;)t(e[o=i+(n=r>>>1)])?r=n:(i=o+1,r-=n+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),(n-=1)>=0&&(e.extendedRange[0]=t[n].range[1]),e}return(i=Array.isArray)||(i=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),s=Object.create||function(){function e(){}return function(t){return e.prototype=t,new e}}(),u=Object.keys||function(e){var t,n=[];for(t in e)n.push(t);return n},r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},a={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},o={Break:d={},Skip:l={},Remove:c={}},f.prototype.replace=function(e){this.parent[this.key]=e},f.prototype.remove=function(){return i(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},g.prototype.path=function(){var e,t,n,r,o;function a(e,t){if(i(t))for(n=0,r=t.length;n=0;)if(b=a[c=g[p]])if(i(b)){for(f=b.length;(f-=1)>=0;)if(b[f]){if(y(s,g[p]))o=new h(b[f],[c,f],"Property",null);else{if(!m(b[f]))continue;o=new h(b[f],[c,f],null,null)}n.push(o)}}else m(b)&&n.push(new h(b,c,null,null))}}else if(o=r.pop(),u=this.__execute(t.leave,o),this.__state===d||u===d)return},g.prototype.replace=function(e,t){var n,r,o,a,s,u,p,g,b,v,C,S,N;function A(e){var t,r,i,o;if(e.ref.remove())for(r=e.ref.key,o=e.ref.parent,t=n.length;t--;)if((i=n[t]).ref&&i.ref.parent===o){if(i.ref.key=0;)if(v=o[N=b[p]])if(i(v)){for(g=v.length;(g-=1)>=0;)if(v[g]){if(y(a,b[p]))u=new h(v[g],[N,g],"Property",new f(v,g));else{if(!m(v[g]))continue;u=new h(v[g],[N,g],null,new f(v,g))}n.push(u)}}else m(v)&&n.push(new h(v,N,null,new f(o,N)))}}else if(u=r.pop(),void 0!==(s=this.__execute(t.leave,u))&&s!==d&&s!==l&&s!==c&&u.ref.replace(s),this.__state!==c&&s!==c||A(u),this.__state===d||s===d)return S.root;return S.root},t.version=n(457).version,t.Syntax=r,t.traverse=b,t.replace=function(e,t){return(new g).replace(e,t)},t.attachComments=function(e,t,n){var r,i,a,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(a=0,i=t.length;ae.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?o.Break:u[s].extendedRange[0]>e.range[1]?o.Skip:void 0}}),s=0,b(e,{leave:function(e){for(var t;se.range[1]?o.Skip:void 0}}),e},t.VisitorKeys=a,t.VisitorOption=o,t.Controller=g,t.cloneEnvironment=function(){return e({})},t}(t)},function(e,t,n){var r=n(33),i=n(16),o=n(50),a=n(44),s=n(37),u=function(e,t,n){var d,l,c,p=e&u.F,f=e&u.G,h=e&u.S,g=e&u.P,m=e&u.B,y=e&u.W,b=f?i:i[t]||(i[t]={}),v=b.prototype,C=f?r:h?r[t]:(r[t]||{}).prototype;for(d in f&&(n=t),n)(l=!p&&C&&void 0!==C[d])&&s(b,d)||(c=l?C[d]:n[d],b[d]=f&&"function"!=typeof C[d]?n[d]:m&&l?o(c,r):y&&C[d]==c?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):g&&"function"==typeof c?o(Function.call,c):c,g&&((b.virtual||(b.virtual={}))[d]=c,e&u.R&&v&&!v[d]&&a(v,d,c)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(26);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),o=r(n(2)),a=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"set",value:function(e,t){e.metadata=(0,i.default)(e.metadata||{},t)}},{key:"get",value:function(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}},{key:"isIgnoredNode",value:function(t){return!0===e.get(t,"ignoredNode")}},{key:"isRenamedIdentifier",value:function(t){return!0===e.get(t,"renamedIdentifier")}},{key:"isReplacedLiteral",value:function(t){return!0===e.get(t,"replacedLiteral")}}]),e}();t.NodeMetadata=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",t.DUPLICATED_METADATA="Metadata key was used more than once in a parameter:",t.NULL_ARGUMENT="NULL argument",t.KEY_NOT_FOUND="Key Not Found",t.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",t.CANNOT_UNBIND="Could not unbind serviceIdentifier:",t.NOT_REGISTERED="No matching bindings found for serviceIdentifier:",t.MISSING_INJECTABLE_ANNOTATION="Missing required @injectable annotation in:",t.MISSING_INJECT_ANNOTATION="Missing required @inject or @multiInject annotation in:",t.UNDEFINED_INJECT_ANNOTATION=function(e){return"@inject called with undefined this could mean that the class "+e+" has a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation."},t.CIRCULAR_DEPENDENCY="Circular dependency found:",t.NOT_IMPLEMENTED="Sorry, this feature is not fully implemented yet.",t.INVALID_BINDING_TYPE="Invalid binding type:",t.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",t.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Middleware must return!",t.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!",t.INVALID_TO_SELF_VALUE="The toSelf function can only be applied when a constructor is used as service identifier",t.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",t.ARGUMENTS_LENGTH_MISMATCH=function(){for(var e=[],t=0;t= than the number of constructor arguments of its base class."},t.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT="Invalid Container constructor argument. Container options must be an object.",t.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE="Invalid Container option. Default scope must be a string ('singleton' or 'transient').",t.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE="Invalid Container option. Auto bind injectable must be a boolean",t.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK="Invalid Container option. Skip base check must be a boolean",t.MULTIPLE_POST_CONSTRUCT_METHODS="Cannot apply @postConstruct decorator multiple times in the same class",t.POST_CONSTRUCT_ERROR=function(){for(var e=[],t=0;t1?t-1:0),r=1;r3&&void 0!==arguments[3]?arguments[3]:0,o=t.length?e.getOptimalBlockScope(t,i):n;e.prepend(o,r)}},{key:"getOptimalBlockScope",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,i=t[n];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&i.stackTrace.length?e.getOptimalBlockScope(i.stackTrace,0,--r):i.callee}},{key:"insertAfter",value:function(t,n,r){var i=e.getScopeStatements(t).indexOf(r);e.insertAtIndex(t,n,i+1)}},{key:"insertAtIndex",value:function(t,n,r){n=e.parentizeScopeStatementsBeforeAppend(t,n),e.setScopeStatements(t,(0,i.default)(e.getScopeStatements(t).slice(0,r)).concat((0,i.default)(n),(0,i.default)(e.getScopeStatements(t).slice(r))))}},{key:"prepend",value:function(t,n){n=e.parentizeScopeStatementsBeforeAppend(t,n),e.setScopeStatements(t,(0,i.default)(n).concat((0,i.default)(e.getScopeStatements(t))))}},{key:"getScopeStatements",value:function(e){return s.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}},{key:"parentizeScopeStatementsBeforeAppend",value:function(e,t){return t.forEach(function(t){t.parentNode=e}),t}},{key:"setScopeStatements",value:function(e,t){s.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}]),e}();t.NodeAppender=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.guid=function(){function e(){return Math.floor(65536*(Math.random()+1)).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}},function(e,t,n){var r=n(126),i=n(124);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(76);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];for(var n in t)void 0===e[n]&&(e[n]=t[n]);return e},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i,o=new(function(){function e(){this.instances=[]}return e.prototype.get=function(e){var t=this.instances.find(function(t){return t.type===e});return t||(t={type:e,object:new e},this.instances.push(t)),t.object},e}());t.useContainer=function(e,t){r=e,i=t},t.getFromContainer=function(e){if(r)try{var t=r.get(e);if(t)return t;if(!i||!i.fallback)return t}catch(e){if(!i||!i.fallbackOnErrors)throw e}return o.get(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.isValid=function(e){var t=this;return"isValid"!==e&&"getMessage"!==e&&-1!==Object.keys(this).map(function(e){return t[e]}).indexOf(e)},e.getMessage=function(e,t){var n=this,r=t?"each value in ":"";switch(e){case this.NESTED_VALIDATION:return r+"nested property $property must be either object or array";case this.IS_DEFINED:return r+"$property should not be null or undefined";case this.EQUALS:return r+"$property must be equal to $constraint1";case this.NOT_EQUALS:return r+"$property should not be equal to $constraint1";case this.IS_EMPTY:return r+"$property must be empty";case this.IS_NOT_EMPTY:return r+"$property should not be empty";case this.IS_IN:return r+"$property must be one of the following values: $constraint1";case this.IS_NOT_IN:return r+"$property should not be one of the following values: $constraint1";case this.IS_BOOLEAN:return r+"$property must be a boolean value";case this.IS_DATE:return r+"$property must be a Date instance";case this.IS_NUMBER:return r+"$property must be a number";case this.IS_INT:return r+"$property must be an integer number";case this.IS_STRING:return r+"$property must be a string";case this.IS_DATE_STRING:return r+"$property must be a ISOString";case this.IS_ARRAY:return r+"$property must be an array";case this.IS_ENUM:return r+"$property must be a valid enum value";case this.IS_DIVISIBLE_BY:return r+"$property must be divisible by $constraint1";case this.IS_POSITIVE:return r+"$property must be a positive number";case this.IS_NEGATIVE:return r+"$property must be a negative number";case this.MIN:return r+"$property must not be less than $constraint1";case this.MAX:return r+"$property must not be greater than $constraint1";case this.MIN_DATE:return"minimal allowed date for "+r+"$property is $constraint1";case this.MAX_DATE:return"maximal allowed date for "+r+"$property is $constraint1";case this.IS_BOOLEAN_STRING:return r+"$property must be a boolean string";case this.IS_NUMBER_STRING:return r+"$property must be a number string";case this.CONTAINS:return r+"$property must contain a $constraint1 string";case this.NOT_CONTAINS:return r+"$property should not contain a $constraint1 string";case this.IS_ALPHA:return r+"$property must contain only letters (a-zA-Z)";case this.IS_ALPHANUMERIC:return r+"$property must contain only letters and numbers";case this.IS_ASCII:return r+"$property must contain only ASCII characters";case this.IS_BASE64:return r+"$property must be base64 encoded";case this.IS_BYTE_LENGTH:return r+"$property's byte length must fall into ($constraint1, $constraint2) range";case this.IS_CREDIT_CARD:return r+"$property must be a credit card";case this.IS_CURRENCY:return r+"$property must be a currency";case this.IS_EMAIL:return r+"$property must be an email";case this.IS_FQDN:return r+"$property must be a valid domain name";case this.IS_FULL_WIDTH:return r+"$property must contain a full-width characters";case this.IS_HALF_WIDTH:return r+"$property must contain a half-width characters";case this.IS_VARIABLE_WIDTH:return r+"$property must contain a full-width and half-width characters";case this.IS_HEX_COLOR:return r+"$property must be a hexadecimal color";case this.IS_HEXADECIMAL:return r+"$property must be a hexadecimal number";case this.IS_IP:return r+"$property must be an ip address";case this.IS_ISBN:return r+"$property must be an ISBN";case this.IS_ISIN:return r+"$property must be an ISIN (stock/security identifier)";case this.IS_ISO8601:return r+"$property must be a valid ISO 8601 date string";case this.IS_JSON:return r+"$property must be a json string";case this.IS_LOWERCASE:return r+"$property must be a lowercase string";case this.IS_MOBILE_PHONE:return r+"$property must be a phone number";case this.IS_PHONE_NUMBER:return r+"$property must be a valid phone number";case this.IS_MONGO_ID:return r+"$property must be a mongodb id";case this.IS_MULTIBYTE:return r+"$property must contain one or more multibyte chars";case this.IS_SURROGATE_PAIR:return r+"$property must contain any surrogate pairs chars";case this.IS_URL:return r+"$property must be an URL address";case this.IS_UUID:return r+"$property must be an UUID";case this.IS_UPPERCASE:return r+"$property must be uppercase";case this.LENGTH:return function(e){var t=null!==e.constraints[0]&&void 0!==e.constraints[0],n=null!==e.constraints[1]&&void 0!==e.constraints[1];return t&&(!e.value||e.value.lengthe.constraints[1]?r+"$property must be shorter than or equal to $constraint2 characters":r+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"};case this.MIN_LENGTH:return r+"$property must be longer than or equal to $constraint1 characters";case this.MAX_LENGTH:return r+"$property must be shorter than or equal to $constraint1 characters";case this.MATCHES:return r+"$property must match $constraint1 regular expression";case this.ARRAY_CONTAINS:return r+"$property must contain $constraint1 values";case this.ARRAY_NOT_CONTAINS:return r+"$property should not contain $constraint1 values";case this.ARRAY_NOT_EMPTY:return r+"$property should not be empty";case this.ARRAY_MIN_SIZE:return r+"$property must contain at least $constraint1 elements";case this.ARRAY_MAX_SIZE:return r+"$property must contain not more than $constraint1 elements";case this.ARRAY_UNIQUE:return r+"All $property's elements must be unique";case this.IS_INSTANCE:return function(e){return e.constraints[0]?r+"$property must be an instance of "+e.constraints[0].name:r+(n.IS_INSTANCE+" decorator expects and object as value, but got falsy value.")}}return""},e.CUSTOM_VALIDATION="customValidation",e.NESTED_VALIDATION="nestedValidation",e.CONDITIONAL_VALIDATION="conditionalValidation",e.WHITELIST="whitelistValidation",e.IS_DEFINED="isDefined",e.EQUALS="equals",e.NOT_EQUALS="notEquals",e.IS_EMPTY="isEmpty",e.IS_NOT_EMPTY="isNotEmpty",e.IS_IN="isIn",e.IS_NOT_IN="isNotIn",e.IS_BOOLEAN="isBoolean",e.IS_DATE="isDate",e.IS_NUMBER="isNumber",e.IS_STRING="isString",e.IS_DATE_STRING="isDateString",e.IS_ARRAY="isArray",e.IS_INT="isInt",e.IS_ENUM="isEnum",e.IS_DIVISIBLE_BY="isDivisibleBy",e.IS_POSITIVE="isPositive",e.IS_NEGATIVE="isNegative",e.MIN="min",e.MAX="max",e.MIN_DATE="minDate",e.MAX_DATE="maxDate",e.IS_BOOLEAN_STRING="isBooleanString",e.IS_NUMBER_STRING="isNumberString",e.CONTAINS="contains",e.NOT_CONTAINS="notContains",e.IS_ALPHA="isAlpha",e.IS_ALPHANUMERIC="isAlphanumeric",e.IS_ASCII="isAscii",e.IS_BASE64="isBase64",e.IS_BYTE_LENGTH="isByteLength",e.IS_CREDIT_CARD="isCreditCard",e.IS_CURRENCY="isCurrency",e.IS_EMAIL="isEmail",e.IS_FQDN="isFqdn",e.IS_FULL_WIDTH="isFullWidth",e.IS_HALF_WIDTH="isHalfWidth",e.IS_VARIABLE_WIDTH="isVariableWidth",e.IS_HEX_COLOR="isHexColor",e.IS_HEXADECIMAL="isHexadecimal",e.IS_IP="isIp",e.IS_ISBN="isIsbn",e.IS_ISIN="isIsin",e.IS_ISO8601="isIso8601",e.IS_JSON="isJson",e.IS_LOWERCASE="isLowercase",e.IS_MOBILE_PHONE="isMobilePhone",e.IS_PHONE_NUMBER="isPhoneNumber",e.IS_MONGO_ID="isMongoId",e.IS_MULTIBYTE="isMultibyte",e.IS_SURROGATE_PAIR="isSurrogatePair",e.IS_URL="isUrl",e.IS_UUID="isUuid",e.LENGTH="length",e.IS_UPPERCASE="isUppercase",e.MIN_LENGTH="minLength",e.MAX_LENGTH="maxLength",e.MATCHES="matches",e.IS_MILITARY_TIME="isMilitaryTime",e.ARRAY_CONTAINS="arrayContains",e.ARRAY_NOT_CONTAINS="arrayNotContains",e.ARRAY_NOT_EMPTY="arrayNotEmpty",e.ARRAY_MIN_SIZE="arrayMinSize",e.ARRAY_MAX_SIZE="arrayMaxSize",e.ARRAY_UNIQUE="arrayUnique",e.IS_INSTANCE="isInstance",e}();t.ValidationTypes=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputDisableExpressionNode="ConsoleOutputDisableExpressionNode",e.DebugProtectionFunctionCallNode="DebugProtectionFunctionCallNode",e.DebugProtectionFunctionIntervalNode="DebugProtectionFunctionIntervalNode",e.DebugProtectionFunctionNode="DebugProtectionFunctionNode",e.DomainLockNode="DomainLockNode",e.NodeCallsControllerFunctionNode="NodeCallsControllerFunctionNode",e.SelfDefendingUnicodeNode="SelfDefendingUnicodeNode",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArrayNode="StringArrayNode",e.StringArrayRotateFunctionNode="StringArrayRotateFunctionNode"}(t.CustomNode||(t.CustomNode={}))},function(e,t,n){var r=n(402),i=n(401),o=n(400);e.exports=function(e,t){return r(e)||i(e,t)||o()}},function(e,t,n){var r=n(416),i=n(415),o=n(407);e.exports=function(e){return r(e)||i(e)||o()}},function(e,t,n){e.exports=n(422)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.ClassDeclarationTransformer="ClassDeclarationTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomNodesTransformer="CustomNodesTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.CatchClauseTransformer="CatchClauseTransformer",e.FunctionDeclarationTransformer="FunctionDeclarationTransformer",e.FunctionTransformer="FunctionTransformer",e.ImportDeclarationTransformer="ImportDeclarationTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.LiteralTransformer="LiteralTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.MethodDefinitionTransformer="MethodDefinitionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ParentificationTransformer="ParentificationTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationTransformer="VariableDeclarationTransformer"}(t.NodeTransformer||(t.NodeTransformer={}))},function(e,t,n){var r=n(91)("meta"),i=n(26),o=n(37),a=n(32).f,s=0,u=Object.isExtensible||function(){return!0},d=!n(38)(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},c=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return d&&c.NEED&&u(e)&&!o(e,r)&&l(e),e}}},function(e,t,n){var r=n(124);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(513)(!0);n(119)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(308),i=function(){function e(){this.validationMetadatas=[],this.constraintMetadatas=[]}return Object.defineProperty(e.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.length},enumerable:!0,configurable:!0}),e.prototype.addValidationSchema=function(e){var t=this;(new r.ValidationSchemaToMetadataTransformer).transform(e).forEach(function(e){return t.addValidationMetadata(e)})},e.prototype.addValidationMetadata=function(e){this.validationMetadatas.push(e)},e.prototype.addConstraintMetadata=function(e){this.constraintMetadatas.push(e)},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach(function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)}),t},e.prototype.getTargetValidationMetadatas=function(e,t,n){var r=this.validationMetadatas.filter(function(r){return(r.target===e||r.target===t)&&(!!r.always||(!(n&&n.length>0)||r.groups&&!!r.groups.find(function(e){return-1!==n.indexOf(e)})))}),i=this.validationMetadatas.filter(function(t){return t.target!==e&&((!(t.target instanceof Function)||e.prototype instanceof t.target)&&(!!t.always||(!(n&&n.length>0)||t.groups&&!!t.groups.find(function(e){return-1!==n.indexOf(e)}))))}).filter(function(e){return!r.find(function(t){return t.propertyName===e.propertyName&&t.type===e.type})});return r.concat(i)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.filter(function(t){return t.target===e})},e}();t.MetadataStorage=i},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,null,[{key:"extractDomainFrom",value:function(e){return(e.indexOf("://")>-1||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0]).split(":")[0]}}]),e}();a.hexadecimalPrefix="0x",t.Utils=a},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(8)),s=r(n(7)),u=r(n(6)),d=r(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(4),g=function(){function e(t,n,r){(0,i.default)(this,e),this.identifierNamesGenerator=t(r),this.randomGenerator=n,this.options=r}return(0,o.default)(e,[{key:"getAppendEvent",value:function(){return this.appendEvent}},{key:"getCustomNodes",value:function(){return this.customNodes}},{key:"appendCustomNodeIfExist",value:function(e,t){var n=this.customNodes.get(e);n&&t(n)}},{key:"getRandomStackTraceIndex",value:function(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}}]),e}();g=l([f.injectable(),p(0,f.inject(h.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),p(1,f.inject(h.ServiceIdentifiers.IRandomGenerator)),p(2,f.inject(h.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Function,Object,Object])],g),t.AbstractCustomNodeGroup=g},function(e,t,n){e.exports=n(434)},function(e,t,n){var r=n(25),i=n(16),o=n(38);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(29);function i(e){return"function"==typeof e?e.name:"symbol"==typeof e?e.toString():e}function o(e){if(e.name)return e.name;var t=e.toString(),n=t.match(/^function\s*([^\s(]+)/);return n?n[1]:"Anonymous function: "+t}t.getServiceIdentifierAsString=i,t.listRegisteredBindingsForServiceIdentifier=function(e,t,n){var r="",i=n(e,t);return 0!==i.length&&(r="\nRegistered bindings:",i.forEach(function(e){var t="Object";null!==e.implementationType&&(t=o(e.implementationType)),r=r+"\n "+t,e.constraint.metaData&&(r=r+" - "+e.constraint.metaData)})),r},t.circularDependencyToException=function e(t){t.childRequests.forEach(function(t){if(function e(t,n){return null!==t.parentRequest&&(t.parentRequest.serviceIdentifier===n||e(t.parentRequest,n))}(t,t.serviceIdentifier)){var n=function e(t,n){void 0===n&&(n=[]);var r=i(t.serviceIdentifier);return n.push(r),null!==t.parentRequest?e(t.parentRequest,n):n}(t).reverse().join(" --\x3e ");throw new Error(r.CIRCULAR_DEPENDENCY+" "+n)}e(t)})},t.listMetadataForTarget=function(e,t){if(t.isTagged()||t.isNamed()){var n="",r=t.getNamedTag(),i=t.getCustomTags();return null!==r&&(n+=r.toString()+"\n"),null!==i&&i.forEach(function(e){n+=e.toString()+"\n"})," "+e+"\n "+e+" - "+n}return" "+e},t.getFunctionName=o},function(e,t,n){var r=n(26);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){var r=n(50),i=n(176),o=n(175),a=n(27),s=n(94),u=n(115),d={},l={};(t=e.exports=function(e,t,n,c,p){var f,h,g,m,y=p?function(){return e}:u(e),b=r(n,c,t?2:1),v=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(o(y)){for(f=s(e.length);f>v;v++)if((m=t?b(a(h=e[v])[0],h[1]):b(e[v]))===d||m===l)return m}else for(g=y.call(e);!(h=g.next()).done;)if((m=i(g,b,h.value,t))===d||m===l)return m}).BREAK=d,t.RETURN=l},function(e,t,n){n(511);for(var r=n(33),i=n(44),o=n(61),a=n(30)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;udocument.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[o[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:i(n,t)}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3));Object.defineProperty(t,"__esModule",{value:!0}),n(528);var a=n(4),s=n(43),u=function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,null,[{key:"obfuscate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=new s.InversifyContainerFacade;n.load(e,t);var r=n.get(a.ServiceIdentifiers.IJavaScriptObfuscator).obfuscate(e);return n.unload(),r}}]),e}();u.version="0.17.0",t.JavaScriptObfuscator=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});for(var r,i=t.alpha={"en-US":/^[A-Z]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ω]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},o=t.alphanumeric={"en-US":/^[0-9A-Z]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/},a=t.decimal={"en-US":".",ar:"٫"},s=t.englishLocales=["AU","GB","HK","IN","NZ","ZA","ZM"],u=0;u=0;l--)(i=e[l])&&(d=(o<3?i(d):o>3?i(t,n,d):i(t,n))||d);return o>3&&d&&(0,a.default)(t,n,d),d},l=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,s.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},c=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),f=n(4),h=function e(t){(0,i.default)(this,e),this.options=t};h=d([p.injectable(),c(0,p.inject(f.ServiceIdentifiers.IOptions)),l("design:paramtypes",[Object])],h),t.AbstractObfuscatingReplacer=h},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,null,[{key:"toHex",value:function(e){return e.toString(16)}},{key:"isCeil",value:function(e){return e%1==0}}]),e}();t.NumberUtils=a},function(e,t,n){var r=n(5),i=n(339),o=(n(9),n(336));function a(t,n,s){return"undefined"!=typeof Reflect&&i?e.exports=a=i:e.exports=a=function(e,t,n){var i=o(e,t);if(i){var a=r(i,t);return a.get?a.get.call(n):a.value}},a(t,n,s||t)}e.exports=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base64="base64",e.Rc4="rc4"}(t.StringArrayEncoding||(t.StringArrayEncoding={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Inline="inline",e.Separate="separate"}(t.SourceMapMode||(t.SourceMapMode={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.HexadecimalIdentifierNamesGenerator="hexadecimal",e.MangledIdentifierNamesGenerator="mangled"}(t.IdentifierNamesGenerator||(t.IdentifierNamesGenerator={}))},function(e,t,n){"use strict";var r=n(0)(n(150));Object.defineProperty(t,"__esModule",{value:!0});var i=n(84),o=n(45),a=n(83);t.NO_ADDITIONAL_NODES_PRESET=(0,r.default)({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!1,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,stringArray:!1,stringArrayEncoding:!1,stringArrayThreshold:0,target:o.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,n){var r=n(178),i=n(25),o=n(93)("metadata"),a=o.store||(o.store=new(n(429))),s=function(e,t,n){var i=a.get(e);if(!i){if(!n)return;a.set(e,i=new r)}var o=i.get(t);if(!o){if(!n)return;i.set(t,o=new r)}return o};e.exports={store:a,map:s,has:function(e,t,n){var r=s(t,n,!1);return void 0!==r&&r.has(e)},get:function(e,t,n){var r=s(t,n,!1);return void 0===r?void 0:r.get(e)},set:function(e,t,n,r){s(n,r,!0).set(e,t)},keys:function(e,t){var n=s(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},key:function(e){return void 0===e||"symbol"==typeof e?e:String(e)},exp:function(e){i(i.S,"Reflect",e)}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(32).f,i=n(37),o=n(30)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(89),i=n(75),o=n(49),a=n(128),s=n(37),u=n(185),d=Object.getOwnPropertyDescriptor;t.f=n(35)?d:function(e,t){if(e=o(e),t=a(t,!0),u)try{return d(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){e.exports=!0},function(e,t,n){var r=n(16),i=n(33),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(92)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){var r=n(123),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,o.default)(t);n=String(n);if(!n)return e(t,4)||e(t,6);if("4"===n){if(!a.test(t))return!1;var r=t.split(".").sort(function(e,t){return e-t});return r[3]<=255}if("6"===n){var i=t.split(":"),u=!1,d=e(i[i.length-1],4),l=d?7:8;if(i.length>l)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(i.shift(),i.shift(),u=!0):"::"===t.substr(t.length-2)&&(i.pop(),i.pop(),u=!0);for(var c=0;c0&&c=1:i.length===l}return!1};var r,i=n(12),o=(r=i)&&r.__esModule?r:{default:r};var a=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,s=/^[0-9A-F]{1,4}$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,r.default)(e),(t=(0,i.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));for(var n=e.split("."),o=0;o63)return!1;if(t.require_tld){var s=n.pop();if(!n.length||!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(s))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20]/.test(s))return!1}for(var u,d=0;d=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,d.default)(t,n,a),a},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),m=n(4),y=r=function(){function e(t,n,r){(0,a.default)(this,e),this.replacerDataByControlFlowStorageId=new o.default,this.controlFlowCustomNodeFactory=t,this.randomGenerator=n,this.options=r}return(0,s.default)(e,[{key:"insertCustomNodeToControlFlowStorage",value:function(e,t,n,i){var o=this,a=t.getStorageId(),s=r.getStorageKeysByIdForCurrentStorage(this.replacerDataByControlFlowStorageId,a),u=s.get(n);if(this.randomGenerator.getMathRandom()":i.Relational,"<=":i.Relational,">=":i.Relational,in:i.Relational,instanceof:i.Relational,"<<":i.BitwiseSHIFT,">>":i.BitwiseSHIFT,">>>":i.BitwiseSHIFT,"+":i.Additive,"-":i.Additive,"*":i.Multiplicative,"%":i.Multiplicative,"/":i.Multiplicative,"**":i.Exponentiation};var P=7,x=1;function R(e,t){var n="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(n+=e);return n}function $(e){return/[\r\n]/g.test(e)}function O(e){var t=e.length;return t&&u.code.isLineTerminator(e.charCodeAt(t-1))}function B(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function w(e,t){var n,r;function i(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(n in t)t.hasOwnProperty(n)&&(i(r=t[n])?i(e[n])?w(e[n],r):e[n]=w({},r):e[n]=r);return e}function k(e,t){return 8232==(-2&e)?(t?"u":"\\u")+(8232===e?"2028":"2029"):10===e||13===e?(t?"":"\\")+(10===e?"n":"r"):String.fromCharCode(e)}function L(e,t){var n;return 8===e?"\\b":12===e?"\\f":9===e?"\\t":(n=e.toString(16).toUpperCase(),p||e>255?"\\u"+"0000".slice(n.length)+n:0!==e||u.code.isDecimalDigit(t)?11===e?"\\x0B":"\\x"+"00".slice(n.length)+n:"\\0")}function G(e){if(92===e)return"\\\\";if(10===e)return"\\n";if(13===e)return"\\r";if(8232===e)return"\\u2028";if(8233===e)return"\\u2029";throw new Error("Incorrectly classified character")}function j(e,t){if(!E)return d(e)?function e(t){var n,r,i,o="";for(n=0,r=t.length;na&&(s=a)}for(void 0!==t?(d=l,"*"===n[1][s]&&(t+=" "),l=t):(1&s&&--s,d=l),r=1,i=n.length;r0){if(a=t,T){for(t=[],f=(o=e.leadingComments[0]).extendedRange,h=o.range,(y=((m=I.substring(f[0],h[0])).match(/\n/g)||[]).length)>0?(t.push(R("\n",y)),t.push(H(W(o)))):(t.push(m),t.push(W(o))),g=h,n=1,i=e.leadingComments.length;n0?(t.push(R("\n",y)),t.push(H(W(o)))):(t.push(m),t.push(W(o)));else for(s=!O(j(t).toString()),d=R(" ",function(e){var t;for(t=e.length-1;t>=0&&!u.code.isLineTerminator(e.charCodeAt(t));--t);return e.length-1-t}(j([l,t,c]).toString())),n=0,i=e.trailingComments.length;n")),e.expression?(t.push(b),"{"===(n=this.generateExpression(e.body,i.Assignment,P)).toString().charAt(0)&&(n=["(",n,")"]),t.push(n)):t.push(this.maybeBlock(e.body,9)),t},Z.prototype.generateIterationForStatement=function(e,t,n){var o=["for"+b+(t.await?"await"+b:"")+"("],a=this;return z(function(){t.left.type===r.VariableDeclaration?z(function(){o.push(t.left.kind+V()),o.push(a.generateStatement(t.left.declarations[0],0))}):o.push(a.generateExpression(t.left,i.Call,P)),o=[U(o=U(o,e),a.generateExpression(t.right,i.Sequence+("of"===e?1:0),P)),")"]}),o.push(this.maybeBlock(t.body,n)),o},Z.prototype.generatePropertyKey=function(e,t){var n=[];return t&&n.push("["),n.push(this.generateExpression(e,i.Sequence,P)),t&&n.push("]"),n},Z.prototype.generateAssignment=function(e,t,n,r,o){return i.Assignment2&&("\n"===(r=I.substring(n[0]+1,n[1]-1))[0]&&(i=["{"]),i.push(r)),d=x,8&t&&(d|=16),a=0,s=e.body.length;a0&&(e.body[a-1].trailingComments||e.body[a].leadingComments||J(e.body[a-1].range[1],e.body[a].range[0],i))),a===s-1&&(d|=32),u=e.body[a].leadingComments&&T?o.generateStatement(e.body[a],d):H(o.generateStatement(e.body[a],d)),i.push(u),O(j(u).toString())||T&&a1?z(u):u(),n.push(this.semicolon(t)),n},ThrowStatement:function(e,t){return[U("throw",this.generateExpression(e.argument,i.Sequence,P)),this.semicolon(t)]},TryStatement:function(e,t){var n,r,i,o;if(n=["try",this.maybeBlock(e.block,x)],n=this.maybeBlockSuffix(e.block,n),e.handlers)for(r=0,i=e.handlers.length;r0?"\n":""],a=17,i=0;i0&&(e.body[i-1].trailingComments||e.body[i].leadingComments||J(e.body[i-1].range[1],e.body[i].range[0],n))),r=H(this.generateStatement(e.body[i],a)),n.push(r),i+10){for(r.push("("),a=0,s=o;a=2&&48===a.charCodeAt(0))&&o.push("."),o.push("."),o.push(X(e.property))),Y(o,i.Member,t)},MetaProperty:function(e,t,n){return Y([e.meta&&"string"==typeof e.meta.type&&e.meta.type===r.Identifier?e.meta.name:e.meta,".",e.property&&"string"==typeof e.property.type&&e.property.type===r.Identifier?e.property.name:e.property],i.Member,t)},UnaryExpression:function(e,t,n){var r,o,a,s,d;return o=this.generateExpression(e.argument,i.Unary,P),""===b?r=U(e.operator,o):(r=[e.operator],e.operator.length>2?r=U(r,o):(d=(s=j(r).toString()).charCodeAt(s.length-1),a=o.toString().charCodeAt(0),(43===d||45===d)&&d===a||u.code.isIdentifierPartES5(d)&&u.code.isIdentifierPartES5(a)?(r.push(V()),r.push(o)):r.push(o))),Y(r,i.Unary,t)},YieldExpression:function(e,t,n){var r;return r=e.delegate?"yield*":"yield",e.argument&&(r=U(r,this.generateExpression(e.argument,i.Yield,P))),Y(r,i.Yield,t)},AwaitExpression:function(e,t,n){return Y(U(e.all?"await*":"await",this.generateExpression(e.argument,i.Await,P)),i.Await,t)},UpdateExpression:function(e,t,n){return e.prefix?Y([e.operator,this.generateExpression(e.argument,i.Unary,P)],i.Unary,t):Y([this.generateExpression(e.argument,i.Postfix,P),e.operator],i.Postfix,t)},FunctionExpression:function(e,t,n){var r=[Q(e,!0),"function"];return e.id?(r.push(ee(e)||V()),r.push(X(e.id))):r.push(ee(e)||b),r.push(this.generateFunctionBody(e)),r},ArrayPattern:function(e,t,n){return this.ArrayExpression(e,t,n,!0)},ArrayExpression:function(e,t,n,r){var o,a,s=this;return e.elements.length?(a=!r&&e.elements.length>1,o=["[",a?y:""],z(function(t){var n,r;for(n=0,r=e.elements.length;n1,z(function(){a=s.generateExpression(e.properties[0],i.Sequence,P)}),r||$(j(a).toString())?(z(function(t){var n,u;if(o=["{",y,t,a],r)for(o.push(","+y),n=1,u=e.properties.length;n126))){a+=L(r,e.charCodeAt(t+1));continue}}a+=String.fromCharCode(r)}if(o=(i=!("double"===g||"auto"===g&&d0&&(i=+r.slice(o+1),r=r.slice(0,o)),n>=0&&(i-=r.length-n-1,r=+(r.slice(0,n)+r.slice(n+1))+""),o=0;48===r.charCodeAt(r.length+o-1);)--o;return 0!==o&&(i-=o,r=r.slice(0,o)),0!==i&&(r+="e"+i),(r.length1e12&&Math.floor(e)===e&&(r="0x"+e.toString(16)).length0||A.moz.comprehensionExpressionStartsWithAssignment?o=U(o,u):o.push(u)}),e.filter&&(o=U(o,"if"+b),u=this.generateExpression(e.filter,i.Sequence,P),o=U(o,["(",u,")"])),A.moz.comprehensionExpressionStartsWithAssignment||(u=this.generateExpression(e.body,i.Assignment,P),o=U(o,u)),o.push(e.type===r.GeneratorExpression?")":"]"),o},ComprehensionBlock:function(e,t,n){var o;return o=U(o=U(o=e.left.type===r.VariableDeclaration?[e.left.kind,V(),this.generateStatement(e.left.declarations[0],0)]:this.generateExpression(e.left,i.Call,P),e.of?"of":"in"),this.generateExpression(e.right,i.Sequence,P)),["for"+b+"(",o,")"]},SpreadElement:function(e,t,n){return["...",this.generateExpression(e.argument,i.Assignment,P)]},RestElement:function(e,t,n){return["...",this.generatePattern(e.argument,i.Assignment,P)]},SpreadProperty:function(e,t,n){return["...",this.generateExpression(e.argument,i.Assignment,P)]},RestProperty:function(e,t,n){return["...",this.generatePattern(e.argument,i.Assignment,P)]},TaggedTemplateExpression:function(e,t,n){var r=3;return 2&n||(r=1),Y([this.generateExpression(e.tag,i.Call,r),this.generateExpression(e.quasi,i.Primary,4)],i.TaggedTemplate,t)},TemplateElement:function(e,t,n){return e.value.raw},TemplateLiteral:function(e,t,n){var r,o,a;for(r=["`"],o=0,a=e.quasis.length;o=0||e.indexOf("'")>=0)return t;return"double"===g?'"'+e+'"':"'"+e+"'"}(e.value.value,e.value.raw):this.generateExpression(e.value,i.Sequence,{allowIn:!0,allowCall:!0}),o.push(a)),o},JSXClosingElement:function(e,t,n){return[""]},JSXFragment:function(e,t,n){return this.JSXElement(e,t,n)},JSXOpeningFragment:function(e,t,n){return this.JSXOpeningElement(e,t,n)},JSXClosingFragment:function(e,t,n){return this.JSXClosingElement(e,t,n)},JSXElement:function(e,t,n){var o=[],a=this;256&n||(l+=c);var s=this.generateExpression(e.openingElement,i.JSXElement,{allowIn:!0,allowCall:!0});o.push(s);var u,d,p=[];return z(function(t){for(u=0,d=e.children.length;u3&&e.attributes[d].value&&e.attributes[d].value.type!==r.Literal&&(u[u.length-1].multiline=!0);return z(function(e){for(var t=0,n=u.length;t0&&t%3==0||u[t].multiline?o.push(y+e):o.push(" "),o.push(a.generateExpression(u[t].expr,i.Sequence,3))}),o.push(e.selfClosing?"/>":">"),o},JSXSpreadAttribute:function(e,t,n){return["{...",this.generateExpression(e.argument,i.Sequence,{allowIn:!0,allowCall:!0}),"}"]},JSXText:function(e,t,n){return e.raw}},B(Z.prototype,Z.Expression),Z.prototype.generateExpression=function(e,t,n){var o,a;return a=e.type||r.Property,A.verbatim&&e.hasOwnProperty(A.verbatim)?function(e,t){var n;return j("string"==typeof(n=e[A.verbatim])?Y(q(n),i.Sequence,t):Y(q(n.content),null!=n.precedence?n.precedence:i.Sequence,t),e)}(e,t):(o=this[a](e,t,n),A.comment&&(o=K(e,o)),j(o,e))},Z.prototype.generateStatement=function(e,t){var n,i;return n=this[e.type](e,t),A.comment&&(n=K(e,n)),i=j(n).toString(),e.type!==r.Program||S||""!==y||"\n"!==i.charAt(i.length-1)||(n=E?j(n).replaceRight(/\s+$/,""):i.replace(/\s+$/,"")),j(n,e)},D={indent:{style:"",base:0},renumber:!0,hexadecimal:!0,quotes:"auto",escapeless:!0,compact:!0,parentheses:!1,semicolons:!1},F={indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},t.version=n(446).version,t.generate=function(r,i){var o,s,u={indent:null,base:null,parse:null,comment:!1,format:{indent:{style:" ",base:0,adjustMultilineComment:!1},newline:"\n",space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null,sourceCode:null};return null!=i?("string"==typeof i.indent&&(u.format.indent.style=i.indent),"number"==typeof i.base&&(u.format.indent.base=i.base),i=w(u,i),c=i.format.indent.style,l="string"==typeof i.base?i.base:R(c,i.format.indent.base)):(c=(i=u).format.indent.style,l=R(c,i.format.indent.base)),p=i.format.json,f=i.format.renumber,h=!p&&i.format.hexadecimal,g=p?"double":i.format.quotes,m=i.format.escapeless,y=i.format.newline,b=i.format.space,i.format.compact&&(y=b=c=l=""),v=i.format.parentheses,C=i.format.semicolons,S=i.format.safeConcatenation,N=i.directive,_=p?null:i.parse,E=i.sourceMap,I=i.sourceCode,T=i.format.preserveBlankLines&&null!==I,A=i,E&&(a=t.browser?e.sourceMap.SourceNode:n(450).SourceNode),o=ne(r),E?(s=o.toStringWithSourceMap({file:i.file,sourceRoot:i.sourceMapRoot}),i.sourceContent&&s.map.setSourceContent(i.sourceMap,i.sourceContent),i.sourceMapWithCode?s:s.map.toString()):(s={code:o.toString(),map:null},i.sourceMapWithCode?s:s.code)},t.attachComments=s.attachComments,t.Precedence=w({},i),t.browser=!1,t.FORMAT_MINIFY=D,t.FORMAT_DEFAULTS=F}()}).call(this,n(127))},function(e,t,n){e.exports=n(456)},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(7)),a=r(n(6)),s=r(n(5)),u=function(e,t,n,r){var i,u=arguments.length,d=u<3?t:null===r?r=(0,s.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,a.default)(Reflect))&&"function"==typeof Reflect.decorate)d=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(d=(u<3?i(d):u>3?i(t,n,d):i(t,n))||d);return u>3&&d&&(0,o.default)(t,n,d),d};Object.defineProperty(t,"__esModule",{value:!0});var d=function e(){(0,i.default)(this,e)};d=u([n(1).injectable()],d),t.AbstractCalleeDataExtractor=d},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(33),i=n(16),o=n(92),a=n(109),s=n(32).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){t.f=n(30)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(111),i=n(165),o=function(){function e(e){this._binding=e}return e.prototype.when=function(e){return this._binding.constraint=e,new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetNamed=function(e){return this._binding.constraint=i.namedConstraint(e),new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetIsDefault=function(){return this._binding.constraint=function(e){return null!==e.target&&!e.target.isNamed()&&!e.target.isTagged()},new r.BindingOnSyntax(this._binding)},e.prototype.whenTargetTagged=function(e,t){return this._binding.constraint=i.taggedConstraint(e)(t),new r.BindingOnSyntax(this._binding)},e.prototype.whenInjectedInto=function(e){return this._binding.constraint=function(t){return i.typeConstraint(e)(t.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenParentNamed=function(e){return this._binding.constraint=function(t){return i.namedConstraint(e)(t.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenParentTagged=function(e,t){return this._binding.constraint=function(n){return i.taggedConstraint(e)(t)(n.parentRequest)},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorIs=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.typeConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorIs=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.typeConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorNamed=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.namedConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorNamed=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.namedConstraint(e))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._binding.constraint=function(n){return i.traverseAncerstors(n,i.taggedConstraint(e)(t))},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorTagged=function(e,t){return this._binding.constraint=function(n){return!i.traverseAncerstors(n,i.taggedConstraint(e)(t))},new r.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorMatches=function(e){return this._binding.constraint=function(t){return i.traverseAncerstors(t,e)},new r.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorMatches=function(e){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,e)},new r.BindingOnSyntax(this._binding)},e}();t.BindingWhenSyntax=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(110),i=function(){function e(e){this._binding=e}return e.prototype.onActivation=function(e){return this._binding.onActivation=e,new r.BindingWhenSyntax(this._binding)},e}();t.BindingOnSyntax=i},function(e,t,n){var r=n(50),i=n(126),o=n(60),a=n(94),s=n(508);e.exports=function(e,t){var n=1==e,u=2==e,d=3==e,l=4==e,c=6==e,p=5==e||c,f=t||s;return function(t,s,h){for(var g,m,y=o(t),b=i(y),v=r(s,h,3),C=a(b.length),S=0,N=n?f(t,C):u?f(t,0):void 0;C>S;S++)if((p||S in b)&&(m=v(g=b[S],S,y),e))if(n)N[S]=m;else if(m)switch(e){case 3:return!0;case 5:return g;case 6:return S;case 2:N.push(g)}else if(l)return!1;return c?-1:d||l?l:N}}},function(e,t,n){"use strict";var r=n(33),i=n(25),o=n(59),a=n(38),s=n(44),u=n(117),d=n(70),l=n(116),c=n(26),p=n(88),f=n(32).f,h=n(112)(0),g=n(35);e.exports=function(e,t,n,m,y,b){var v=r[e],C=v,S=y?"set":"add",N=C&&C.prototype,A={};return g&&"function"==typeof C&&(b||N.forEach&&!a(function(){(new C).entries().next()}))?(C=t(function(t,n){l(t,C,e,"_c"),t._c=new v,void 0!=n&&d(n,y,t[S],t)}),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in N&&(!b||"clear"!=e)&&s(C.prototype,e,function(n,r){if(l(this,C,e),!t&&b&&!c(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),b||f(C.prototype,"size",{get:function(){return this._c.size}})):(C=m.getConstructor(t,e,y,S),u(C.prototype,n),o.NEED=!0),p(C,e),A[e]=C,i(i.G+i.W+i.F,A),b||m.setStrong(C,e,y),C}},function(e,t,n){var r=n(125),i=n(30)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var r=n(114),i=n(30)("iterator"),o=n(61);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(44);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){e.exports=n(44)},function(e,t,n){"use strict";var r=n(92),i=n(25),o=n(118),a=n(44),s=n(61),u=n(512),d=n(88),l=n(72),c=n(30)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this};e.exports=function(e,t,n,h,g,m,y){u(n,t,h);var b,v,C,S=function(e){if(!p&&e in E)return E[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},N=t+" Iterator",A="values"==g,_=!1,E=e.prototype,I=E[c]||E["@@iterator"]||g&&E[g],T=I||S(g),D=g?A?S("entries"):T:void 0,F="Array"==t&&E.entries||I;if(F&&(C=l(F.call(new e)))!==Object.prototype&&C.next&&(d(C,N,!0),r||"function"==typeof C[c]||a(C,c,f)),A&&I&&"values"!==I.name&&(_=!0,T=function(){return I.call(this)}),r&&!y||!p&&!_&&E[c]||a(E,c,T),s[t]=T,s[N]=f,g)if(b={values:A?T:S("values"),keys:m?T:S("keys"),entries:D},y)for(v in b)v in E||o(E,v,b[v]);else i(i.P+i.F*(p||_),t,b);return b}},function(e,t){},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(93)("keys"),i=n(91);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(125);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(26);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(198),i={};for(var o in r)r.hasOwnProperty(o)&&(i[r[o]]=o);var a=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var s in a)if(a.hasOwnProperty(s)){if(!("channels"in a[s]))throw new Error("missing channels property: "+s);if(!("labels"in a[s]))throw new Error("missing channel labels property: "+s);if(a[s].labels.length!==a[s].channels)throw new Error("channel and label counts mismatch: "+s);var u=a[s].channels,d=a[s].labels;delete a[s].channels,delete a[s].labels,Object.defineProperty(a[s],"channels",{value:u}),Object.defineProperty(a[s],"labels",{value:d})}a.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,a=Math.min(r,i,o),s=Math.max(r,i,o),u=s-a;return s===a?t=0:r===s?t=(i-o)/u:i===s?t=2+(o-r)/u:o===s&&(t=4+(r-i)/u),(t=Math.min(60*t,360))<0&&(t+=360),n=(a+s)/2,[t,100*(s===a?0:n<=.5?u/(s+a):u/(2-s-a)),100*n]},a.rgb.hsv=function(e){var t,n,r=e[0],i=e[1],o=e[2],a=Math.min(r,i,o),s=Math.max(r,i,o),u=s-a;return n=0===s?0:u/s*1e3/10,s===a?t=0:r===s?t=(i-o)/u:i===s?t=2+(o-r)/u:o===s&&(t=4+(r-i)/u),(t=Math.min(60*t,360))<0&&(t+=360),[t,n,s/255*1e3/10]},a.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[a.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,r))),100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},a.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},a.rgb.keyword=function(e){var t=i[e];if(t)return t;var n,o,a,s=1/0;for(var u in r)if(r.hasOwnProperty(u)){var d=r[u],l=(o=e,a=d,Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2));l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},a.rgb.lab=function(e){var t=a.rgb.xyz(e),n=t[0],r=t[1],i=t[2];return r/=100,i/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},a.hsl.rgb=function(e){var t,n,r,i,o,a=e[0]/360,s=e[1]/100,u=e[2]/100;if(0===s)return[o=255*u,o,o];t=2*u-(n=u<.5?u*(1+s):u+s-u*s),i=[0,0,0];for(var d=0;d<3;d++)(r=a+1/3*-(d-1))<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[d]=255*o;return i},a.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=o<=1?o:2-o,[t,100*(0===r?2*i/(o+i):2*n/(r+n)),100*((r+n)/2)]},a.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),a=255*r*(1-n),s=255*r*(1-n*o),u=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,u,a];case 1:return[s,r,a];case 2:return[a,r,u];case 3:return[a,s,r];case 4:return[u,a,r];case 5:return[r,a,s]}},a.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return r=(2-o)*a,n=o*s,[i,100*(n=(n/=(t=(2-o)*s)<=1?t:2-t)||0),100*(r/=2)]},a.hwb.rgb=function(e){var t,n,r,i,o,a,s,u=e[0]/360,d=e[1]/100,l=e[2]/100,c=d+l;switch(c>1&&(d/=c,l/=c),n=1-l,r=6*u-(t=Math.floor(6*u)),0!=(1&t)&&(r=1-r),i=d+r*(n-d),t){default:case 6:case 0:o=n,a=i,s=d;break;case 1:o=i,a=n,s=d;break;case 2:o=d,a=n,s=i;break;case 3:o=d,a=i,s=n;break;case 4:o=i,a=d,s=n;break;case 5:o=n,a=d,s=i}return[255*o,255*a,255*s]},a.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},a.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,a=e[2]/100;return n=-.9689*i+1.8758*o+.0415*a,r=.0557*i+-.204*o+1.057*a,t=(t=3.2406*i+-1.5372*o+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},a.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},a.lab.xyz=function(e){var t,n,r,i=e[0],o=e[1],a=e[2];t=o/500+(n=(i+16)/116),r=n-a/200;var s=Math.pow(n,3),u=Math.pow(t,3),d=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=d>.008856?d:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},a.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},a.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},a.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:a.rgb.hsv(e)[2];if(0===(i=Math.round(i/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},a.hsv.ansi16=function(e){return a.rgb.ansi16(a.hsv.rgb(e),e[2])},a.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},a.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},a.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},a.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},a.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map(function(e){return e+e}).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},a.rgb.hcg=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,a=Math.max(Math.max(r,i),o),s=Math.min(Math.min(r,i),o),u=a-s;return t=u<1?s/(1-u):0,n=u<=0?0:a===r?(i-o)/u%6:a===i?2+(o-r)/u:4+(r-i)/u+4,n/=6,[360*(n%=1),100*u,100*t]},a.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},a.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},a.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,o=[0,0,0],a=t%1*6,s=a%1,u=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=u,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=u,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=u}return i=(1-n)*r,[255*(n*o[0]+i),255*(n*o[1]+i),255*(n*o[2]+i)]},a.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},a.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},a.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},a.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},a.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},a.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},a.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},a.gray.hsl=a.gray.hsv=function(e){return[0,0,e[0]]},a.gray.hwb=function(e){return[0,100,e[0]]},a.gray.cmyk=function(e){return[0,0,0,e[0]]},a.gray.lab=function(e){return[e[0],0,0]},a.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},a.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},function(e,t,n){"use strict";(function(t){const r=n(201),i=n(200),o=n(196).stdout,a=n(195),s="win32"===t.platform&&!(t.env.TERM||"").toLowerCase().startsWith("xterm"),u=["ansi","ansi","ansi256","ansi16m"],d=new Set(["gray"]),l=Object.create(null);function c(e,t){t=t||{};const n=o?o.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function p(e){if(!this||!(this instanceof p)||this.template){const t={};return c(t,e),t.template=function(){const e=[].slice.call(arguments);return function(e,t){if(!Array.isArray(t))return[].slice.call(arguments,1).join(" ");const n=[].slice.call(arguments,2),r=[t.raw[0]];for(let e=1;e{},l);function h(e,t,n){const r=function(){return function(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;ro.level,set(e){o.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>o.enabled,set(e){o.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=f,r}Object.defineProperties(p.prototype,l),e.exports=p(),e.exports.supportsColor=o,e.exports.default=e.exports}).call(this,n(183))},function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}},h=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),m=n(4),y=h(n(213)),b=n(210),v=n(15),C=r=function(){function e(t,n){(0,o.default)(this,e),this.sourceCode=t,this.options=n}return(0,a.default)(e,[{key:"initialize",value:function(){var e,t,n,r=this;this.seed=0!==this.options.seed?this.options.seed:(e=0,t=999999999,Math.floor(Math.random()*(t-e+1)+e)),this.randomGenerator=new b.Chance((n=y.default(r.sourceCode.getSourceCode()),r.seed+Number(n.replace(/\D/g,""))))}},{key:"getMathRandom",value:function(){return this.getRandomInteger(0,99999)/1e5}},{key:"getRandomFloat",value:function(e,t){return this.getRandomGenerator().floating({min:e,max:t,fixed:7})}},{key:"getRandomGenerator",value:function(){return this.randomGenerator}},{key:"getRandomInteger",value:function(e,t){return this.getRandomGenerator().integer({min:e,max:t})}},{key:"getRandomString",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.randomGeneratorPool;return this.getRandomGenerator().string({length:e,pool:t})}},{key:"getSeed",value:function(){return this.seed}}]),e}();C.randomGeneratorPool="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",c([v.initializable(),p("design:type",Object)],C.prototype,"randomGenerator",void 0),c([v.initializable(),p("design:type",Number)],C.prototype,"seed",void 0),c([g.postConstruct(),p("design:type",Function),p("design:paramtypes",[]),p("design:returntype",void 0)],C.prototype,"initialize",null),C=r=c([g.injectable(),f(0,g.inject(m.ServiceIdentifiers.ISourceCode)),f(1,g.inject(m.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Object,Object])],C),t.RandomGenerator=C},function(e,t,n){"use strict";var r=n(0),i=r(n(56)),o=r(n(55)),a=r(n(66)),s=r(n(22)),u=r(n(2)),d=r(n(3)),l=r(n(8)),c=r(n(7)),p=r(n(6)),f=r(n(5)),h=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,c.default)(t,n,a),a},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),b=n(4),v=n(15),C=function(){function e(t,n){(0,u.default)(this,e),this.randomGenerator=t,this.options=n}return(0,d.default)(e,[{key:"initialize",value:function(){this.storage=new s.default,this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage.get(e);if(!t)throw new Error("No value found in map storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,s=(0,a.default)(this.storage);!(t=(i=s.next()).done);t=!0){var u=(0,o.default)(i.value,2),d=u[0];if(e===u[1])return d}}catch(e){n=!0,r=e}finally{try{t||null==s.return||s.return()}finally{if(n)throw r}}return null}},{key:"getLength",value:function(){return this.storage.size}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"has",value:function(e){return this.storage.has(e)}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=new s.default((0,i.default)(this.storage).concat((0,i.default)(e.getStorage()))),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){this.storage.set(e,t)}}]),e}();h([v.initializable(),g("design:type",String)],C.prototype,"storageId",void 0),h([v.initializable(),g("design:type",s.default)],C.prototype,"storage",void 0),h([y.postConstruct(),g("design:type",Function),g("design:paramtypes",[]),g("design:returntype",void 0)],C.prototype,"initialize",null),C=h([y.injectable(),m(0,y.inject(b.ServiceIdentifiers.IRandomGenerator)),m(1,y.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object])],C),t.MapStorage=C},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BlackListNodeGuard="BlackListNodeGuard",e.ConditionalCommentNodeGuard="ConditionalCommentNodeGuard"}(t.ObfuscatingGuard||(t.ObfuscatingGuard={}))},function(e,t,n){"use strict";var r=n(0)(n(150));Object.defineProperty(t,"__esModule",{value:!0});var i=n(84),o=n(45),a=n(83);t.DEFAULT_PRESET=(0,r.default)({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:!1,disableConsoleOutput:!1,domainLock:[],exclude:[],identifierNamesGenerator:i.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",inputFileName:"",log:!1,renameGlobals:!1,reservedNames:[],rotateStringArray:!0,seed:0,selfDefending:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:a.SourceMapMode.Separate,stringArray:!0,stringArrayEncoding:!1,stringArrayThreshold:.75,target:o.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(52),i=function(){function e(e,t,n){void 0===n&&(n=!1),this.target=e,this.name=t,this.async=n}return Object.defineProperty(e.prototype,"instance",{get:function(){return r.getFromContainer(this.target)},enumerable:!0,configurable:!0}),e}();t.ConstraintMetadata=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("["+t+"]+","g"),"")};var r,i=n(12),o=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,o.default)(e);for(var n=t?new RegExp("["+t+"]"):/\s/,r=e.length-1;r>=0&&n.test(e[r]);r--);return r=t.min,i=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||et.gt;return n.test(e)&&r&&i&&u&&d};var r,i=n(12),o=(r=i)&&r.__esModule?r:{default:r};var a=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,s=/^[-+]?[0-9]+$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){(0,a.default)(e);var n=void 0,i=void 0;"object"===(void 0===t?"undefined":r(t))?(n=t.min||0,i=t.max):(n=arguments[1],i=arguments[2]);var o=encodeURI(e).split(/%..|./).length-1;return o>=n&&(void 0===i||o<=i)};var i,o=n(12),a=(i=o)&&i.__esModule?i:{default:i};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,o.default)(e),parseFloat(e)};var r,i=n(12),o=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.toString=function(e,t,n){var r=this;void 0===e&&(e=!1),void 0===t&&(t=!1),void 0===n&&(n="");var i=e?"":"",o=e?"":"",a=function(e){return" - property "+i+n+e+o+" has failed the following constraints: "+i+Object.keys(r.constraints).join(", ")+o+" \n"};if(t){var s=Number.isInteger(+this.property)?"["+this.property+"]":(n?".":"")+this.property;return this.constraints?a(s):this.children.map(function(t){return t.toString(e,!0,""+n+s)}).join("")}return"An instance of "+i+(this.target?this.target.constructor.name:"an object")+o+" has failed the validation:\n"+(this.constraints?a(this.property):"")+this.children.map(function(t){return t.toString(e,!0,r.property)}).join("")},e}();t.ValidationError=r},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{u(r.next(e))}catch(e){o(e)}}function s(e){try{u(r.throw(e))}catch(e){o(e)}}function u(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(a,s)}u((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=0},e.prototype.isNumber=function(e,t){return void 0===t&&(t={}),e===1/0||e===-1/0?t.allowInfinity:Number.isNaN(e)?t.allowNaN:Number.isFinite(e)},e.prototype.isInt=function(e){return Number.isInteger(e)},e.prototype.isDivisibleBy=function(e,t){return"number"==typeof e&&"number"==typeof t&&this.validatorJs.isDivisibleBy(String(e),t)},e.prototype.isPositive=function(e){return"number"==typeof e&&e>0},e.prototype.isNegative=function(e){return"number"==typeof e&&e<0},e.prototype.min=function(e,t){return"number"==typeof e&&"number"==typeof t&&e>=t},e.prototype.max=function(e,t){return"number"==typeof e&&"number"==typeof t&&e<=t},e.prototype.minDate=function(e,t){return e&&e.getTime()>=t.getTime()},e.prototype.maxDate=function(e,t){return e&&e.getTime()<=t.getTime()},e.prototype.isBooleanString=function(e){return"string"==typeof e&&this.validatorJs.isBoolean(e)},e.prototype.isNumberString=function(e){return"string"==typeof e&&this.validatorJs.isNumeric(e)},e.prototype.contains=function(e,t){return"string"==typeof e&&this.validatorJs.contains(e,t)},e.prototype.notContains=function(e,t){return"string"==typeof e&&!this.validatorJs.contains(e,t)},e.prototype.isAlpha=function(e){return"string"==typeof e&&this.validatorJs.isAlpha(e)},e.prototype.isAlphanumeric=function(e){return"string"==typeof e&&this.validatorJs.isAlphanumeric(e)},e.prototype.isAscii=function(e){return"string"==typeof e&&this.validatorJs.isAscii(e)},e.prototype.isBase64=function(e){return"string"==typeof e&&this.validatorJs.isBase64(e)},e.prototype.isByteLength=function(e,t,n){return"string"==typeof e&&this.validatorJs.isByteLength(e,t,n)},e.prototype.isCreditCard=function(e){return"string"==typeof e&&this.validatorJs.isCreditCard(e)},e.prototype.isCurrency=function(e,t){return"string"==typeof e&&this.validatorJs.isCurrency(e,t)},e.prototype.isEmail=function(e,t){return"string"==typeof e&&this.validatorJs.isEmail(e,t)},e.prototype.isFQDN=function(e,t){return"string"==typeof e&&this.validatorJs.isFQDN(e,t)},e.prototype.isFullWidth=function(e){return"string"==typeof e&&this.validatorJs.isFullWidth(e)},e.prototype.isHalfWidth=function(e){return"string"==typeof e&&this.validatorJs.isHalfWidth(e)},e.prototype.isVariableWidth=function(e){return"string"==typeof e&&this.validatorJs.isVariableWidth(e)},e.prototype.isHexColor=function(e){return"string"==typeof e&&this.validatorJs.isHexColor(e)},e.prototype.isHexadecimal=function(e){return"string"==typeof e&&this.validatorJs.isHexadecimal(e)},e.prototype.isIP=function(e,t){return"string"==typeof e&&this.validatorJs.isIP(e,t)},e.prototype.isISBN=function(e,t){return"string"==typeof e&&this.validatorJs.isISBN(e,t)},e.prototype.isISIN=function(e){return"string"==typeof e&&this.validatorJs.isISIN(e)},e.prototype.isISO8601=function(e){return"string"==typeof e&&this.validatorJs.isISO8601(e)},e.prototype.isJSON=function(e){return"string"==typeof e&&this.validatorJs.isJSON(e)},e.prototype.isLowercase=function(e){return"string"==typeof e&&this.validatorJs.isLowercase(e)},e.prototype.isMobilePhone=function(e,t){return"string"==typeof e&&this.validatorJs.isMobilePhone(e,t)},e.prototype.isPhoneNumber=function(e,t){try{var n=this.libPhoneNumber.phoneUtil.parseAndKeepRawInput(e,t);return this.libPhoneNumber.phoneUtil.isValidNumber(n)}catch(e){return!1}},e.prototype.isMongoId=function(e){return"string"==typeof e&&this.validatorJs.isMongoId(e)},e.prototype.isMultibyte=function(e){return"string"==typeof e&&this.validatorJs.isMultibyte(e)},e.prototype.isSurrogatePair=function(e){return"string"==typeof e&&this.validatorJs.isSurrogatePair(e)},e.prototype.isURL=function(e,t){return"string"==typeof e&&this.validatorJs.isURL(e,t)},e.prototype.isUUID=function(e,t){return"string"==typeof e&&this.validatorJs.isUUID(e,t)},e.prototype.isUppercase=function(e){return"string"==typeof e&&this.validatorJs.isUppercase(e)},e.prototype.length=function(e,t,n){return"string"==typeof e&&this.validatorJs.isLength(e,t,n)},e.prototype.minLength=function(e,t){return"string"==typeof e&&this.length(e,t)},e.prototype.maxLength=function(e,t){return"string"==typeof e&&this.length(e,0,t)},e.prototype.matches=function(e,t,n){return"string"==typeof e&&this.validatorJs.matches(e,t,n)},e.prototype.isMilitaryTime=function(e){return this.matches(e,/^([01]\d|2[0-3]):?([0-5]\d)$/)},e.prototype.arrayContains=function(e,t){return e instanceof Array&&(!e||t.every(function(t){return-1!==e.indexOf(t)}))},e.prototype.arrayNotContains=function(e,t){return e instanceof Array&&(!e||t.every(function(t){return-1===e.indexOf(t)}))},e.prototype.arrayNotEmpty=function(e){return e instanceof Array&&(e instanceof Array&&e.length>0)},e.prototype.arrayMinSize=function(e,t){return e instanceof Array&&(e instanceof Array&&e.length>=t)},e.prototype.arrayMaxSize=function(e,t){return e instanceof Array&&(e instanceof Array&&e.length<=t)},e.prototype.arrayUnique=function(e){if(!(e instanceof Array))return!1;var t=e.filter(function(e,t,n){return n.indexOf(e)===t});return e.length===t.length},e.prototype.isInstance=function(e,t){return t&&"function"==typeof t&&e instanceof t},e}();t.Validator=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BooleanLiteralObfuscatingReplacer="BooleanLiteralObfuscatingReplacer",e.NumberLiteralObfuscatingReplacer="NumberLiteralObfuscatingReplacer",e.StringLiteralObfuscatingReplacer="StringLiteralObfuscatingReplacer"}(t.LiteralObfuscatingReplacer||(t.LiteralObfuscatingReplacer={}))},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(8)),s=r(n(7)),u=r(n(6)),d=r(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(4),g=function(){function e(t,n){(0,i.default)(this,e),this.randomGenerator=t,this.options=n}return(0,o.default)(e,[{key:"isValidIdentifierName",value:function(e){return!this.options.reservedNames.length||!this.options.reservedNames.some(function(t){return null!==new RegExp(t,"g").exec(e)})}}]),e}();g=l([f.injectable(),p(0,f.inject(h.ServiceIdentifiers.IRandomGenerator)),p(1,f.inject(h.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Object,Object])],g),t.AbstractIdentifierNamesGenerator=g},function(e,t,n){e.exports=n(351)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.ConsoleOutputCustomNodeGroup="ConsoleOutputCustomNodeGroup",e.DebugProtectionCustomNodeGroup="DebugProtectionCustomNodeGroup",e.DomainLockCustomNodeGroup="DomainLockCustomNodeGroup",e.SelfDefendingCustomNodeGroup="SelfDefendingCustomNodeGroup",e.StringArrayCustomNodeGroup="StringArrayCustomNodeGroup"}(t.CustomNodeGroup||(t.CustomNodeGroup={}))},function(e,t,n){"use strict";var r,i=n(0),o=i(n(55)),a=i(n(22)),s=i(n(2)),u=i(n(3)),d=i(n(8)),l=i(n(7)),c=i(n(6)),p=i(n(5)),f=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,l.default)(t,n,a),a},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=n(47),v=n(20),C=n(13),S=n(14),N=r=function(){function e(t,n){(0,s.default)(this,e),this.cachedHostScopesMap=new a.default,this.cachedHostStatementsMap=new a.default,this.randomGenerator=t,this.options=n}return(0,u.default)(e,[{key:"extractPropertiesToExpressionStatements",value:function(e,t){for(var n=e.length,i=[],o=[],a=0;a=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,l.default)(t,n,a),a},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=n(40),v=n(101),C=n(13),S=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,a.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,o.default)(t,[{key:"getControlFlowStorageCallNode",value:function(e,t,n,r){var i=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);i.initialize(e,t,n,r);var o=i.getNode()[0];if(!o||!C.NodeGuards.isExpressionStatementNode(o))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return o.expression}}]),t}(v.AbstractControlFlowReplacer);S=f([m.injectable(),g(0,m.inject(y.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,m.inject(y.ServiceIdentifiers.IRandomGenerator)),g(2,m.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],S),t.ExpressionWithOperatorControlFlowReplacer=S},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",e.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",e.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",e.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"}(t.ControlFlowReplacer||(t.ControlFlowReplacer={}))},function(e,t,n){"use strict";var r=n(73),i=n(107),o=n(89),a=n(60),s=n(126),u=Object.assign;e.exports=!u||n(38)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=a(e),u=arguments.length,d=1,l=i.f,c=o.f;u>d;)for(var p,f=s(arguments[d++]),h=l?r(f).concat(l(f)):r(f),g=h.length,m=0;g>m;)c.call(f,p=h[m++])&&(n[p]=f[p]);return n}:u},function(e,t,n){"use strict";e.exports={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression",JSXIdentifier:"JSXIdentifier",JSXNamespacedName:"JSXNamespacedName",JSXMemberExpression:"JSXMemberExpression",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXElement:"JSXElement",JSXClosingElement:"JSXClosingElement",JSXOpeningElement:"JSXOpeningElement",JSXAttribute:"JSXAttribute",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportAllDeclaration:"ExportAllDeclaration",ExportSpecifier:"ExportSpecifier",ImportDeclaration:"ImportDeclaration",ImportSpecifier:"ImportSpecifier",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier"}},function(e,t,n){"use strict";var r,i,o,a=n(159),s=n(445),u=n(444),d=n(443)(n(441)),l=5;function c(){i={tokens:null,range:!1,loc:!1,comment:!1,comments:[],tolerant:!1,errors:[],strict:!1,ecmaFeatures:{},ecmaVersion:l,isModule:!1}}var p=d.tokTypes,f=d.getLineInfo;function h(e){if("number"!=typeof e)return l;var t=e;switch(t>=2015&&(t-=2009),t){case 3:case 5:case 6:case 7:case 8:case 9:case 10:return t;default:throw new Error("Invalid ecmaVersion.")}}function g(e){if(function(e){switch(e.type){case"ImportDeclaration":case"ExportNamedDeclaration":case"ExportDefaultDeclaration":case"ExportAllDeclaration":return i.isModule;default:return!0}}(e)||this.unexpected(e.start),"TemplateElement"===e.type){var t="${"===this.input.slice(e.end,e.end+2);e.range&&(e.range[0]--,e.range[1]+=t?2:1),e.loc&&(e.loc.start.column--,e.loc.end.column+=t?2:1)}return i.attachComment&&s.processComment(e),e.type.indexOf("Function")>-1&&!e.generator&&(e.generator=!1),e}function m(e){return function(t,n,r,i){var o=e.call(this,t,n,r,i);return g.call(this,o)}}function y(e,t,n,r,i,o){var a={type:e?"Block":"Line",value:t};return"number"==typeof n&&(a.start=n,a.end=r,a.range=[n,r]),"object"==typeof i&&(a.loc={start:i,end:o}),a}p.jsxAttrValueToken={},d.plugins.espree=function(e){e.extend("finishNode",m),e.extend("finishNodeAt",m),e.extend("next",function(e){return function(){return function(e){var t=i.ecmaFeatures;switch(e.type){case p.jsxName:case p.jsxText:case p.jsxTagStart:case p.jsxTagEnd:return t.jsx;case p.regexp:return!(i.ecmaVersion<6&&e.value.flags&&e.value.flags.indexOf("y")>-1);default:return!0}}(this)||this.unexpected(),e.call(this)}}),e.extend("parseTopLevel",function(e){return function(t){return i.ecmaFeatures.impliedStrict&&this.options.ecmaVersion>=5&&(this.strict=!0),e.call(this,t)}}),e.raise=e.raiseRecoverable=function(e,t){var n=f(this.input,e),r=new SyntaxError(t);throw r.index=e,r.lineNumber=n.line,r.column=n.column+1,r},e.unexpected=function(e){var t="Unexpected token";if(null!==e&&void 0!==e){if(this.pos=e,this.options.locations)for(;this.posthis.start&&(t+=" "+this.input.slice(this.start,this.end)),this.raise(this.start,t)},e.extend("jsx_readString",function(e){return function(t){var n=e.call(this,t);return this.type===p.string&&(i.jsxAttrValueToken=!0),n}})},t.version=n(440).version,t.tokenize=function(e,t){var n,o,a,s=new u(p,e);n=String,"string"==typeof e||e instanceof String||(e=n(e)),r=null,t=Object.assign({},t);var f={ecmaVersion:l,plugins:{espree:!0}};c(),t.tokens=!0,i.tokens=[],i.range="boolean"==typeof t.range&&t.range,f.ranges=i.range,i.loc="boolean"==typeof t.loc&&t.loc,f.locations=i.loc,i.comment="boolean"==typeof t.comment&&t.comment,i.comment&&(f.onComment=function(){var e=y.apply(this,arguments);i.comments.push(e)}),i.tolerant="boolean"==typeof t.tolerant&&t.tolerant,f.ecmaVersion=i.ecmaVersion=h(t.ecmaVersion),t.ecmaFeatures&&"object"==typeof t.ecmaFeatures&&(i.ecmaFeatures=Object.assign({},t.ecmaFeatures),a=i.ecmaFeatures.impliedStrict,i.ecmaFeatures.impliedStrict="boolean"==typeof a&&a);try{for(var g=d.tokenizer(e,f);(r=g.getToken()).type!==p.eof;)s.onToken(r,i);o=i.tokens,i.comment&&(o.comments=i.comments),i.tolerant&&(o.errors=i.errors)}catch(e){throw e}return o},t.parse=function(e,t){var n,r,a,f=String,g={ecmaVersion:l,plugins:{espree:!0}};return o=null,"string"==typeof e||e instanceof String||(e=f(e)),c(),s.reset(),void 0!==t&&(i.range="boolean"==typeof t.range&&t.range,i.loc="boolean"==typeof t.loc&&t.loc,i.attachComment="boolean"==typeof t.attachComment&&t.attachComment,i.loc&&null!==t.source&&void 0!==t.source&&(i.source=f(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(i.tokens=[],r=new u(p,e)),"boolean"==typeof t.comment&&t.comment&&(i.comment=!0,i.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(i.errors=[]),i.attachComment&&(i.range=!0,i.comments=[],s.reset()),g.ecmaVersion=i.ecmaVersion=h(t.ecmaVersion),"module"===t.sourceType&&(i.isModule=!0,g.ecmaVersion<6&&(g.ecmaVersion=6,i.ecmaVersion=6),g.sourceType="module"),t.ecmaFeatures&&"object"==typeof t.ecmaFeatures&&(i.ecmaFeatures=Object.assign({},t.ecmaFeatures),a=i.ecmaFeatures.impliedStrict,i.ecmaFeatures.impliedStrict="boolean"==typeof a&&a,t.ecmaFeatures.globalReturn&&(g.allowReturnOutsideFunction=!0)),g.onToken=function(e){i.tokens&&r.onToken(e,i),e.type!==p.eof&&(o=e)},(i.attachComment||i.comment)&&(g.onComment=function(){var e=y.apply(this,arguments);i.comments.push(e),i.attachComment&&s.addComment(e)}),i.range&&(g.ranges=!0),i.loc&&(g.locations=!0),i.ecmaFeatures.jsx&&(g.plugins={jsx:!0,espree:!0})),(n=d.parse(e,g)).sourceType=i.isModule?"module":"script",(i.comment||i.attachComment)&&(n.comments=i.comments),i.tokens&&(n.tokens=i.tokens),n.range&&(n.range[0]=n.body.length?n.body[0].range[0]:n.range[0],n.range[1]=o?o.range[1]:n.range[1]),n.loc&&(n.loc.start=n.body.length?n.body[0].loc.start:n.loc.start,n.loc.end=o?o.loc.end:n.loc.end),n},t.Syntax=function(){var e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),a)a.hasOwnProperty(e)&&(t[e]=a[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}(),t.VisitorKeys=function(){var e,t=n(439),r={};for(e in"function"==typeof Object.create&&(r=Object.create(null)),t)t.hasOwnProperty(e)&&(r[e]=t[e]);return"function"==typeof Object.freeze&&Object.freeze(r),r}()},function(e,t){!function(){"use strict";var t,n,r,i,o,a;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},r=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),a=0;a<128;++a)i[a]=a>=97&&a<=122||a>=65&&a<=90||36===a||95===a;for(o=new Array(128),a=0;a<128;++a)o[a]=a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||36===a||95===a;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&r.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:n.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?o[e]:n.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?o[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},function(e,t,n){var r=n(182),i=n(121).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(49),i=n(162).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(r(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",e.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",e.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"}(t.CalleeDataExtractor||(t.CalleeDataExtractor={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23),i=n(31),o=function(e,t){var n=e.parentRequest;return null!==n&&(!!t(n)||o(n,t))};t.traverseAncerstors=o;var a=function(e){return function(t){var n=function(n){return null!==n&&null!==n.target&&n.target.matchesTag(e)(t)};return n.metaData=new i.Metadata(e,t),n}};t.taggedConstraint=a;var s=a(r.NAMED_TAG);t.namedConstraint=s;t.typeConstraint=function(e){return function(t){var n=null;if(null!==t){if(n=t.bindings[0],"string"==typeof e)return n.serviceIdentifier===e;var r=t.bindings[0].implementationType;return e===r}return!1}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(111),i=n(110),o=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new i.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new r.BindingOnSyntax(this._binding)}return e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e}();t.BindingWhenOnSyntax=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(23),i=n(48),o=n(31),a=n(495),s=function(){function e(e,t,n,s){this.guid=i.guid(),this.type=e,this.serviceIdentifier=n,this.name=new a.QueryableString(t||""),this.metadata=new Array;var u=null;"string"==typeof s?u=new o.Metadata(r.NAMED_TAG,s):s instanceof o.Metadata&&(u=s),null!==u&&this.metadata.push(u)}return e.prototype.hasTag=function(e){for(var t=0,n=this.metadata;t1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(h(this,t),e)}}),p&&r(l.prototype,"size",{get:function(){return h(this,t)[g]}}),l},def:function(e,t,n){var r,i,o=m(e,t);return o?o.v=n:(e._l=o={i:i=f(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[g]++,"F"!==i&&(e._i[i]=o)),e},getEntry:m,setStrong:function(e,t,n){d(e,t,function(e,n){this._t=h(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),c(t)}}},function(e,t,n){"use strict";var r=n(177),i=n(69);e.exports=n(113)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports=n(517)},function(e,t,n){var r=n(180);function i(t,n){return e.exports=i=r||function(e,t){return e.__proto__=t,e},i(t,n)}e.exports=i},function(e,t,n){var r=n(37),i=n(49),o=n(522)(!1),a=n(122)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),u=0,d=[];for(n in s)n!=a&&r(s,n)&&d.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~o(d,n)||d.push(n));return d}},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,d=[],l=!1,c=-1;function p(){l&&u&&(l=!1,u.length?d=u.concat(d):c=-1,d.length&&f())}function f(){if(!l){var e=s(p);l=!0;for(var t=d.length;t;){for(u=d,d=[];++c1)for(var n=1;n=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}},f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),g=n(4),m=f(n(24)),y=n(186),b=n(13),v=n(28),C=function(){function e(t){(0,i.default)(this,e),this.nodeTransformerFactory=t}return(0,o.default)(e,[{key:"transform",value:function(e,t,n){if(!t.length)return e;for(var r,i=[],o=[],a=t.length,s=0;s=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(4),g=n(83),m=function(){function e(t,n,r){(0,i.default)(this,e),this.obfuscationResultFactory=t,this.cryptUtils=n,this.options=r}return(0,o.default)(e,[{key:"correct",value:function(e,t){return this.obfuscationResultFactory(this.correctObfuscatedCode(e,t),t)}},{key:"correctObfuscatedCode",value:function(e,t){if(!t)return e;var n=this.options.sourceMapBaseUrl+this.options.sourceMapFileName,r="//# sourceMappingURL=";switch(this.options.sourceMapMode){case g.SourceMapMode.Inline:r+="data:application/json;base64,".concat(this.cryptUtils.btoa(t));break;case g.SourceMapMode.Separate:default:if(!n)return e;r+=n}return"".concat(e,"\n").concat(r)}}]),e}();m=l([f.injectable(),p(0,f.inject(h.ServiceIdentifiers.Factory__IObfuscationResult)),p(1,f.inject(h.ServiceIdentifiers.ICryptUtils)),p(2,f.inject(h.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Function,Object,Object])],m),t.SourceMapCorrector=m},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(t){(0,i.default)(this,e),this.sourceCode=t}return(0,o.default)(e,[{key:"getSourceCode",value:function(){return this.sourceCode}}]),e}();t.SourceCode=a},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(8)),s=r(n(7)),u=r(n(6)),d=r(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),f=n(15),h=function(){function e(){(0,i.default)(this,e)}return(0,o.default)(e,[{key:"initialize",value:function(e,t){this.obfuscatedCode=e,this.sourceMap=t}},{key:"getObfuscatedCode",value:function(){return this.obfuscatedCode}},{key:"getSourceMap",value:function(){return this.sourceMap}},{key:"toString",value:function(){return this.obfuscatedCode}}]),e}();l([f.initializable(),c("design:type",String)],h.prototype,"obfuscatedCode",void 0),l([f.initializable(),c("design:type",String)],h.prototype,"sourceMap",void 0),h=l([p.injectable()],h),t.ObfuscationResult=h},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,a,s,u,d;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(o(n=this._events[e]))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),n.apply(this,s)}else if(i(n))for(s=Array.prototype.slice.call(arguments,1),a=(d=n.slice()).length,u=0;u0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},n.prototype.removeListener=function(e,t){var n,o,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(n=this._events[e]).length,o=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){o=s;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(11)),a=r(n(9)),s=r(n(10)),u=r(n(7)),d=r(n(6)),l=r(n(5)),c=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),f=n(191);p.decorate(p.injectable(),f.EventEmitter);var h=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(0,a.default)(t).apply(this,arguments))}return(0,s.default)(t,e),t}(f.EventEmitter);h=c([p.injectable()],h),t.ObfuscationEventEmitter=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Base="[javascript-obfuscator]",e.CLI="[javascript-obfuscator-cli]"}(t.LoggingPrefix||(t.LoggingPrefix={}))},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(8)),u=i(n(7)),d=i(n(6)),l=i(n(5)),c=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}},h=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),m=n(4),y=h(n(130)),b=n(193),v=r=function(){function e(t){(0,o.default)(this,e),this.options=t}return(0,a.default)(e,[{key:"info",value:function(e,t){this.options.log&&r.log(r.colorInfo,b.LoggingPrefix.Base,e,t)}},{key:"success",value:function(e,t){this.options.log&&r.log(r.colorSuccess,b.LoggingPrefix.Base,e,t)}},{key:"warn",value:function(e,t){this.options.log&&r.log(r.colorWarn,b.LoggingPrefix.Base,e,t)}}],[{key:"log",value:function(e,t,n,r){var i=e("\n".concat(t," ").concat(n));console.log(i,r||"")}}]),e}();v.colorInfo=y.default.cyan,v.colorSuccess=y.default.green,v.colorWarn=y.default.yellow,v=r=c([g.injectable(),f(0,g.inject(m.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Object])],v),t.Logger=v},function(e,t,n){"use strict";const r=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,i=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,o=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,a=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,s=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function u(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):s.get(e)||e}function d(e,t){const n=[],r=t.trim().split(/\s*,\s*/g);let i;for(const t of r)if(isNaN(t)){if(!(i=t.match(o)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(i[2].replace(a,(e,t,n)=>t?u(t):n))}else n.push(Number(t));return n}function l(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error(`Unknown Chalk style: ${e}`);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}e.exports=((e,t)=>{const n=[],o=[];let a=[];if(t.replace(r,(t,r,s,c,p,f)=>{if(r)a.push(u(r));else if(c){const t=a.join("");a=[],o.push(0===n.length?t:l(e,n)(t)),n.push({inverse:s,styles:function(e){i.lastIndex=0;const t=[];let n;for(;null!==(n=i.exec(e));){const e=n[1];if(n[2]){const r=d(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}(c)})}else if(p){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");o.push(l(e,n)(a.join(""))),a=[],n.pop()}else a.push(f)}),o.push(a.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return o.join("")})},function(e,t,n){"use strict";e.exports={stdout:!1,stderr:!1}},function(e,t,n){var r=n(129);function i(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,i=0;i1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})}),e.exports=o},function(e,t,n){"use strict";(function(e){const t=n(199),r=(e,n)=>(function(){return`[${e.apply(t,arguments)+n}m`}),i=(e,n)=>(function(){const r=e.apply(t,arguments);return`[${38+n};5;${r}m`}),o=(e,n)=>(function(){const r=e.apply(t,arguments);return`[${38+n};2;${r[0]};${r[1]};${r[2]}m`});Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,n={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};n.color.grey=n.color.gray;for(const t of Object.keys(n)){const r=n[t];for(const t of Object.keys(r)){const i=r[t];n[t]={open:`[${i[0]}m`,close:`[${i[1]}m`},r[t]=n[t],e.set(i[0],i[1])}Object.defineProperty(n,t,{value:r,enumerable:!1}),Object.defineProperty(n,"codes",{value:e,enumerable:!1})}const a=e=>e,s=(e,t,n)=>[e,t,n];n.color.close="",n.bgColor.close="",n.color.ansi={ansi:r(a,0)},n.color.ansi256={ansi256:i(a,0)},n.color.ansi16m={rgb:o(s,0)},n.bgColor.ansi={ansi:r(a,10)},n.bgColor.ansi256={ansi256:i(a,10)},n.bgColor.ansi16m={rgb:o(s,10)};for(let e of Object.keys(t)){if("object"!=typeof t[e])continue;const a=t[e];"ansi16"===e&&(e="ansi"),"ansi16"in a&&(n.color.ansi[e]=r(a.ansi16,0),n.bgColor.ansi[e]=r(a.ansi16,10)),"ansi256"in a&&(n.color.ansi256[e]=i(a.ansi256,0),n.bgColor.ansi256[e]=i(a.ansi256,10)),"rgb"in a&&(n.color.ansi16m[e]=o(a.rgb,0),n.bgColor.ansi16m[e]=o(a.rgb,10))}return n}})}).call(this,n(87)(e))},function(e,t,n){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),o=r(n(2)),a=r(n(3)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},u=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var d=s(n(160)),l=u(n(130)),c=function(){function e(){(0,o.default)(this,e)}return(0,a.default)(e,null,[{key:"parse",value:function(t,n){for(var r=e.sourceTypes.length,i=0;i"),u="...".concat(i.substring(o,a).replace(/^\s+/,""),"...");throw new Error("Line ".concat(r.line,": ").concat(n,"\n").concat(s," ").concat(u))}}]),e}();c.colorError=l.default.red,c.nearestSymbolsCount=15,c.sourceTypes=["script","module"],t.EspreeFacade=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.TransformationStage="Transformation stage: %s...",e.Version="Version: %s"}(t.LoggingMessage||(t.LoggingMessage={}))},function(e,t,n){"use strict";var r,i=n(0),o=i(n(17)),a=i(n(2)),s=i(n(3)),u=i(n(8)),d=i(n(7)),l=i(n(6)),c=i(n(5)),p=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,d.default)(t,n,a),a},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=g(n(104)),v=n(203),C=n(58),S=n(18),N=n(202),A=n(13),_=r=function(){function e(t,n,r,i,o){(0,a.default)(this,e),this.transformersRunner=t,this.sourceMapCorrector=n,this.randomGenerator=r,this.logger=i,this.options=o}return(0,s.default)(e,[{key:"obfuscate",value:function(e){var t=Date.now();this.logger.info(v.LoggingMessage.Version,"0.17.0"),this.logger.info(v.LoggingMessage.ObfuscationStarted),this.logger.info(v.LoggingMessage.RandomGeneratorSeed,this.randomGenerator.getSeed());var n=this.parseCode(e),r=this.transformAstTree(n),i=this.generateCode(e,r),o=(Date.now()-t)/1e3;return this.logger.success(v.LoggingMessage.ObfuscationCompleted,o),this.getObfuscationResult(i)}},{key:"parseCode",value:function(e){return N.EspreeFacade.parse(e,r.espreeParseOptions)}},{key:"transformAstTree",value:function(e){return!A.NodeGuards.isProgramNode(e)||e.body.length||e.leadingComments||e.trailingComments?(e=this.runTransformationStage(e,S.TransformationStage.Preparing),this.options.deadCodeInjection&&(e=this.runTransformationStage(e,S.TransformationStage.DeadCodeInjection)),this.options.controlFlowFlattening&&(e=this.runTransformationStage(e,S.TransformationStage.ControlFlowFlattening)),e=this.runTransformationStage(e,S.TransformationStage.Converting),e=this.runTransformationStage(e,S.TransformationStage.Obfuscating),e=this.runTransformationStage(e,S.TransformationStage.Finalizing)):(this.logger.warn(v.LoggingMessage.EmptySourceCode),e)}},{key:"generateCode",value:function(e,t){var n=(0,o.default)({},r.escodegenParams);this.options.sourceMap&&(n.sourceMap=this.options.inputFileName||"sourceMap",n.sourceContent=e);var i=b.generate(t,(0,o.default)({},n,{format:{compact:this.options.compact}}));return i.map=i.map?i.map.toString():"",i}},{key:"getObfuscationResult",value:function(e){return this.sourceMapCorrector.correct(e.code,e.map)}},{key:"runTransformationStage",value:function(e,t){return this.logger.info(v.LoggingMessage.TransformationStage,t),this.transformersRunner.transform(e,r.transformersList,t)}}]),e}();_.espreeParseOptions={attachComment:!0,comment:!0,ecmaFeatures:{experimentalObjectRestSpread:!0},ecmaVersion:9,loc:!0,range:!0},_.escodegenParams={comment:!0,verbatim:"x-verbatim-property",sourceMapWithCode:!0},_.transformersList=[C.NodeTransformer.BlockStatementControlFlowTransformer,C.NodeTransformer.ClassDeclarationTransformer,C.NodeTransformer.CommentsTransformer,C.NodeTransformer.CustomNodesTransformer,C.NodeTransformer.DeadCodeInjectionTransformer,C.NodeTransformer.EvalCallExpressionTransformer,C.NodeTransformer.FunctionControlFlowTransformer,C.NodeTransformer.CatchClauseTransformer,C.NodeTransformer.FunctionDeclarationTransformer,C.NodeTransformer.FunctionTransformer,C.NodeTransformer.ImportDeclarationTransformer,C.NodeTransformer.LabeledStatementTransformer,C.NodeTransformer.LiteralTransformer,C.NodeTransformer.MemberExpressionTransformer,C.NodeTransformer.MetadataTransformer,C.NodeTransformer.MethodDefinitionTransformer,C.NodeTransformer.ObfuscatingGuardsTransformer,C.NodeTransformer.ObjectExpressionKeysTransformer,C.NodeTransformer.ObjectExpressionTransformer,C.NodeTransformer.ParentificationTransformer,C.NodeTransformer.TemplateLiteralTransformer,C.NodeTransformer.VariableDeclarationTransformer],_=r=p([m.injectable(),h(0,m.inject(y.ServiceIdentifiers.ITransformersRunner)),h(1,m.inject(y.ServiceIdentifiers.ISourceMapCorrector)),h(2,m.inject(y.ServiceIdentifiers.IRandomGenerator)),h(3,m.inject(y.ServiceIdentifiers.ILogger)),h(4,m.inject(y.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Object,Object,Object,Object,Object])],_),t.JavaScriptObfuscator=_},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),o=r(n(2)),a=r(n(3)),s=r(n(7)),u=r(n(6)),d=r(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a};Object.defineProperty(t,"__esModule",{value:!0});var c=n(1),p=function(){function e(){(0,o.default)(this,e),this.stringsCache=new i.default}return(0,a.default)(e,[{key:"encode",value:function(e,t){var n="".concat(e,"-").concat(String(t));if(this.stringsCache.has(n))return this.stringsCache.get(n);var r,i,o=new RegExp("[\\s\\S]","g"),a=new RegExp("['\"\\\\\\s]"),s=new RegExp("[\\x00-\\x7F]"),u=e.replace(o,function(e){return t||a.exec(e)?(s.exec(e)?(r="\\x",i="00"):(r="\\u",i="0000"),"".concat(r).concat((i+e.charCodeAt(0).toString(16)).slice(-i.length))):e});return this.stringsCache.set(n,u),u}}]),e}();p=l([c.injectable()],p),t.EscapeSequenceEncoder=p},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,u=(1<>1,l=-7,c=n?i-1:0,p=n?-1:1,f=e[t+c];for(c+=p,o=f&(1<<-l)-1,f>>=-l,l+=s;l>0;o=256*o+e[t+c],c+=p,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=r;l>0;a=256*a+e[t+c],c+=p,l-=8);if(0===o)o=1-d;else{if(o===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,r),o-=d}return(f?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,u,d=8*o-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,h=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+c>=1?p/u:p*Math.pow(2,1-c))*u>=2&&(a++,u/=2),a+c>=l?(s=0,a=l):a+c>=1?(s=(t*u-1)*Math.pow(2,i),a+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,i),a=0));i>=8;e[n+f]=255&s,f+=h,s/=256,i-=8);for(a=a<0;e[n+f]=255&a,f+=h,a/=256,d-=8);e[n+f-h]|=128*g}},function(e,t,n){"use strict";t.byteLength=function(e){var t=d(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=d(e),r=n[0],a=n[1],s=new o(function(e,t,n){return 3*(t+n)/4-n}(0,r,a)),u=0,l=a>0?r-4:r,c=0;c>16&255,s[u++]=t>>8&255,s[u++]=255&t;2===a&&(t=i[e.charCodeAt(c)]<<2|i[e.charCodeAt(c+1)]>>4,s[u++]=255&t);1===a&&(t=i[e.charCodeAt(c)]<<10|i[e.charCodeAt(c+1)]<<4|i[e.charCodeAt(c+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=0,s=n-i;as?s:a+16383));1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return o.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var i,o,a=[],s=t;s>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t,n){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var r=n(208),i=n(207),a=n(206);function o(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function h(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(e).length;default:if(r)return G(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var a,o=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,u/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(a=n;as&&(n=s-u),a=n;a>=0;a--){for(var d=!0,f=0;fi&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function N(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function I(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+d<=n)switch(d){case 1:c<128&&(l=c);break;case 2:128==(192&(a=e[i+1]))&&(u=(31&c)<<6|63&a)>127&&(l=u);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(u=(15&c)<<12|(63&a)<<6|63&o)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(u=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,d=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=d}return function(e){var t=e.length;if(t<=_)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return I(this,t,n);case"ascii":return x(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return N(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,o=n-t,s=Math.min(a,o),c=this.slice(r,i),l=e.slice(t,n),d=0;di)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return C(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return A(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var _=4096;function x(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",a=t;an)throw new RangeError("Trying to access beyond buffer length")}function w(e,t,n,r,i,a){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function k(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function R(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function O(e,t,n,r,a){return a||R(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function P(e,t,n,r,a){return a||R(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if(e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUInt8=function(e,t){return t||M(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||M(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||M(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||M(e,t,this.length);for(var r=this[e],i=1,a=0;++a=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||M(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readInt8=function(e,t){return t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||M(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||M(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||M(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||M(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||M(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||M(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||w(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):k(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):k(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);w(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);w(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):k(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):k(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||w(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return O(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return O(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return P(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return P(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(a<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function V(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(j,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(126))},function(e,t,n){(function(n){var r;!function(){var i=9007199254740992,a="abcdefghijklmnopqrstuvwxyz",o=a.toUpperCase(),s="0123456789abcdef";function u(e){this.name="UnsupportedError",this.message=e||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var c=Array.prototype.slice;function l(e){if(!(this instanceof l))return e||(e=null),null===e?new l:new l(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var t=0;t100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()n,"Chance: Max specified is out of range with fixed. Max should be, at most, "+n),e=d(e,{min:r,max:n});var a=(this.integer({min:e.min*t,max:e.max*t})/t).toFixed(e.fixed);return parseFloat(a)},l.prototype.integer=function(e){return f((e=d(e,{min:-9007199254740992,max:i})).min>e.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(e.max-e.min+1)+e.min)},l.prototype.natural=function(e){return"number"==typeof(e=d(e,{min:0,max:i})).numerals&&(f(e.numerals<1,"Chance: Numerals cannot be less than one."),e.min=Math.pow(10,e.numerals-1),e.max=Math.pow(10,e.numerals)-1),f(e.min<0,"Chance: Min cannot be less than zero."),this.integer(e)},l.prototype.hex=function(e){f((e=d(e,{min:0,max:i,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var t=this.natural({min:e.min,max:e.max});return"upper"===e.casing?t.toString(16).toUpperCase():t.toString(16)},l.prototype.letter=function(e){e=d(e,{casing:"lower"});var t=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===e.casing&&(t=t.toUpperCase()),t},l.prototype.string=function(e){f((e=d(e,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var t=e.length;return this.n(this.character,t,e).join("")},l.prototype.buffer=function(e){if(void 0===n)throw new u("Sorry, the buffer() function is not supported on your platform");f((e=d(e,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var t=e.length,r=this.n(this.character,t,e);return n.from(r)},l.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},l.prototype.mixin=function(e){for(var t in e)l.prototype[t]=e[t];return this},l.prototype.unique=function(e,t,n){f("function"!=typeof e,"Chance: The first argument must be a function.");var r=function(e,t){return-1!==e.indexOf(t)};n&&(r=n.comparator||r);for(var i,a=[],o=0,s=50*t,u=c.call(arguments,2);a.lengths)throw new RangeError("Chance: num is likely too large for sample set")}return a},l.prototype.n=function(e,t){f("function"!=typeof e,"Chance: The first argument must be a function."),void 0===t&&(t=1);var n=t,r=[],i=c.call(arguments,2);for(n=Math.max(0,n);n--;null)r.push(e.apply(this,i));return r},l.prototype.pad=function(e,t,n){return n=n||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(n)+e},l.prototype.pick=function(e,t){if(0===e.length)throw new RangeError("Chance: Cannot pick() from an empty array");return t&&1!==t?this.shuffle(e).slice(0,t):e[this.natural({max:e.length-1})]},l.prototype.pickone=function(e){if(0===e.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return e[this.natural({max:e.length-1})]},l.prototype.pickset=function(e,t){if(0===t)return[];if(0===e.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(t<0)throw new RangeError("Chance: Count must be a positive number");return t&&1!==t?this.shuffle(e).slice(0,t):[this.pickone(e)]},l.prototype.shuffle=function(e){for(var t,n,r=[],i=0,a=Number(e.length),o=(n=a,Array.apply(null,Array(n)).map(function(e,t){return t})),s=a-1,u=0;u0&&(i+=r)}if(0===i)throw new RangeError("Chance: No valid entries in array weights");var o,s=this.random()*i,u=0,c=-1;for(a=0;a0){if(s<=u){o=a;break}c=a}a===t.length-1&&(o=c)}var l=e[o];return(n=void 0!==n&&n)&&(e.splice(o,1),t.splice(o,1)),l},l.prototype.paragraph=function(e){var t=(e=d(e)).sentences||this.natural({min:3,max:7});return this.n(this.sentence,t).join(" ")},l.prototype.sentence=function(e){var t,n=(e=d(e)).words||this.natural({min:12,max:18}),r=e.punctuation;return t=this.n(this.word,n).join(" "),t=this.capitalize(t),!1===r||/^[\.\?;!:]$/.test(r)||(r="."),r&&(t+=r),t},l.prototype.syllable=function(e){for(var t,n=(e=d(e)).length||this.natural({min:2,max:3}),r="",i=0;i=10&&(n=0);var r=2*n+3*t[8]+4*t[7]+5*t[6]+6*t[5]+7*t[4]+8*t[3]+9*t[2]+10*t[1]+11*t[0];(r=11-r%11)>=10&&(r=0);var i=""+t[0]+t[1]+t[2]+"."+t[3]+t[4]+t[5]+"."+t[6]+t[7]+t[8]+"-"+n+r;return e.formatted?i:i.replace(/\D/g,"")},l.prototype.cnpj=function(e){e=d(e,{formatted:!0});var t=this.n(this.natural,12,{max:12}),n=2*t[11]+3*t[10]+4*t[9]+5*t[8]+6*t[7]+7*t[6]+8*t[5]+9*t[4]+2*t[3]+3*t[2]+4*t[1]+5*t[0];(n=11-n%11)<2&&(n=0);var r=2*n+3*t[11]+4*t[10]+5*t[9]+6*t[8]+7*t[7]+8*t[6]+9*t[5]+2*t[4]+3*t[3]+4*t[2]+5*t[1]+6*t[0];(r=11-r%11)<2&&(r=0);var i=""+t[0]+t[1]+"."+t[2]+t[3]+t[4]+"."+t[5]+t[6]+t[7]+"/"+t[8]+t[9]+t[10]+t[11]+"-"+n+r;return e.formatted?i:i.replace(/\D/g,"")},l.prototype.first=function(e){return e=d(e,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[e.gender.toLowerCase()][e.nationality.toLowerCase()])},l.prototype.profession=function(e){return(e=d(e)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},l.prototype.company=function(){return this.pick(this.get("company"))},l.prototype.gender=function(e){return e=d(e,{extraGenders:[]}),this.pick(["Male","Female"].concat(e.extraGenders))},l.prototype.last=function(e){if("*"===(e=d(e,{nationality:"*"})).nationality){var t=[],n=this.get("lastNames");return Object.keys(n).forEach(function(e,r){t=t.concat(n[e])}),this.pick(t)}return this.pick(this.get("lastNames")[e.nationality.toLowerCase()])},l.prototype.israelId=function(){for(var e=this.string({pool:"0123456789",length:8}),t=0,n=0;n","<=",">=","="]);e.range&&(t=e.range);var n="";return e.include_prerelease&&(n=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),t+this.rpg("3d10").join(".")+n},l.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},l.prototype.tld=function(){return this.pick(this.tlds())},l.prototype.twitter=function(){return"@"+this.word()},l.prototype.url=function(e){var t=(e=d(e,{protocol:"http",domain:this.domain(e),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(e.extensions):"",n=e.domain_prefix?e.domain_prefix+"."+e.domain:e.domain;return e.protocol+"://"+n+"/"+e.path+t},l.prototype.port=function(){return this.integer({min:0,max:65535})},l.prototype.locale=function(e){return(e=d(e)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},l.prototype.locales=function(e){return(e=d(e)).region?this.get("locale_regions"):this.get("locale_languages")},l.prototype.loremPicsum=function(e){var t=(e=d(e,{width:500,height:500,greyscale:!1,blurred:!1})).greyscale?"g/":"",n=e.blurred?"/?blur":"/?random";return"https://picsum.photos/"+t+e.width+"/"+e.height+n},l.prototype.address=function(e){return e=d(e),this.natural({min:5,max:2e3})+" "+this.street(e)},l.prototype.altitude=function(e){return e=d(e,{fixed:5,min:0,max:8848}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.areacode=function(e){e=d(e,{parens:!0});var t=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?"("+t+")":t},l.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},l.prototype.coordinates=function(e){return this.latitude(e)+", "+this.longitude(e)},l.prototype.countries=function(){return this.get("countries")},l.prototype.country=function(e){e=d(e);var t=this.pick(this.countries());return e.raw?t:e.full?t.name:t.abbreviation},l.prototype.depth=function(e){return e=d(e,{fixed:5,min:-10994,max:0}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.geohash=function(e){return e=d(e,{length:7}),this.string({length:e.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},l.prototype.geojson=function(e){return this.latitude(e)+", "+this.longitude(e)+", "+this.altitude(e)},l.prototype.latitude=function(e){return e=d(e,{fixed:5,min:-90,max:90}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.longitude=function(e){return e=d(e,{fixed:5,min:-180,max:180}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.phone=function(e){var t,n,r=this,i=function(e){var t=[];return e.sections.forEach(function(e){t.push(r.string({pool:"0123456789",length:e}))}),e.area+t.join(" ")};switch((e=d(e,{formatted:!0,country:"us",mobile:!1})).formatted||(e.parens=!1),e.country){case"fr":e.mobile?(t=this.pick(["06","07"])+r.string({pool:"0123456789",length:8}),n=e.formatted?t.match(/../g).join(" "):t):(t=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+r.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+r.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+r.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+r.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+r.string({pool:"0123456789",length:6}),"09"+r.string({pool:"0123456789",length:8})]),n=e.formatted?t.match(/../g).join(" "):t);break;case"uk":e.mobile?(t=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),n=e.formatted?i(t):i(t).replace(" ","")):(t=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),n=e.formatted?i(t):i(t).replace(" ","","g"));break;case"za":e.mobile?(t=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+r.string({pool:"0123456789",length:6}),"06"+r.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+r.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+r.string({pool:"0123456789",length:7})]),n=e.formatted||t):(t=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+r.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+r.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+r.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+r.string({pool:"0123456789",length:7})]),n=e.formatted||t);break;case"us":var a=this.areacode(e).toString(),o=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),s=this.natural({min:1e3,max:9999}).toString();n=e.formatted?a+" "+o+"-"+s:a+o+s;break;case"br":var u,c=this.pick(["11","12","13","14","15","16","17","18","19","21","22","24","27","28","31","32","33","34","35","37","38","41","42","43","44","45","46","47","48","49","51","53","54","55","61","62","63","64","65","66","67","68","69","71","73","74","75","77","79","81","82","83","84","85","86","87","88","89","91","92","93","94","95","96","97","98","99"]);u=e.mobile?"9"+r.string({pool:"0123456789",length:4}):this.natural({min:2e3,max:5999}).toString();var l=r.string({pool:"0123456789",length:4});n=e.formatted?"("+c+") "+u+"-"+l:c+u+l}return n},l.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},l.prototype.counties=function(e){return e=d(e,{country:"uk"}),this.get("counties")[e.country.toLowerCase()]},l.prototype.county=function(e){return this.pick(this.counties(e)).name},l.prototype.provinces=function(e){return e=d(e,{country:"ca"}),this.get("provinces")[e.country.toLowerCase()]},l.prototype.province=function(e){return e&&e.full?this.pick(this.provinces(e)).name:this.pick(this.provinces(e)).abbreviation},l.prototype.state=function(e){return e&&e.full?this.pick(this.states(e)).name:this.pick(this.states(e)).abbreviation},l.prototype.states=function(e){var t;switch((e=d(e,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var n=this.get("us_states_and_dc"),r=this.get("territories"),i=this.get("armed_forces");t=[],e.us_states_and_dc&&(t=t.concat(n)),e.territories&&(t=t.concat(r)),e.armed_forces&&(t=t.concat(i));break;case"it":t=this.get("country_regions")[e.country.toLowerCase()];break;case"uk":t=this.get("counties")[e.country.toLowerCase()]}return t},l.prototype.street=function(e){var t;switch((e=d(e,{country:"us",syllables:2})).country.toLowerCase()){case"us":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t+=" ",t+=e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name;break;case"it":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t=(e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name)+" "+t}return t},l.prototype.street_suffix=function(e){return e=d(e,{country:"us"}),this.pick(this.street_suffixes(e))},l.prototype.street_suffixes=function(e){return e=d(e,{country:"us"}),this.get("street_suffixes")[e.country.toLowerCase()]},l.prototype.zip=function(e){var t=this.n(this.natural,5,{max:9});return e&&!0===e.plusfour&&(t.push("-"),t=t.concat(this.n(this.natural,4,{max:9}))),t.join("")},l.prototype.ampm=function(){return this.bool()?"am":"pm"},l.prototype.date=function(e){var t,n;if(e&&(e.min||e.max)){var r=void 0!==(e=d(e,{american:!0,string:!1})).min?e.min.getTime():1,i=void 0!==e.max?e.max.getTime():864e13;n=new Date(this.integer({min:r,max:i}))}else{var a=this.month({raw:!0}),o=a.days;e&&e.month&&(o=this.get("months")[(e.month%12+12)%12].days),e=d(e,{year:parseInt(this.year(),10),month:a.numeric-1,day:this.natural({min:1,max:o}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),n=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}return t=e.american?n.getMonth()+1+"/"+n.getDate()+"/"+n.getFullYear():n.getDate()+"/"+(n.getMonth()+1)+"/"+n.getFullYear(),e.string?t:n},l.prototype.hammertime=function(e){return this.date(e).getTime()},l.prototype.hour=function(e){return f((e=d(e,{min:e&&e.twentyfour?0:1,max:e&&e.twentyfour?23:12})).min<0,"Chance: Min cannot be less than 0."),f(e.twentyfour&&e.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),f(!e.twentyfour&&e.max>12,"Chance: Max cannot be greater than 12."),f(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},l.prototype.millisecond=function(){return this.natural({max:999})},l.prototype.minute=l.prototype.second=function(e){return f((e=d(e,{min:0,max:59})).min<0,"Chance: Min cannot be less than 0."),f(e.max>59,"Chance: Max cannot be greater than 59."),f(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},l.prototype.month=function(e){f((e=d(e,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),f(e.max>12,"Chance: Max cannot be greater than 12."),f(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=this.pick(this.months().slice(e.min-1,e.max));return e.raw?t:t.name},l.prototype.months=function(){return this.get("months")},l.prototype.second=function(){return this.natural({max:59})},l.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},l.prototype.weekday=function(e){var t=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(e=d(e,{weekday_only:!1})).weekday_only||(t.push("Saturday"),t.push("Sunday")),this.pickone(t)},l.prototype.year=function(e){return(e=d(e,{min:(new Date).getFullYear()})).max=void 0!==e.max?e.max:e.min+100,this.natural(e).toString()},l.prototype.cc=function(e){var t,n,r;return n=(t=(e=d(e)).type?this.cc_type({name:e.type,raw:!0}):this.cc_type({raw:!0})).prefix.split(""),r=t.length-t.prefix.length-1,(n=n.concat(this.n(this.integer,r,{min:0,max:9}))).push(this.luhn_calculate(n.join(""))),n.join("")},l.prototype.cc_types=function(){return this.get("cc_types")},l.prototype.cc_type=function(e){e=d(e);var t=this.cc_types(),n=null;if(e.name){for(var r=0;r3&&(n=t?n.substr(0,3):n[0]+n.substr(2,2)),n.length<3&&(r=n,n=e.toUpperCase().split("").map(function(e){return-1!=="AEIOU".indexOf(e)?e:void 0}).join("").substr(0,3-r.length)),r+=n),r};return o=o.concat(s(r,!0),s(n),function(e,t,n){return e.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][e.getMonth()]+n.pad(e.getDate()+("female"===t.toLowerCase()?40:0),2)}(i,t,this),a.toUpperCase().split("")).join(""),(o+=function(e){for(var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",i=0,a=0;a<15;a++)i+=a%2!=0?r.indexOf(n[t.indexOf(e[a])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(n[t.indexOf(e[a])]);return r[i%26]}(o.toUpperCase())).toUpperCase()},l.prototype.pl_pesel=function(){for(var e=this.natural({min:1,max:9999999999}),t=this.pad(e,10).split(""),n=0;n0;i--)r[i-1]=this.natural({min:1,max:n[1]});return void 0!==t.sum&&t.sum?r.reduce(function(e,t){return e+t}):r}throw new RangeError("Chance: A type of die roll must be included")},l.prototype.guid=function(e){e=d(e,{version:5});var t="abcdef1234567890";return this.string({pool:t,length:8})+"-"+this.string({pool:t,length:4})+"-"+e.version+this.string({pool:t,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:t,length:3})+"-"+this.string({pool:t,length:12})},l.prototype.hash=function(e){var t="upper"===(e=d(e,{length:40,casing:"lower"})).casing?s.toUpperCase():s;return this.string({pool:t,length:e.length})},l.prototype.luhn_check=function(e){var t=e.toString();return+t.substring(t.length-1)===this.luhn_calculate(+t.substring(0,t.length-1))},l.prototype.luhn_calculate=function(e){for(var t,n=e.toString().split("").reverse(),r=0,i=0,a=n.length;a>i;++i)t=+n[i],i%2==0&&(t*=2)>9&&(t-=9),r+=t;return 9*r%10},l.prototype.md5=function(e){var t={str:"",key:null,raw:!1};if(e)if("string"==typeof e)t.str=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.str=this.string(),e={};if(!(t=d(e,t)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(t.str,t.key,t.raw)},l.prototype.file=function(e){var t,n=e||{},r=Object.keys(this.get("fileExtension"));if(t=this.word({length:n.length}),n.extension)return t+"."+n.extension;if(n.extensions){if(Array.isArray(n.extensions))return t+"."+this.pickone(n.extensions);if(n.extensions.constructor===Object){var i=n.extensions,a=Object.keys(i);return t+"."+this.pickone(i[this.pickone(a)])}throw new Error("Chance: Extensions must be an Array or Object")}if(n.fileType){var o=n.fileType;if(-1!==r.indexOf(o))return t+"."+this.pickone(this.get("fileExtension")[o]);throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return t+"."+this.pickone(this.get("fileExtension")[this.pickone(r)])};var m={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"],fr:["Aaron","Abdon","Abel","Abélard","Abelin","Abondance","Abraham","Absalon","Acace","Achaire","Achille","Adalard","Adalbald","Adalbéron","Adalbert","Adalric","Adam","Adegrin","Adel","Adelin","Andelin","Adelphe","Adam","Adéodat","Adhémar","Adjutor","Adolphe","Adonis","Adon","Adrien","Agapet","Agathange","Agathon","Agilbert","Agénor","Agnan","Aignan","Agrippin","Aimable","Aimé","Alain","Alban","Albin","Aubin","Albéric","Albert","Albertet","Alcibiade","Alcide","Alcée","Alcime","Aldonce","Aldric","Aldéric","Aleaume","Alexandre","Alexis","Alix","Alliaume","Aleaume","Almine","Almire","Aloïs","Alphée","Alphonse","Alpinien","Alverède","Amalric","Amaury","Amandin","Amant","Ambroise","Amédée","Amélien","Amiel","Amour","Anaël","Anastase","Anatole","Ancelin","Andéol","Andoche","André","Andoche","Ange","Angelin","Angilbe","Anglebert","Angoustan","Anicet","Anne","Annibal","Ansbert","Anselme","Anthelme","Antheaume","Anthime","Antide","Antoine","Antonius","Antonin","Apollinaire","Apollon","Aquilin","Arcade","Archambaud","Archambeau","Archange","Archibald","Arian","Ariel","Ariste","Aristide","Armand","Armel","Armin","Arnould","Arnaud","Arolde","Arsène","Arsinoé","Arthaud","Arthème","Arthur","Ascelin","Athanase","Aubry","Audebert","Audouin","Audran","Audric","Auguste","Augustin","Aurèle","Aurélien","Aurian","Auxence","Axel","Aymard","Aymeric","Aymon","Aymond","Balthazar","Baptiste","Barnabé","Barthélemy","Bartimée","Basile","Bastien","Baudouin","Bénigne","Benjamin","Benoît","Bérenger","Bérard","Bernard","Bertrand","Blaise","Bon","Boniface","Bouchard","Brice","Brieuc","Bruno","Brunon","Calixte","Calliste","Camélien","Camille","Camillien","Candide","Caribert","Carloman","Cassandre","Cassien","Cédric","Céleste","Célestin","Célien","Césaire","César","Charles","Charlemagne","Childebert","Chilpéric","Chrétien","Christian","Christodule","Christophe","Chrysostome","Clarence","Claude","Claudien","Cléandre","Clément","Clotaire","Côme","Constance","Constant","Constantin","Corentin","Cyprien","Cyriaque","Cyrille","Cyril","Damien","Daniel","David","Delphin","Denis","Désiré","Didier","Dieudonné","Dimitri","Dominique","Dorian","Dorothée","Edgard","Edmond","Édouard","Éleuthère","Élie","Élisée","Émeric","Émile","Émilien","Emmanuel","Enguerrand","Épiphane","Éric","Esprit","Ernest","Étienne","Eubert","Eudes","Eudoxe","Eugène","Eusèbe","Eustache","Évariste","Évrard","Fabien","Fabrice","Falba","Félicité","Félix","Ferdinand","Fiacre","Fidèle","Firmin","Flavien","Flodoard","Florent","Florentin","Florestan","Florian","Fortuné","Foulques","Francisque","François","Français","Franciscus","Francs","Frédéric","Fulbert","Fulcran","Fulgence","Gabin","Gabriel","Gaël","Garnier","Gaston","Gaspard","Gatien","Gaud","Gautier","Gédéon","Geoffroy","Georges","Géraud","Gérard","Gerbert","Germain","Gervais","Ghislain","Gilbert","Gilles","Girart","Gislebert","Gondebaud","Gonthier","Gontran","Gonzague","Grégoire","Guérin","Gui","Guillaume","Gustave","Guy","Guyot","Hardouin","Hector","Hédelin","Hélier","Henri","Herbert","Herluin","Hervé","Hilaire","Hildebert","Hincmar","Hippolyte","Honoré","Hubert","Hugues","Innocent","Isabeau","Isidore","Jacques","Japhet","Jason","Jean","Jeannel","Jeannot","Jérémie","Jérôme","Joachim","Joanny","Job","Jocelyn","Joël","Johan","Jonas","Jonathan","Joseph","Josse","Josselin","Jourdain","Jude","Judicaël","Jules","Julien","Juste","Justin","Lambert","Landry","Laurent","Lazare","Léandre","Léon","Léonard","Léopold","Leu","Loup","Leufroy","Libère","Liétald","Lionel","Loïc","Longin","Lorrain","Lorraine","Lothaire","Louis","Loup","Luc","Lucas","Lucien","Ludolphe","Ludovic","Macaire","Malo","Mamert","Manassé","Marc","Marceau","Marcel","Marcelin","Marius","Marseille","Martial","Martin","Mathurin","Matthias","Mathias","Matthieu","Maugis","Maurice","Mauricet","Maxence","Maxime","Maximilien","Mayeul","Médéric","Melchior","Mence","Merlin","Mérovée","Michaël","Michel","Moïse","Morgan","Nathan","Nathanaël","Narcisse","Néhémie","Nestor","Nestor","Nicéphore","Nicolas","Noé","Noël","Norbert","Normand","Normands","Octave","Odilon","Odon","Oger","Olivier","Oury","Pacôme","Palémon","Parfait","Pascal","Paterne","Patrice","Paul","Pépin","Perceval","Philémon","Philibert","Philippe","Philothée","Pie","Pierre","Pierrick","Prosper","Quentin","Raoul","Raphaël","Raymond","Régis","Réjean","Rémi","Renaud","René","Reybaud","Richard","Robert","Roch","Rodolphe","Rodrigue","Roger","Roland","Romain","Romuald","Roméo","Rome","Ronan","Roselin","Salomon","Samuel","Savin","Savinien","Scholastique","Sébastien","Séraphin","Serge","Séverin","Sidoine","Sigebert","Sigismond","Silvère","Simon","Siméon","Sixte","Stanislas","Stéphane","Stephan","Sylvain","Sylvestre","Tancrède","Tanguy","Taurin","Théodore","Théodose","Théophile","Théophraste","Thibault","Thibert","Thierry","Thomas","Timoléon","Timothée","Titien","Tonnin","Toussaint","Trajan","Tristan","Turold","Tim","Ulysse","Urbain","Valentin","Valère","Valéry","Venance","Venant","Venceslas","Vianney","Victor","Victorien","Victorin","Vigile","Vincent","Vital","Vitalien","Vivien","Waleran","Wandrille","Xavier","Xénophon","Yves","Zacharie","Zaché","Zéphirin"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"],fr:["Abdon","Abel","Abigaëlle","Abigaïl","Acacius","Acanthe","Adalbert","Adalsinde","Adegrine","Adélaïde","Adèle","Adélie","Adeline","Adeltrude","Adolphe","Adonis","Adrastée","Adrehilde","Adrienne","Agathe","Agilbert","Aglaé","Aignan","Agneflète","Agnès","Agrippine","Aimé","Alaine","Alaïs","Albane","Albérade","Alberte","Alcide","Alcine","Alcyone","Aldegonde","Aleth","Alexandrine","Alexine","Alice","Aliénor","Aliette","Aline","Alix","Alizé","Aloïse","Aloyse","Alphonsine","Althée","Amaliane","Amalthée","Amande","Amandine","Amant","Amarande","Amaranthe","Amaryllis","Ambre","Ambroisie","Amélie","Améthyste","Aminte","Anaël","Anaïs","Anastasie","Anatole","Ancelin","Andrée","Anémone","Angadrême","Angèle","Angeline","Angélique","Angilbert","Anicet","Annabelle","Anne","Annette","Annick","Annie","Annonciade","Ansbert","Anstrudie","Anthelme","Antigone","Antoinette","Antonine","Aphélie","Apolline","Apollonie","Aquiline","Arabelle","Arcadie","Archange","Argine","Ariane","Aricie","Ariel","Arielle","Arlette","Armance","Armande","Armandine","Armelle","Armide","Armelle","Armin","Arnaud","Arsène","Arsinoé","Artémis","Arthur","Ascelin","Ascension","Assomption","Astarté","Astérie","Astrée","Astrid","Athalie","Athanasie","Athina","Aube","Albert","Aude","Audrey","Augustine","Aure","Aurélie","Aurélien","Aurèle","Aurore","Auxence","Aveline","Abigaëlle","Avoye","Axelle","Aymard","Azalée","Adèle","Adeline","Barbe","Basilisse","Bathilde","Béatrice","Béatrix","Bénédicte","Bérengère","Bernadette","Berthe","Bertille","Beuve","Blanche","Blanc","Blandine","Brigitte","Brune","Brunehilde","Callista","Camille","Capucine","Carine","Caroline","Cassandre","Catherine","Cécile","Céleste","Célestine","Céline","Chantal","Charlène","Charline","Charlotte","Chloé","Christelle","Christiane","Christine","Claire","Clara","Claude","Claudine","Clarisse","Clémence","Clémentine","Cléo","Clio","Clotilde","Coline","Conception","Constance","Coralie","Coraline","Corentine","Corinne","Cyrielle","Daniel","Daniel","Daphné","Débora","Delphine","Denise","Diane","Dieudonné","Dominique","Doriane","Dorothée","Douce","Édith","Edmée","Éléonore","Éliane","Élia","Éliette","Élisabeth","Élise","Ella","Élodie","Éloïse","Elsa","Émeline","Émérance","Émérentienne","Émérencie","Émilie","Emma","Emmanuelle","Emmelie","Ernestine","Esther","Estelle","Eudoxie","Eugénie","Eulalie","Euphrasie","Eusébie","Évangéline","Eva","Ève","Évelyne","Fanny","Fantine","Faustine","Félicie","Fernande","Flavie","Fleur","Flore","Florence","Florie","Fortuné","France","Francia","Françoise","Francine","Gabrielle","Gaëlle","Garance","Geneviève","Georgette","Gerberge","Germaine","Gertrude","Gisèle","Guenièvre","Guilhemine","Guillemette","Gustave","Gwenael","Hélène","Héloïse","Henriette","Hermine","Hermione","Hippolyte","Honorine","Hortense","Huguette","Ines","Irène","Irina","Iris","Isabeau","Isabelle","Iseult","Isolde","Ismérie","Jacinthe","Jacqueline","Jade","Janine","Jeanne","Jocelyne","Joëlle","Joséphine","Judith","Julia","Julie","Jules","Juliette","Justine","Katy","Kathy","Katie","Laura","Laure","Laureline","Laurence","Laurene","Lauriane","Laurianne","Laurine","Léa","Léna","Léonie","Léon","Léontine","Lorraine","Lucie","Lucienne","Lucille","Ludivine","Lydie","Lydie","Megane","Madeleine","Magali","Maguelone","Mallaury","Manon","Marceline","Margot","Marguerite","Marianne","Marie","Myriam","Marie","Marine","Marion","Marlène","Marthe","Martine","Mathilde","Maud","Maureen","Mauricette","Maxime","Mélanie","Melissa","Mélissandre","Mélisande","Mélodie","Michel","Micheline","Mireille","Miriam","Moïse","Monique","Morgane","Muriel","Mylène","Nadège","Nadine","Nathalie","Nicole","Nicolette","Nine","Noël","Noémie","Océane","Odette","Odile","Olive","Olivia","Olympe","Ombline","Ombeline","Ophélie","Oriande","Oriane","Ozanne","Pascale","Pascaline","Paule","Paulette","Pauline","Priscille","Prisca","Prisque","Pécine","Pélagie","Pénélope","Perrine","Pétronille","Philippine","Philomène","Philothée","Primerose","Prudence","Pulchérie","Quentine","Quiéta","Quintia","Quintilla","Rachel","Raphaëlle","Raymonde","Rebecca","Régine","Réjeanne","René","Rita","Rita","Rolande","Romane","Rosalie","Rose","Roseline","Sabine","Salomé","Sandra","Sandrine","Sarah","Ségolène","Séverine","Sibylle","Simone","Sixt","Solange","Soline","Solène","Sophie","Stéphanie","Suzanne","Sylvain","Sylvie","Tatiana","Thaïs","Théodora","Thérèse","Tiphaine","Ursule","Valentine","Valérie","Véronique","Victoire","Victorine","Vinciane","Violette","Virginie","Viviane","Xavière","Yolande","Ysaline","Yvette","Yvonne","Zélie","Zita","Zoé"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"],uk:["Smith","Jones","Williams","Taylor","Brown","Davies","Evans","Wilson","Thomas","Johnson","Roberts","Robinson","Thompson","Wright","Walker","White","Edwards","Hughes","Green","Hall","Lewis","Harris","Clarke","Patel","Jackson","Wood","Turner","Martin","Cooper","Hill","Ward","Morris","Moore","Clark","Lee","King","Baker","Harrison","Morgan","Allen","James","Scott","Phillips","Watson","Davis","Parker","Price","Bennett","Young","Griffiths","Mitchell","Kelly","Cook","Carter","Richardson","Bailey","Collins","Bell","Shaw","Murphy","Miller","Cox","Richards","Khan","Marshall","Anderson","Simpson","Ellis","Adams","Singh","Begum","Wilkinson","Foster","Chapman","Powell","Webb","Rogers","Gray","Mason","Ali","Hunt","Hussain","Campbell","Matthews","Owen","Palmer","Holmes","Mills","Barnes","Knight","Lloyd","Butler","Russell","Barker","Fisher","Stevens","Jenkins","Murray","Dixon","Harvey","Graham","Pearson","Ahmed","Fletcher","Walsh","Kaur","Gibson","Howard","Andrews","Stewart","Elliott","Reynolds","Saunders","Payne","Fox","Ford","Pearce","Day","Brooks","West","Lawrence","Cole","Atkinson","Bradley","Spencer","Gill","Dawson","Ball","Burton","O'brien","Watts","Rose","Booth","Perry","Ryan","Grant","Wells","Armstrong","Francis","Rees","Hayes","Hart","Hudson","Newman","Barrett","Webster","Hunter","Gregory","Carr","Lowe","Page","Marsh","Riley","Dunn","Woods","Parsons","Berry","Stone","Reid","Holland","Hawkins","Harding","Porter","Robertson","Newton","Oliver","Reed","Kennedy","Williamson","Bird","Gardner","Shah","Dean","Lane","Cooke","Bates","Henderson","Parry","Burgess","Bishop","Walton","Burns","Nicholson","Shepherd","Ross","Cross","Long","Freeman","Warren","Nicholls","Hamilton","Byrne","Sutton","Mcdonald","Yates","Hodgson","Robson","Curtis","Hopkins","O'connor","Harper","Coleman","Watkins","Moss","Mccarthy","Chambers","O'neill","Griffin","Sharp","Hardy","Wheeler","Potter","Osborne","Johnston","Gordon","Doyle","Wallace","George","Jordan","Hutchinson","Rowe","Burke","May","Pritchard","Gilbert","Willis","Higgins","Read","Miles","Stevenson","Stephenson","Hammond","Arnold","Buckley","Walters","Hewitt","Barber","Nelson","Slater","Austin","Sullivan","Whitehead","Mann","Frost","Lambert","Stephens","Blake","Akhtar","Lynch","Goodwin","Barton","Woodward","Thomson","Cunningham","Quinn","Barnett","Baxter","Bibi","Clayton","Nash","Greenwood","Jennings","Holt","Kemp","Poole","Gallagher","Bond","Stokes","Tucker","Davidson","Fowler","Heath","Norman","Middleton","Lawson","Banks","French","Stanley","Jarvis","Gibbs","Ferguson","Hayward","Carroll","Douglas","Dickinson","Todd","Barlow","Peters","Lucas","Knowles","Hartley","Miah","Simmons","Morton","Alexander","Field","Morrison","Norris","Townsend","Preston","Hancock","Thornton","Baldwin","Burrows","Briggs","Parkinson","Reeves","Macdonald","Lamb","Black","Abbott","Sanders","Thorpe","Holden","Tomlinson","Perkins","Ashton","Rhodes","Fuller","Howe","Bryant","Vaughan","Dale","Davey","Weston","Bartlett","Whittaker","Davison","Kent","Skinner","Birch","Morley","Daniels","Glover","Howell","Cartwright","Pugh","Humphreys","Goddard","Brennan","Wall","Kirby","Bowen","Savage","Bull","Wong","Dobson","Smart","Wilkins","Kirk","Fraser","Duffy","Hicks","Patterson","Bradshaw","Little","Archer","Warner","Waters","O'sullivan","Farrell","Brookes","Atkins","Kay","Dodd","Bentley","Flynn","John","Schofield","Short","Haynes","Wade","Butcher","Henry","Sanderson","Crawford","Sheppard","Bolton","Coates","Giles","Gould","Houghton","Gibbons","Pratt","Manning","Law","Hooper","Noble","Dyer","Rahman","Clements","Moran","Sykes","Chan","Doherty","Connolly","Joyce","Franklin","Hobbs","Coles","Herbert","Steele","Kerr","Leach","Winter","Owens","Duncan","Naylor","Fleming","Horton","Finch","Fitzgerald","Randall","Carpenter","Marsden","Browne","Garner","Pickering","Hale","Dennis","Vincent","Chadwick","Chandler","Sharpe","Nolan","Lyons","Hurst","Collier","Peacock","Howarth","Faulkner","Rice","Pollard","Welch","Norton","Gough","Sinclair","Blackburn","Bryan","Conway","Power","Cameron","Daly","Allan","Hanson","Gardiner","Boyle","Myers","Turnbull","Wallis","Mahmood","Sims","Swift","Iqbal","Pope","Brady","Chamberlain","Rowley","Tyler","Farmer","Metcalfe","Hilton","Godfrey","Holloway","Parkin","Bray","Talbot","Donnelly","Nixon","Charlton","Benson","Whitehouse","Barry","Hope","Lord","North","Storey","Connor","Potts","Bevan","Hargreaves","Mclean","Mistry","Bruce","Howells","Hyde","Parkes","Wyatt","Fry","Lees","O'donnell","Craig","Forster","Mckenzie","Humphries","Mellor","Carey","Ingram","Summers","Leonard"],de:["Müller","Schmidt","Schneider","Fischer","Weber","Meyer","Wagner","Becker","Schulz","Hoffmann","Schäfer","Koch","Bauer","Richter","Klein","Wolf","Schröder","Neumann","Schwarz","Zimmermann","Braun","Krüger","Hofmann","Hartmann","Lange","Schmitt","Werner","Schmitz","Krause","Meier","Lehmann","Schmid","Schulze","Maier","Köhler","Herrmann","König","Walter","Mayer","Huber","Kaiser","Fuchs","Peters","Lang","Scholz","Möller","Weiß","Jung","Hahn","Schubert","Vogel","Friedrich","Keller","Günther","Frank","Berger","Winkler","Roth","Beck","Lorenz","Baumann","Franke","Albrecht","Schuster","Simon","Ludwig","Böhm","Winter","Kraus","Martin","Schumacher","Krämer","Vogt","Stein","Jäger","Otto","Sommer","Groß","Seidel","Heinrich","Brandt","Haas","Schreiber","Graf","Schulte","Dietrich","Ziegler","Kuhn","Kühn","Pohl","Engel","Horn","Busch","Bergmann","Thomas","Voigt","Sauer","Arnold","Wolff","Pfeiffer"],jp:["Sato","Suzuki","Takahashi","Tanaka","Watanabe","Ito","Yamamoto","Nakamura","Kobayashi","Kato","Yoshida","Yamada","Sasaki","Yamaguchi","Saito","Matsumoto","Inoue","Kimura","Hayashi","Shimizu","Yamazaki","Mori","Abe","Ikeda","Hashimoto","Yamashita","Ishikawa","Nakajima","Maeda","Fujita","Ogawa","Goto","Okada","Hasegawa","Murakami","Kondo","Ishii","Saito","Sakamoto","Endo","Aoki","Fujii","Nishimura","Fukuda","Ota","Miura","Fujiwara","Okamoto","Matsuda","Nakagawa","Nakano","Harada","Ono","Tamura","Takeuchi","Kaneko","Wada","Nakayama","Ishida","Ueda","Morita","Hara","Shibata","Sakai","Kudo","Yokoyama","Miyazaki","Miyamoto","Uchida","Takagi","Ando","Taniguchi","Ohno","Maruyama","Imai","Takada","Fujimoto","Takeda","Murata","Ueno","Sugiyama","Masuda","Sugawara","Hirano","Kojima","Otsuka","Chiba","Kubo","Matsui","Iwasaki","Sakurai","Kinoshita","Noguchi","Matsuo","Nomura","Kikuchi","Sano","Onishi","Sugimoto","Arai"],es:["Garcia","Fernandez","Lopez","Martinez","Gonzalez","Rodriguez","Sanchez","Perez","Martin","Gomez","Ruiz","Diaz","Hernandez","Alvarez","Jimenez","Moreno","Munoz","Alonso","Romero","Navarro","Gutierrez","Torres","Dominguez","Gil","Vazquez","Blanco","Serrano","Ramos","Castro","Suarez","Sanz","Rubio","Ortega","Molina","Delgado","Ortiz","Morales","Ramirez","Marin","Iglesias","Santos","Castillo","Garrido","Calvo","Pena","Cruz","Cano","Nunez","Prieto","Diez","Lozano","Vidal","Pascual","Ferrer","Medina","Vega","Leon","Herrero","Vicente","Mendez","Guerrero","Fuentes","Campos","Nieto","Cortes","Caballero","Ibanez","Lorenzo","Pastor","Gimenez","Saez","Soler","Marquez","Carrasco","Herrera","Montero","Arias","Crespo","Flores","Andres","Aguilar","Hidalgo","Cabrera","Mora","Duran","Velasco","Rey","Pardo","Roman","Vila","Bravo","Merino","Moya","Soto","Izquierdo","Reyes","Redondo","Marcos","Carmona","Menendez"],fr:["Martin","Bernard","Thomas","Petit","Robert","Richard","Durand","Dubois","Moreau","Laurent","Simon","Michel","Lefèvre","Leroy","Roux","David","Bertrand","Morel","Fournier","Girard","Bonnet","Dupont","Lambert","Fontaine","Rousseau","Vincent","Müller","Lefèvre","Faure","André","Mercier","Blanc","Guérin","Boyer","Garnier","Chevalier","François","Legrand","Gauthier","Garcia","Perrin","Robin","Clément","Morin","Nicolas","Henry","Roussel","Matthieu","Gautier","Masson","Marchand","Duval","Denis","Dumont","Marie","Lemaire","Noël","Meyer","Dufour","Meunier","Brun","Blanchard","Giraud","Joly","Rivière","Lucas","Brunet","Gaillard","Barbier","Arnaud","Martínez","Gérard","Roche","Renard","Schmitt","Roy","Leroux","Colin","Vidal","Caron","Picard","Roger","Fabre","Aubert","Lemoine","Renaud","Dumas","Lacroix","Olivier","Philippe","Bourgeois","Pierre","Benoît","Rey","Leclerc","Payet","Rolland","Leclercq","Guillaume","Lecomte","López","Jean","Dupuy","Guillot","Hubert","Berger","Carpentier","Sánchez","Dupuis","Moulin","Louis","Deschamps","Huet","Vasseur","Perez","Boucher","Fleury","Royer","Klein","Jacquet","Adam","Paris","Poirier","Marty","Aubry","Guyot","Carré","Charles","Renault","Charpentier","Ménard","Maillard","Baron","Bertin","Bailly","Hervé","Schneider","Fernández","Le GallGall","Collet","Léger","Bouvier","Julien","Prévost","Millet","Perrot","Daniel","Le RouxRoux","Cousin","Germain","Breton","Besson","Langlois","Rémi","Le GoffGoff","Pelletier","Lévêque","Perrier","Leblanc","Barré","Lebrun","Marchal","Weber","Mallet","Hamon","Boulanger","Jacob","Monnier","Michaud","Rodríguez","Guichard","Gillet","Étienne","Grondin","Poulain","Tessier","Chevallier","Collin","Chauvin","Da SilvaSilva","Bouchet","Gay","Lemaître","Bénard","Maréchal","Humbert","Reynaud","Antoine","Hoarau","Perret","Barthélemy","Cordier","Pichon","Lejeune","Gilbert","Lamy","Delaunay","Pasquier","Carlier","LaporteLaporte"]},countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager.","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]}},g=Object.prototype.hasOwnProperty,y=Object.keys||function(e){var t=[];for(var n in e)g.call(e,n)&&t.push(n);return t};function v(e,t){var n=Array.isArray(e),r=t||(n?new Array(e.length):{});return n?function(e,t){for(var n=0,r=e.length;n0)return this.normal_pool(e);var t,n,r,i=e.mean,a=e.dev;do{t=(n=2*this.random()-1)*n+(r=2*this.random()-1)*r}while(t>=1);return a*(n*Math.sqrt(-2*Math.log(t)/t))+i},l.prototype.normal_pool=function(e){var t=0;do{var n=Math.round(this.normal({mean:e.mean,dev:e.dev}));if(n=0)return e.pool[n];t++}while(t<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},l.prototype.radio=function(e){var t="";switch((e=d(e,{side:"?"})).side.toLowerCase()){case"east":case"e":t="W";break;case"west":case"w":t="K";break;default:t=this.character({pool:"KW"})}return t+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},l.prototype.set=function(e,t){"string"==typeof e?m[e]=t:m=v(e,m)},l.prototype.tv=function(e){return this.radio(e)},l.prototype.cnpj=function(){var e=this.n(this.natural,8,{max:9}),t=2+6*e[7]+7*e[6]+8*e[5]+9*e[4]+2*e[3]+3*e[2]+4*e[1]+5*e[0];(t=11-t%11)>=10&&(t=0);var n=2*t+3+7*e[7]+8*e[6]+9*e[5]+2*e[4]+3*e[3]+4*e[2]+5*e[1]+6*e[0];return(n=11-n%11)>=10&&(n=0),""+e[0]+e[1]+"."+e[2]+e[3]+e[4]+"."+e[5]+e[6]+e[7]+"/0001-"+t+n},l.prototype.mersenne_twister=function(e){return new b(e)},l.prototype.blueimp_md5=function(){return new C};var b=function(e){void 0===e&&(e=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};b.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},b.prototype.init_by_array=function(e,t){var n,r,i=1,a=0;for(this.init_genrand(19650218),n=this.N>t?this.N:t;n;n--)r=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&r)>>>16)<<16)+1664525*(65535&r))+e[a]+a,this.mt[i]>>>=0,a++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),a>=t&&(a=0);for(n=this.N-1;n;n--)r=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&r)>>>16)<<16)+1566083941*(65535&r))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1);this.mt[0]=2147483648},b.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n>>1^t[1&e];for(;n>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},b.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},b.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},b.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},b.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},b.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var C=function(){};C.prototype.VERSION="1.0.1",C.prototype.safe_add=function(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n},C.prototype.bit_roll=function(e,t){return e<>>32-t},C.prototype.md5_cmn=function(e,t,n,r,i,a){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(t,e),this.safe_add(r,a)),i),n)},C.prototype.md5_ff=function(e,t,n,r,i,a,o){return this.md5_cmn(t&n|~t&r,e,t,i,a,o)},C.prototype.md5_gg=function(e,t,n,r,i,a,o){return this.md5_cmn(t&r|n&~r,e,t,i,a,o)},C.prototype.md5_hh=function(e,t,n,r,i,a,o){return this.md5_cmn(t^n^r,e,t,i,a,o)},C.prototype.md5_ii=function(e,t,n,r,i,a,o){return this.md5_cmn(n^(t|~r),e,t,i,a,o)},C.prototype.binl_md5=function(e,t){e[t>>5]|=128<>>9<<4)]=t;var n,r,i,a,o,s=1732584193,u=-271733879,c=-1732584194,l=271733878;for(n=0;n>5]>>>t%32&255);return n},C.prototype.rstr2binl=function(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(i=this.binl_md5(i,8*e.length)),n=0;n<16;n+=1)a[n]=909522486^i[n],o[n]=1549556828^i[n];return r=this.binl_md5(a.concat(this.rstr2binl(t)),512+8*t.length),this.binl2rstr(this.binl_md5(o.concat(r),640))},C.prototype.rstr2hex=function(e){var t,n,r="";for(n=0;n>>4&15)+"0123456789abcdef".charAt(15&t);return r},C.prototype.str2rstr_utf8=function(e){return unescape(encodeURIComponent(e))},C.prototype.raw_md5=function(e){return this.rstr_md5(this.str2rstr_utf8(e))},C.prototype.hex_md5=function(e){return this.rstr2hex(this.raw_md5(e))},C.prototype.raw_hmac_md5=function(e,t){return this.rstr_hmac_md5(this.str2rstr_utf8(e),this.str2rstr_utf8(t))},C.prototype.hex_hmac_md5=function(e,t){return this.rstr2hex(this.raw_hmac_md5(e,t))},C.prototype.md5=function(e,t,n){return t?n?this.raw_hmac_md5(t,e):this.hex_hmac_md5(t,e):n?this.raw_md5(e):this.hex_md5(e)},void 0!==e&&e.exports&&(t=e.exports=l),t.Chance=l,void 0===(r=function(){return l}.apply(t,[]))||(e.exports=r),"undefined"!=typeof importScripts&&(chance=new l,self.Chance=l),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=l,window.chance=new l)}()}).call(this,n(209).Buffer)},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} +var r=n(208),i=n(207),o=n(206);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return G(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return j(e).length;default:if(r)return G(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var o,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function d(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var l=-1;for(o=n;os&&(n=s-u),o=n;o>=0;o--){for(var c=!0,p=0;pi&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function E(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:d>223?3:d>191?2:1;if(i+c<=n)switch(c){case 1:d<128&&(l=d);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&d)<<6|63&o)>127&&(l=u);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(u=(15&d)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&d)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,c=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=c}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rthis.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return E(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return D(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,a=n-t,s=Math.min(o,a),d=this.slice(r,i),l=e.slice(t,n),c=0;ci)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":return C(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return N(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,n,r,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function R(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function $(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function O(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function B(e,t,n,r,o){return o||O(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function w(e,t,n,r,o){return o||O(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if(e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||x(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):$(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);x(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);x(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):$(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):$(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return B(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return B(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return w(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return w(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function j(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(k,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(127))},function(e,t,n){(function(n){var r;!function(){var i=9007199254740992,o="abcdefghijklmnopqrstuvwxyz",a=o.toUpperCase(),s="0123456789abcdef";function u(e){this.name="UnsupportedError",this.message=e||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var d=Array.prototype.slice;function l(e){if(!(this instanceof l))return e||(e=null),null===e?new l:new l(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var t=0;t100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()n,"Chance: Max specified is out of range with fixed. Max should be, at most, "+n),e=c(e,{min:r,max:n});var o=(this.integer({min:e.min*t,max:e.max*t})/t).toFixed(e.fixed);return parseFloat(o)},l.prototype.integer=function(e){return p((e=c(e,{min:-9007199254740992,max:i})).min>e.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(e.max-e.min+1)+e.min)},l.prototype.natural=function(e){return"number"==typeof(e=c(e,{min:0,max:i})).numerals&&(p(e.numerals<1,"Chance: Numerals cannot be less than one."),e.min=Math.pow(10,e.numerals-1),e.max=Math.pow(10,e.numerals)-1),p(e.min<0,"Chance: Min cannot be less than zero."),this.integer(e)},l.prototype.hex=function(e){p((e=c(e,{min:0,max:i,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var t=this.natural({min:e.min,max:e.max});return"upper"===e.casing?t.toString(16).toUpperCase():t.toString(16)},l.prototype.letter=function(e){e=c(e,{casing:"lower"});var t=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===e.casing&&(t=t.toUpperCase()),t},l.prototype.string=function(e){p((e=c(e,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var t=e.length;return this.n(this.character,t,e).join("")},l.prototype.buffer=function(e){if(void 0===n)throw new u("Sorry, the buffer() function is not supported on your platform");p((e=c(e,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var t=e.length,r=this.n(this.character,t,e);return n.from(r)},l.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},l.prototype.mixin=function(e){for(var t in e)l.prototype[t]=e[t];return this},l.prototype.unique=function(e,t,n){p("function"!=typeof e,"Chance: The first argument must be a function.");var r=function(e,t){return-1!==e.indexOf(t)};n&&(r=n.comparator||r);for(var i,o=[],a=0,s=50*t,u=d.call(arguments,2);o.lengths)throw new RangeError("Chance: num is likely too large for sample set")}return o},l.prototype.n=function(e,t){p("function"!=typeof e,"Chance: The first argument must be a function."),void 0===t&&(t=1);var n=t,r=[],i=d.call(arguments,2);for(n=Math.max(0,n);n--;null)r.push(e.apply(this,i));return r},l.prototype.pad=function(e,t,n){return n=n||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(n)+e},l.prototype.pick=function(e,t){if(0===e.length)throw new RangeError("Chance: Cannot pick() from an empty array");return t&&1!==t?this.shuffle(e).slice(0,t):e[this.natural({max:e.length-1})]},l.prototype.pickone=function(e){if(0===e.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return e[this.natural({max:e.length-1})]},l.prototype.pickset=function(e,t){if(0===t)return[];if(0===e.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(t<0)throw new RangeError("Chance: Count must be a positive number");return t&&1!==t?this.shuffle(e).slice(0,t):[this.pickone(e)]},l.prototype.shuffle=function(e){for(var t,n,r=[],i=0,o=Number(e.length),a=(n=o,Array.apply(null,Array(n)).map(function(e,t){return t})),s=o-1,u=0;u0&&(i+=r)}if(0===i)throw new RangeError("Chance: No valid entries in array weights");var a,s=this.random()*i,u=0,d=-1;for(o=0;o0){if(s<=u){a=o;break}d=o}o===t.length-1&&(a=d)}var l=e[a];return(n=void 0!==n&&n)&&(e.splice(a,1),t.splice(a,1)),l},l.prototype.paragraph=function(e){var t=(e=c(e)).sentences||this.natural({min:3,max:7});return this.n(this.sentence,t).join(" ")},l.prototype.sentence=function(e){var t,n=(e=c(e)).words||this.natural({min:12,max:18}),r=e.punctuation;return t=this.n(this.word,n).join(" "),t=this.capitalize(t),!1===r||/^[\.\?;!:]$/.test(r)||(r="."),r&&(t+=r),t},l.prototype.syllable=function(e){for(var t,n=(e=c(e)).length||this.natural({min:2,max:3}),r="",i=0;i=10&&(n=0);var r=2*n+3*t[8]+4*t[7]+5*t[6]+6*t[5]+7*t[4]+8*t[3]+9*t[2]+10*t[1]+11*t[0];(r=11-r%11)>=10&&(r=0);var i=""+t[0]+t[1]+t[2]+"."+t[3]+t[4]+t[5]+"."+t[6]+t[7]+t[8]+"-"+n+r;return e.formatted?i:i.replace(/\D/g,"")},l.prototype.cnpj=function(e){e=c(e,{formatted:!0});var t=this.n(this.natural,12,{max:12}),n=2*t[11]+3*t[10]+4*t[9]+5*t[8]+6*t[7]+7*t[6]+8*t[5]+9*t[4]+2*t[3]+3*t[2]+4*t[1]+5*t[0];(n=11-n%11)<2&&(n=0);var r=2*n+3*t[11]+4*t[10]+5*t[9]+6*t[8]+7*t[7]+8*t[6]+9*t[5]+2*t[4]+3*t[3]+4*t[2]+5*t[1]+6*t[0];(r=11-r%11)<2&&(r=0);var i=""+t[0]+t[1]+"."+t[2]+t[3]+t[4]+"."+t[5]+t[6]+t[7]+"/"+t[8]+t[9]+t[10]+t[11]+"-"+n+r;return e.formatted?i:i.replace(/\D/g,"")},l.prototype.first=function(e){return e=c(e,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[e.gender.toLowerCase()][e.nationality.toLowerCase()])},l.prototype.profession=function(e){return(e=c(e)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},l.prototype.company=function(){return this.pick(this.get("company"))},l.prototype.gender=function(e){return e=c(e,{extraGenders:[]}),this.pick(["Male","Female"].concat(e.extraGenders))},l.prototype.last=function(e){if("*"===(e=c(e,{nationality:"*"})).nationality){var t=[],n=this.get("lastNames");return Object.keys(n).forEach(function(e,r){t=t.concat(n[e])}),this.pick(t)}return this.pick(this.get("lastNames")[e.nationality.toLowerCase()])},l.prototype.israelId=function(){for(var e=this.string({pool:"0123456789",length:8}),t=0,n=0;n","<=",">=","="]);e.range&&(t=e.range);var n="";return e.include_prerelease&&(n=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),t+this.rpg("3d10").join(".")+n},l.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},l.prototype.tld=function(){return this.pick(this.tlds())},l.prototype.twitter=function(){return"@"+this.word()},l.prototype.url=function(e){var t=(e=c(e,{protocol:"http",domain:this.domain(e),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(e.extensions):"",n=e.domain_prefix?e.domain_prefix+"."+e.domain:e.domain;return e.protocol+"://"+n+"/"+e.path+t},l.prototype.port=function(){return this.integer({min:0,max:65535})},l.prototype.locale=function(e){return(e=c(e)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},l.prototype.locales=function(e){return(e=c(e)).region?this.get("locale_regions"):this.get("locale_languages")},l.prototype.loremPicsum=function(e){var t=(e=c(e,{width:500,height:500,greyscale:!1,blurred:!1})).greyscale?"g/":"",n=e.blurred?"/?blur":"/?random";return"https://picsum.photos/"+t+e.width+"/"+e.height+n},l.prototype.address=function(e){return e=c(e),this.natural({min:5,max:2e3})+" "+this.street(e)},l.prototype.altitude=function(e){return e=c(e,{fixed:5,min:0,max:8848}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.areacode=function(e){e=c(e,{parens:!0});var t=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?"("+t+")":t},l.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},l.prototype.coordinates=function(e){return this.latitude(e)+", "+this.longitude(e)},l.prototype.countries=function(){return this.get("countries")},l.prototype.country=function(e){e=c(e);var t=this.pick(this.countries());return e.raw?t:e.full?t.name:t.abbreviation},l.prototype.depth=function(e){return e=c(e,{fixed:5,min:-10994,max:0}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.geohash=function(e){return e=c(e,{length:7}),this.string({length:e.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},l.prototype.geojson=function(e){return this.latitude(e)+", "+this.longitude(e)+", "+this.altitude(e)},l.prototype.latitude=function(e){return e=c(e,{fixed:5,min:-90,max:90}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.longitude=function(e){return e=c(e,{fixed:5,min:-180,max:180}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},l.prototype.phone=function(e){var t,n,r=this,i=function(e){var t=[];return e.sections.forEach(function(e){t.push(r.string({pool:"0123456789",length:e}))}),e.area+t.join(" ")};switch((e=c(e,{formatted:!0,country:"us",mobile:!1})).formatted||(e.parens=!1),e.country){case"fr":e.mobile?(t=this.pick(["06","07"])+r.string({pool:"0123456789",length:8}),n=e.formatted?t.match(/../g).join(" "):t):(t=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+r.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+r.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+r.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+r.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+r.string({pool:"0123456789",length:6}),"09"+r.string({pool:"0123456789",length:8})]),n=e.formatted?t.match(/../g).join(" "):t);break;case"uk":e.mobile?(t=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),n=e.formatted?i(t):i(t).replace(" ","")):(t=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),n=e.formatted?i(t):i(t).replace(" ","","g"));break;case"za":e.mobile?(t=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+r.string({pool:"0123456789",length:6}),"06"+r.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+r.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+r.string({pool:"0123456789",length:7})]),n=e.formatted||t):(t=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+r.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+r.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+r.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+r.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+r.string({pool:"0123456789",length:7})]),n=e.formatted||t);break;case"us":var o=this.areacode(e).toString(),a=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),s=this.natural({min:1e3,max:9999}).toString();n=e.formatted?o+" "+a+"-"+s:o+a+s;break;case"br":var u,d=this.pick(["11","12","13","14","15","16","17","18","19","21","22","24","27","28","31","32","33","34","35","37","38","41","42","43","44","45","46","47","48","49","51","53","54","55","61","62","63","64","65","66","67","68","69","71","73","74","75","77","79","81","82","83","84","85","86","87","88","89","91","92","93","94","95","96","97","98","99"]);u=e.mobile?"9"+r.string({pool:"0123456789",length:4}):this.natural({min:2e3,max:5999}).toString();var l=r.string({pool:"0123456789",length:4});n=e.formatted?"("+d+") "+u+"-"+l:d+u+l}return n},l.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},l.prototype.counties=function(e){return e=c(e,{country:"uk"}),this.get("counties")[e.country.toLowerCase()]},l.prototype.county=function(e){return this.pick(this.counties(e)).name},l.prototype.provinces=function(e){return e=c(e,{country:"ca"}),this.get("provinces")[e.country.toLowerCase()]},l.prototype.province=function(e){return e&&e.full?this.pick(this.provinces(e)).name:this.pick(this.provinces(e)).abbreviation},l.prototype.state=function(e){return e&&e.full?this.pick(this.states(e)).name:this.pick(this.states(e)).abbreviation},l.prototype.states=function(e){var t;switch((e=c(e,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var n=this.get("us_states_and_dc"),r=this.get("territories"),i=this.get("armed_forces");t=[],e.us_states_and_dc&&(t=t.concat(n)),e.territories&&(t=t.concat(r)),e.armed_forces&&(t=t.concat(i));break;case"it":t=this.get("country_regions")[e.country.toLowerCase()];break;case"uk":t=this.get("counties")[e.country.toLowerCase()]}return t},l.prototype.street=function(e){var t;switch((e=c(e,{country:"us",syllables:2})).country.toLowerCase()){case"us":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t+=" ",t+=e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name;break;case"it":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t=(e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name)+" "+t}return t},l.prototype.street_suffix=function(e){return e=c(e,{country:"us"}),this.pick(this.street_suffixes(e))},l.prototype.street_suffixes=function(e){return e=c(e,{country:"us"}),this.get("street_suffixes")[e.country.toLowerCase()]},l.prototype.zip=function(e){var t=this.n(this.natural,5,{max:9});return e&&!0===e.plusfour&&(t.push("-"),t=t.concat(this.n(this.natural,4,{max:9}))),t.join("")},l.prototype.ampm=function(){return this.bool()?"am":"pm"},l.prototype.date=function(e){var t,n;if(e&&(e.min||e.max)){var r=void 0!==(e=c(e,{american:!0,string:!1})).min?e.min.getTime():1,i=void 0!==e.max?e.max.getTime():864e13;n=new Date(this.integer({min:r,max:i}))}else{var o=this.month({raw:!0}),a=o.days;e&&e.month&&(a=this.get("months")[(e.month%12+12)%12].days),e=c(e,{year:parseInt(this.year(),10),month:o.numeric-1,day:this.natural({min:1,max:a}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),n=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}return t=e.american?n.getMonth()+1+"/"+n.getDate()+"/"+n.getFullYear():n.getDate()+"/"+(n.getMonth()+1)+"/"+n.getFullYear(),e.string?t:n},l.prototype.hammertime=function(e){return this.date(e).getTime()},l.prototype.hour=function(e){return p((e=c(e,{min:e&&e.twentyfour?0:1,max:e&&e.twentyfour?23:12})).min<0,"Chance: Min cannot be less than 0."),p(e.twentyfour&&e.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),p(!e.twentyfour&&e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},l.prototype.millisecond=function(){return this.natural({max:999})},l.prototype.minute=l.prototype.second=function(e){return p((e=c(e,{min:0,max:59})).min<0,"Chance: Min cannot be less than 0."),p(e.max>59,"Chance: Max cannot be greater than 59."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},l.prototype.month=function(e){p((e=c(e,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),p(e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=this.pick(this.months().slice(e.min-1,e.max));return e.raw?t:t.name},l.prototype.months=function(){return this.get("months")},l.prototype.second=function(){return this.natural({max:59})},l.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},l.prototype.weekday=function(e){var t=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(e=c(e,{weekday_only:!1})).weekday_only||(t.push("Saturday"),t.push("Sunday")),this.pickone(t)},l.prototype.year=function(e){return(e=c(e,{min:(new Date).getFullYear()})).max=void 0!==e.max?e.max:e.min+100,this.natural(e).toString()},l.prototype.cc=function(e){var t,n,r;return n=(t=(e=c(e)).type?this.cc_type({name:e.type,raw:!0}):this.cc_type({raw:!0})).prefix.split(""),r=t.length-t.prefix.length-1,(n=n.concat(this.n(this.integer,r,{min:0,max:9}))).push(this.luhn_calculate(n.join(""))),n.join("")},l.prototype.cc_types=function(){return this.get("cc_types")},l.prototype.cc_type=function(e){e=c(e);var t=this.cc_types(),n=null;if(e.name){for(var r=0;r3&&(n=t?n.substr(0,3):n[0]+n.substr(2,2)),n.length<3&&(r=n,n=e.toUpperCase().split("").map(function(e){return-1!=="AEIOU".indexOf(e)?e:void 0}).join("").substr(0,3-r.length)),r+=n),r};return a=a.concat(s(r,!0),s(n),function(e,t,n){return e.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][e.getMonth()]+n.pad(e.getDate()+("female"===t.toLowerCase()?40:0),2)}(i,t,this),o.toUpperCase().split("")).join(""),(a+=function(e){for(var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",i=0,o=0;o<15;o++)i+=o%2!=0?r.indexOf(n[t.indexOf(e[o])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(n[t.indexOf(e[o])]);return r[i%26]}(a.toUpperCase())).toUpperCase()},l.prototype.pl_pesel=function(){for(var e=this.natural({min:1,max:9999999999}),t=this.pad(e,10).split(""),n=0;n0;i--)r[i-1]=this.natural({min:1,max:n[1]});return void 0!==t.sum&&t.sum?r.reduce(function(e,t){return e+t}):r}throw new RangeError("Chance: A type of die roll must be included")},l.prototype.guid=function(e){e=c(e,{version:5});var t="abcdef1234567890";return this.string({pool:t,length:8})+"-"+this.string({pool:t,length:4})+"-"+e.version+this.string({pool:t,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:t,length:3})+"-"+this.string({pool:t,length:12})},l.prototype.hash=function(e){var t="upper"===(e=c(e,{length:40,casing:"lower"})).casing?s.toUpperCase():s;return this.string({pool:t,length:e.length})},l.prototype.luhn_check=function(e){var t=e.toString();return+t.substring(t.length-1)===this.luhn_calculate(+t.substring(0,t.length-1))},l.prototype.luhn_calculate=function(e){for(var t,n=e.toString().split("").reverse(),r=0,i=0,o=n.length;o>i;++i)t=+n[i],i%2==0&&(t*=2)>9&&(t-=9),r+=t;return 9*r%10},l.prototype.md5=function(e){var t={str:"",key:null,raw:!1};if(e)if("string"==typeof e)t.str=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.str=this.string(),e={};if(!(t=c(e,t)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(t.str,t.key,t.raw)},l.prototype.file=function(e){var t,n=e||{},r=Object.keys(this.get("fileExtension"));if(t=this.word({length:n.length}),n.extension)return t+"."+n.extension;if(n.extensions){if(Array.isArray(n.extensions))return t+"."+this.pickone(n.extensions);if(n.extensions.constructor===Object){var i=n.extensions,o=Object.keys(i);return t+"."+this.pickone(i[this.pickone(o)])}throw new Error("Chance: Extensions must be an Array or Object")}if(n.fileType){var a=n.fileType;if(-1!==r.indexOf(a))return t+"."+this.pickone(this.get("fileExtension")[a]);throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return t+"."+this.pickone(this.get("fileExtension")[this.pickone(r)])};var g={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"],fr:["Aaron","Abdon","Abel","Abélard","Abelin","Abondance","Abraham","Absalon","Acace","Achaire","Achille","Adalard","Adalbald","Adalbéron","Adalbert","Adalric","Adam","Adegrin","Adel","Adelin","Andelin","Adelphe","Adam","Adéodat","Adhémar","Adjutor","Adolphe","Adonis","Adon","Adrien","Agapet","Agathange","Agathon","Agilbert","Agénor","Agnan","Aignan","Agrippin","Aimable","Aimé","Alain","Alban","Albin","Aubin","Albéric","Albert","Albertet","Alcibiade","Alcide","Alcée","Alcime","Aldonce","Aldric","Aldéric","Aleaume","Alexandre","Alexis","Alix","Alliaume","Aleaume","Almine","Almire","Aloïs","Alphée","Alphonse","Alpinien","Alverède","Amalric","Amaury","Amandin","Amant","Ambroise","Amédée","Amélien","Amiel","Amour","Anaël","Anastase","Anatole","Ancelin","Andéol","Andoche","André","Andoche","Ange","Angelin","Angilbe","Anglebert","Angoustan","Anicet","Anne","Annibal","Ansbert","Anselme","Anthelme","Antheaume","Anthime","Antide","Antoine","Antonius","Antonin","Apollinaire","Apollon","Aquilin","Arcade","Archambaud","Archambeau","Archange","Archibald","Arian","Ariel","Ariste","Aristide","Armand","Armel","Armin","Arnould","Arnaud","Arolde","Arsène","Arsinoé","Arthaud","Arthème","Arthur","Ascelin","Athanase","Aubry","Audebert","Audouin","Audran","Audric","Auguste","Augustin","Aurèle","Aurélien","Aurian","Auxence","Axel","Aymard","Aymeric","Aymon","Aymond","Balthazar","Baptiste","Barnabé","Barthélemy","Bartimée","Basile","Bastien","Baudouin","Bénigne","Benjamin","Benoît","Bérenger","Bérard","Bernard","Bertrand","Blaise","Bon","Boniface","Bouchard","Brice","Brieuc","Bruno","Brunon","Calixte","Calliste","Camélien","Camille","Camillien","Candide","Caribert","Carloman","Cassandre","Cassien","Cédric","Céleste","Célestin","Célien","Césaire","César","Charles","Charlemagne","Childebert","Chilpéric","Chrétien","Christian","Christodule","Christophe","Chrysostome","Clarence","Claude","Claudien","Cléandre","Clément","Clotaire","Côme","Constance","Constant","Constantin","Corentin","Cyprien","Cyriaque","Cyrille","Cyril","Damien","Daniel","David","Delphin","Denis","Désiré","Didier","Dieudonné","Dimitri","Dominique","Dorian","Dorothée","Edgard","Edmond","Édouard","Éleuthère","Élie","Élisée","Émeric","Émile","Émilien","Emmanuel","Enguerrand","Épiphane","Éric","Esprit","Ernest","Étienne","Eubert","Eudes","Eudoxe","Eugène","Eusèbe","Eustache","Évariste","Évrard","Fabien","Fabrice","Falba","Félicité","Félix","Ferdinand","Fiacre","Fidèle","Firmin","Flavien","Flodoard","Florent","Florentin","Florestan","Florian","Fortuné","Foulques","Francisque","François","Français","Franciscus","Francs","Frédéric","Fulbert","Fulcran","Fulgence","Gabin","Gabriel","Gaël","Garnier","Gaston","Gaspard","Gatien","Gaud","Gautier","Gédéon","Geoffroy","Georges","Géraud","Gérard","Gerbert","Germain","Gervais","Ghislain","Gilbert","Gilles","Girart","Gislebert","Gondebaud","Gonthier","Gontran","Gonzague","Grégoire","Guérin","Gui","Guillaume","Gustave","Guy","Guyot","Hardouin","Hector","Hédelin","Hélier","Henri","Herbert","Herluin","Hervé","Hilaire","Hildebert","Hincmar","Hippolyte","Honoré","Hubert","Hugues","Innocent","Isabeau","Isidore","Jacques","Japhet","Jason","Jean","Jeannel","Jeannot","Jérémie","Jérôme","Joachim","Joanny","Job","Jocelyn","Joël","Johan","Jonas","Jonathan","Joseph","Josse","Josselin","Jourdain","Jude","Judicaël","Jules","Julien","Juste","Justin","Lambert","Landry","Laurent","Lazare","Léandre","Léon","Léonard","Léopold","Leu","Loup","Leufroy","Libère","Liétald","Lionel","Loïc","Longin","Lorrain","Lorraine","Lothaire","Louis","Loup","Luc","Lucas","Lucien","Ludolphe","Ludovic","Macaire","Malo","Mamert","Manassé","Marc","Marceau","Marcel","Marcelin","Marius","Marseille","Martial","Martin","Mathurin","Matthias","Mathias","Matthieu","Maugis","Maurice","Mauricet","Maxence","Maxime","Maximilien","Mayeul","Médéric","Melchior","Mence","Merlin","Mérovée","Michaël","Michel","Moïse","Morgan","Nathan","Nathanaël","Narcisse","Néhémie","Nestor","Nestor","Nicéphore","Nicolas","Noé","Noël","Norbert","Normand","Normands","Octave","Odilon","Odon","Oger","Olivier","Oury","Pacôme","Palémon","Parfait","Pascal","Paterne","Patrice","Paul","Pépin","Perceval","Philémon","Philibert","Philippe","Philothée","Pie","Pierre","Pierrick","Prosper","Quentin","Raoul","Raphaël","Raymond","Régis","Réjean","Rémi","Renaud","René","Reybaud","Richard","Robert","Roch","Rodolphe","Rodrigue","Roger","Roland","Romain","Romuald","Roméo","Rome","Ronan","Roselin","Salomon","Samuel","Savin","Savinien","Scholastique","Sébastien","Séraphin","Serge","Séverin","Sidoine","Sigebert","Sigismond","Silvère","Simon","Siméon","Sixte","Stanislas","Stéphane","Stephan","Sylvain","Sylvestre","Tancrède","Tanguy","Taurin","Théodore","Théodose","Théophile","Théophraste","Thibault","Thibert","Thierry","Thomas","Timoléon","Timothée","Titien","Tonnin","Toussaint","Trajan","Tristan","Turold","Tim","Ulysse","Urbain","Valentin","Valère","Valéry","Venance","Venant","Venceslas","Vianney","Victor","Victorien","Victorin","Vigile","Vincent","Vital","Vitalien","Vivien","Waleran","Wandrille","Xavier","Xénophon","Yves","Zacharie","Zaché","Zéphirin"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"],fr:["Abdon","Abel","Abigaëlle","Abigaïl","Acacius","Acanthe","Adalbert","Adalsinde","Adegrine","Adélaïde","Adèle","Adélie","Adeline","Adeltrude","Adolphe","Adonis","Adrastée","Adrehilde","Adrienne","Agathe","Agilbert","Aglaé","Aignan","Agneflète","Agnès","Agrippine","Aimé","Alaine","Alaïs","Albane","Albérade","Alberte","Alcide","Alcine","Alcyone","Aldegonde","Aleth","Alexandrine","Alexine","Alice","Aliénor","Aliette","Aline","Alix","Alizé","Aloïse","Aloyse","Alphonsine","Althée","Amaliane","Amalthée","Amande","Amandine","Amant","Amarande","Amaranthe","Amaryllis","Ambre","Ambroisie","Amélie","Améthyste","Aminte","Anaël","Anaïs","Anastasie","Anatole","Ancelin","Andrée","Anémone","Angadrême","Angèle","Angeline","Angélique","Angilbert","Anicet","Annabelle","Anne","Annette","Annick","Annie","Annonciade","Ansbert","Anstrudie","Anthelme","Antigone","Antoinette","Antonine","Aphélie","Apolline","Apollonie","Aquiline","Arabelle","Arcadie","Archange","Argine","Ariane","Aricie","Ariel","Arielle","Arlette","Armance","Armande","Armandine","Armelle","Armide","Armelle","Armin","Arnaud","Arsène","Arsinoé","Artémis","Arthur","Ascelin","Ascension","Assomption","Astarté","Astérie","Astrée","Astrid","Athalie","Athanasie","Athina","Aube","Albert","Aude","Audrey","Augustine","Aure","Aurélie","Aurélien","Aurèle","Aurore","Auxence","Aveline","Abigaëlle","Avoye","Axelle","Aymard","Azalée","Adèle","Adeline","Barbe","Basilisse","Bathilde","Béatrice","Béatrix","Bénédicte","Bérengère","Bernadette","Berthe","Bertille","Beuve","Blanche","Blanc","Blandine","Brigitte","Brune","Brunehilde","Callista","Camille","Capucine","Carine","Caroline","Cassandre","Catherine","Cécile","Céleste","Célestine","Céline","Chantal","Charlène","Charline","Charlotte","Chloé","Christelle","Christiane","Christine","Claire","Clara","Claude","Claudine","Clarisse","Clémence","Clémentine","Cléo","Clio","Clotilde","Coline","Conception","Constance","Coralie","Coraline","Corentine","Corinne","Cyrielle","Daniel","Daniel","Daphné","Débora","Delphine","Denise","Diane","Dieudonné","Dominique","Doriane","Dorothée","Douce","Édith","Edmée","Éléonore","Éliane","Élia","Éliette","Élisabeth","Élise","Ella","Élodie","Éloïse","Elsa","Émeline","Émérance","Émérentienne","Émérencie","Émilie","Emma","Emmanuelle","Emmelie","Ernestine","Esther","Estelle","Eudoxie","Eugénie","Eulalie","Euphrasie","Eusébie","Évangéline","Eva","Ève","Évelyne","Fanny","Fantine","Faustine","Félicie","Fernande","Flavie","Fleur","Flore","Florence","Florie","Fortuné","France","Francia","Françoise","Francine","Gabrielle","Gaëlle","Garance","Geneviève","Georgette","Gerberge","Germaine","Gertrude","Gisèle","Guenièvre","Guilhemine","Guillemette","Gustave","Gwenael","Hélène","Héloïse","Henriette","Hermine","Hermione","Hippolyte","Honorine","Hortense","Huguette","Ines","Irène","Irina","Iris","Isabeau","Isabelle","Iseult","Isolde","Ismérie","Jacinthe","Jacqueline","Jade","Janine","Jeanne","Jocelyne","Joëlle","Joséphine","Judith","Julia","Julie","Jules","Juliette","Justine","Katy","Kathy","Katie","Laura","Laure","Laureline","Laurence","Laurene","Lauriane","Laurianne","Laurine","Léa","Léna","Léonie","Léon","Léontine","Lorraine","Lucie","Lucienne","Lucille","Ludivine","Lydie","Lydie","Megane","Madeleine","Magali","Maguelone","Mallaury","Manon","Marceline","Margot","Marguerite","Marianne","Marie","Myriam","Marie","Marine","Marion","Marlène","Marthe","Martine","Mathilde","Maud","Maureen","Mauricette","Maxime","Mélanie","Melissa","Mélissandre","Mélisande","Mélodie","Michel","Micheline","Mireille","Miriam","Moïse","Monique","Morgane","Muriel","Mylène","Nadège","Nadine","Nathalie","Nicole","Nicolette","Nine","Noël","Noémie","Océane","Odette","Odile","Olive","Olivia","Olympe","Ombline","Ombeline","Ophélie","Oriande","Oriane","Ozanne","Pascale","Pascaline","Paule","Paulette","Pauline","Priscille","Prisca","Prisque","Pécine","Pélagie","Pénélope","Perrine","Pétronille","Philippine","Philomène","Philothée","Primerose","Prudence","Pulchérie","Quentine","Quiéta","Quintia","Quintilla","Rachel","Raphaëlle","Raymonde","Rebecca","Régine","Réjeanne","René","Rita","Rita","Rolande","Romane","Rosalie","Rose","Roseline","Sabine","Salomé","Sandra","Sandrine","Sarah","Ségolène","Séverine","Sibylle","Simone","Sixt","Solange","Soline","Solène","Sophie","Stéphanie","Suzanne","Sylvain","Sylvie","Tatiana","Thaïs","Théodora","Thérèse","Tiphaine","Ursule","Valentine","Valérie","Véronique","Victoire","Victorine","Vinciane","Violette","Virginie","Viviane","Xavière","Yolande","Ysaline","Yvette","Yvonne","Zélie","Zita","Zoé"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"],uk:["Smith","Jones","Williams","Taylor","Brown","Davies","Evans","Wilson","Thomas","Johnson","Roberts","Robinson","Thompson","Wright","Walker","White","Edwards","Hughes","Green","Hall","Lewis","Harris","Clarke","Patel","Jackson","Wood","Turner","Martin","Cooper","Hill","Ward","Morris","Moore","Clark","Lee","King","Baker","Harrison","Morgan","Allen","James","Scott","Phillips","Watson","Davis","Parker","Price","Bennett","Young","Griffiths","Mitchell","Kelly","Cook","Carter","Richardson","Bailey","Collins","Bell","Shaw","Murphy","Miller","Cox","Richards","Khan","Marshall","Anderson","Simpson","Ellis","Adams","Singh","Begum","Wilkinson","Foster","Chapman","Powell","Webb","Rogers","Gray","Mason","Ali","Hunt","Hussain","Campbell","Matthews","Owen","Palmer","Holmes","Mills","Barnes","Knight","Lloyd","Butler","Russell","Barker","Fisher","Stevens","Jenkins","Murray","Dixon","Harvey","Graham","Pearson","Ahmed","Fletcher","Walsh","Kaur","Gibson","Howard","Andrews","Stewart","Elliott","Reynolds","Saunders","Payne","Fox","Ford","Pearce","Day","Brooks","West","Lawrence","Cole","Atkinson","Bradley","Spencer","Gill","Dawson","Ball","Burton","O'brien","Watts","Rose","Booth","Perry","Ryan","Grant","Wells","Armstrong","Francis","Rees","Hayes","Hart","Hudson","Newman","Barrett","Webster","Hunter","Gregory","Carr","Lowe","Page","Marsh","Riley","Dunn","Woods","Parsons","Berry","Stone","Reid","Holland","Hawkins","Harding","Porter","Robertson","Newton","Oliver","Reed","Kennedy","Williamson","Bird","Gardner","Shah","Dean","Lane","Cooke","Bates","Henderson","Parry","Burgess","Bishop","Walton","Burns","Nicholson","Shepherd","Ross","Cross","Long","Freeman","Warren","Nicholls","Hamilton","Byrne","Sutton","Mcdonald","Yates","Hodgson","Robson","Curtis","Hopkins","O'connor","Harper","Coleman","Watkins","Moss","Mccarthy","Chambers","O'neill","Griffin","Sharp","Hardy","Wheeler","Potter","Osborne","Johnston","Gordon","Doyle","Wallace","George","Jordan","Hutchinson","Rowe","Burke","May","Pritchard","Gilbert","Willis","Higgins","Read","Miles","Stevenson","Stephenson","Hammond","Arnold","Buckley","Walters","Hewitt","Barber","Nelson","Slater","Austin","Sullivan","Whitehead","Mann","Frost","Lambert","Stephens","Blake","Akhtar","Lynch","Goodwin","Barton","Woodward","Thomson","Cunningham","Quinn","Barnett","Baxter","Bibi","Clayton","Nash","Greenwood","Jennings","Holt","Kemp","Poole","Gallagher","Bond","Stokes","Tucker","Davidson","Fowler","Heath","Norman","Middleton","Lawson","Banks","French","Stanley","Jarvis","Gibbs","Ferguson","Hayward","Carroll","Douglas","Dickinson","Todd","Barlow","Peters","Lucas","Knowles","Hartley","Miah","Simmons","Morton","Alexander","Field","Morrison","Norris","Townsend","Preston","Hancock","Thornton","Baldwin","Burrows","Briggs","Parkinson","Reeves","Macdonald","Lamb","Black","Abbott","Sanders","Thorpe","Holden","Tomlinson","Perkins","Ashton","Rhodes","Fuller","Howe","Bryant","Vaughan","Dale","Davey","Weston","Bartlett","Whittaker","Davison","Kent","Skinner","Birch","Morley","Daniels","Glover","Howell","Cartwright","Pugh","Humphreys","Goddard","Brennan","Wall","Kirby","Bowen","Savage","Bull","Wong","Dobson","Smart","Wilkins","Kirk","Fraser","Duffy","Hicks","Patterson","Bradshaw","Little","Archer","Warner","Waters","O'sullivan","Farrell","Brookes","Atkins","Kay","Dodd","Bentley","Flynn","John","Schofield","Short","Haynes","Wade","Butcher","Henry","Sanderson","Crawford","Sheppard","Bolton","Coates","Giles","Gould","Houghton","Gibbons","Pratt","Manning","Law","Hooper","Noble","Dyer","Rahman","Clements","Moran","Sykes","Chan","Doherty","Connolly","Joyce","Franklin","Hobbs","Coles","Herbert","Steele","Kerr","Leach","Winter","Owens","Duncan","Naylor","Fleming","Horton","Finch","Fitzgerald","Randall","Carpenter","Marsden","Browne","Garner","Pickering","Hale","Dennis","Vincent","Chadwick","Chandler","Sharpe","Nolan","Lyons","Hurst","Collier","Peacock","Howarth","Faulkner","Rice","Pollard","Welch","Norton","Gough","Sinclair","Blackburn","Bryan","Conway","Power","Cameron","Daly","Allan","Hanson","Gardiner","Boyle","Myers","Turnbull","Wallis","Mahmood","Sims","Swift","Iqbal","Pope","Brady","Chamberlain","Rowley","Tyler","Farmer","Metcalfe","Hilton","Godfrey","Holloway","Parkin","Bray","Talbot","Donnelly","Nixon","Charlton","Benson","Whitehouse","Barry","Hope","Lord","North","Storey","Connor","Potts","Bevan","Hargreaves","Mclean","Mistry","Bruce","Howells","Hyde","Parkes","Wyatt","Fry","Lees","O'donnell","Craig","Forster","Mckenzie","Humphries","Mellor","Carey","Ingram","Summers","Leonard"],de:["Müller","Schmidt","Schneider","Fischer","Weber","Meyer","Wagner","Becker","Schulz","Hoffmann","Schäfer","Koch","Bauer","Richter","Klein","Wolf","Schröder","Neumann","Schwarz","Zimmermann","Braun","Krüger","Hofmann","Hartmann","Lange","Schmitt","Werner","Schmitz","Krause","Meier","Lehmann","Schmid","Schulze","Maier","Köhler","Herrmann","König","Walter","Mayer","Huber","Kaiser","Fuchs","Peters","Lang","Scholz","Möller","Weiß","Jung","Hahn","Schubert","Vogel","Friedrich","Keller","Günther","Frank","Berger","Winkler","Roth","Beck","Lorenz","Baumann","Franke","Albrecht","Schuster","Simon","Ludwig","Böhm","Winter","Kraus","Martin","Schumacher","Krämer","Vogt","Stein","Jäger","Otto","Sommer","Groß","Seidel","Heinrich","Brandt","Haas","Schreiber","Graf","Schulte","Dietrich","Ziegler","Kuhn","Kühn","Pohl","Engel","Horn","Busch","Bergmann","Thomas","Voigt","Sauer","Arnold","Wolff","Pfeiffer"],jp:["Sato","Suzuki","Takahashi","Tanaka","Watanabe","Ito","Yamamoto","Nakamura","Kobayashi","Kato","Yoshida","Yamada","Sasaki","Yamaguchi","Saito","Matsumoto","Inoue","Kimura","Hayashi","Shimizu","Yamazaki","Mori","Abe","Ikeda","Hashimoto","Yamashita","Ishikawa","Nakajima","Maeda","Fujita","Ogawa","Goto","Okada","Hasegawa","Murakami","Kondo","Ishii","Saito","Sakamoto","Endo","Aoki","Fujii","Nishimura","Fukuda","Ota","Miura","Fujiwara","Okamoto","Matsuda","Nakagawa","Nakano","Harada","Ono","Tamura","Takeuchi","Kaneko","Wada","Nakayama","Ishida","Ueda","Morita","Hara","Shibata","Sakai","Kudo","Yokoyama","Miyazaki","Miyamoto","Uchida","Takagi","Ando","Taniguchi","Ohno","Maruyama","Imai","Takada","Fujimoto","Takeda","Murata","Ueno","Sugiyama","Masuda","Sugawara","Hirano","Kojima","Otsuka","Chiba","Kubo","Matsui","Iwasaki","Sakurai","Kinoshita","Noguchi","Matsuo","Nomura","Kikuchi","Sano","Onishi","Sugimoto","Arai"],es:["Garcia","Fernandez","Lopez","Martinez","Gonzalez","Rodriguez","Sanchez","Perez","Martin","Gomez","Ruiz","Diaz","Hernandez","Alvarez","Jimenez","Moreno","Munoz","Alonso","Romero","Navarro","Gutierrez","Torres","Dominguez","Gil","Vazquez","Blanco","Serrano","Ramos","Castro","Suarez","Sanz","Rubio","Ortega","Molina","Delgado","Ortiz","Morales","Ramirez","Marin","Iglesias","Santos","Castillo","Garrido","Calvo","Pena","Cruz","Cano","Nunez","Prieto","Diez","Lozano","Vidal","Pascual","Ferrer","Medina","Vega","Leon","Herrero","Vicente","Mendez","Guerrero","Fuentes","Campos","Nieto","Cortes","Caballero","Ibanez","Lorenzo","Pastor","Gimenez","Saez","Soler","Marquez","Carrasco","Herrera","Montero","Arias","Crespo","Flores","Andres","Aguilar","Hidalgo","Cabrera","Mora","Duran","Velasco","Rey","Pardo","Roman","Vila","Bravo","Merino","Moya","Soto","Izquierdo","Reyes","Redondo","Marcos","Carmona","Menendez"],fr:["Martin","Bernard","Thomas","Petit","Robert","Richard","Durand","Dubois","Moreau","Laurent","Simon","Michel","Lefèvre","Leroy","Roux","David","Bertrand","Morel","Fournier","Girard","Bonnet","Dupont","Lambert","Fontaine","Rousseau","Vincent","Müller","Lefèvre","Faure","André","Mercier","Blanc","Guérin","Boyer","Garnier","Chevalier","François","Legrand","Gauthier","Garcia","Perrin","Robin","Clément","Morin","Nicolas","Henry","Roussel","Matthieu","Gautier","Masson","Marchand","Duval","Denis","Dumont","Marie","Lemaire","Noël","Meyer","Dufour","Meunier","Brun","Blanchard","Giraud","Joly","Rivière","Lucas","Brunet","Gaillard","Barbier","Arnaud","Martínez","Gérard","Roche","Renard","Schmitt","Roy","Leroux","Colin","Vidal","Caron","Picard","Roger","Fabre","Aubert","Lemoine","Renaud","Dumas","Lacroix","Olivier","Philippe","Bourgeois","Pierre","Benoît","Rey","Leclerc","Payet","Rolland","Leclercq","Guillaume","Lecomte","López","Jean","Dupuy","Guillot","Hubert","Berger","Carpentier","Sánchez","Dupuis","Moulin","Louis","Deschamps","Huet","Vasseur","Perez","Boucher","Fleury","Royer","Klein","Jacquet","Adam","Paris","Poirier","Marty","Aubry","Guyot","Carré","Charles","Renault","Charpentier","Ménard","Maillard","Baron","Bertin","Bailly","Hervé","Schneider","Fernández","Le GallGall","Collet","Léger","Bouvier","Julien","Prévost","Millet","Perrot","Daniel","Le RouxRoux","Cousin","Germain","Breton","Besson","Langlois","Rémi","Le GoffGoff","Pelletier","Lévêque","Perrier","Leblanc","Barré","Lebrun","Marchal","Weber","Mallet","Hamon","Boulanger","Jacob","Monnier","Michaud","Rodríguez","Guichard","Gillet","Étienne","Grondin","Poulain","Tessier","Chevallier","Collin","Chauvin","Da SilvaSilva","Bouchet","Gay","Lemaître","Bénard","Maréchal","Humbert","Reynaud","Antoine","Hoarau","Perret","Barthélemy","Cordier","Pichon","Lejeune","Gilbert","Lamy","Delaunay","Pasquier","Carlier","LaporteLaporte"]},countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager.","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]}},m=Object.prototype.hasOwnProperty,y=Object.keys||function(e){var t=[];for(var n in e)m.call(e,n)&&t.push(n);return t};function b(e,t){var n=Array.isArray(e),r=t||(n?new Array(e.length):{});return n?function(e,t){for(var n=0,r=e.length;n0)return this.normal_pool(e);var t,n,r,i=e.mean,o=e.dev;do{t=(n=2*this.random()-1)*n+(r=2*this.random()-1)*r}while(t>=1);return o*(n*Math.sqrt(-2*Math.log(t)/t))+i},l.prototype.normal_pool=function(e){var t=0;do{var n=Math.round(this.normal({mean:e.mean,dev:e.dev}));if(n=0)return e.pool[n];t++}while(t<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},l.prototype.radio=function(e){var t="";switch((e=c(e,{side:"?"})).side.toLowerCase()){case"east":case"e":t="W";break;case"west":case"w":t="K";break;default:t=this.character({pool:"KW"})}return t+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},l.prototype.set=function(e,t){"string"==typeof e?g[e]=t:g=b(e,g)},l.prototype.tv=function(e){return this.radio(e)},l.prototype.cnpj=function(){var e=this.n(this.natural,8,{max:9}),t=2+6*e[7]+7*e[6]+8*e[5]+9*e[4]+2*e[3]+3*e[2]+4*e[1]+5*e[0];(t=11-t%11)>=10&&(t=0);var n=2*t+3+7*e[7]+8*e[6]+9*e[5]+2*e[4]+3*e[3]+4*e[2]+5*e[1]+6*e[0];return(n=11-n%11)>=10&&(n=0),""+e[0]+e[1]+"."+e[2]+e[3]+e[4]+"."+e[5]+e[6]+e[7]+"/0001-"+t+n},l.prototype.mersenne_twister=function(e){return new v(e)},l.prototype.blueimp_md5=function(){return new C};var v=function(e){void 0===e&&(e=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};v.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},v.prototype.init_by_array=function(e,t){var n,r,i=1,o=0;for(this.init_genrand(19650218),n=this.N>t?this.N:t;n;n--)r=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&r)>>>16)<<16)+1664525*(65535&r))+e[o]+o,this.mt[i]>>>=0,o++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),o>=t&&(o=0);for(n=this.N-1;n;n--)r=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&r)>>>16)<<16)+1566083941*(65535&r))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1);this.mt[0]=2147483648},v.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n>>1^t[1&e];for(;n>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},v.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},v.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},v.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},v.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},v.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var C=function(){};C.prototype.VERSION="1.0.1",C.prototype.safe_add=function(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n},C.prototype.bit_roll=function(e,t){return e<>>32-t},C.prototype.md5_cmn=function(e,t,n,r,i,o){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(t,e),this.safe_add(r,o)),i),n)},C.prototype.md5_ff=function(e,t,n,r,i,o,a){return this.md5_cmn(t&n|~t&r,e,t,i,o,a)},C.prototype.md5_gg=function(e,t,n,r,i,o,a){return this.md5_cmn(t&r|n&~r,e,t,i,o,a)},C.prototype.md5_hh=function(e,t,n,r,i,o,a){return this.md5_cmn(t^n^r,e,t,i,o,a)},C.prototype.md5_ii=function(e,t,n,r,i,o,a){return this.md5_cmn(n^(t|~r),e,t,i,o,a)},C.prototype.binl_md5=function(e,t){e[t>>5]|=128<>>9<<4)]=t;var n,r,i,o,a,s=1732584193,u=-271733879,d=-1732584194,l=271733878;for(n=0;n>5]>>>t%32&255);return n},C.prototype.rstr2binl=function(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(i=this.binl_md5(i,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^i[n],a[n]=1549556828^i[n];return r=this.binl_md5(o.concat(this.rstr2binl(t)),512+8*t.length),this.binl2rstr(this.binl_md5(a.concat(r),640))},C.prototype.rstr2hex=function(e){var t,n,r="";for(n=0;n>>4&15)+"0123456789abcdef".charAt(15&t);return r},C.prototype.str2rstr_utf8=function(e){return unescape(encodeURIComponent(e))},C.prototype.raw_md5=function(e){return this.rstr_md5(this.str2rstr_utf8(e))},C.prototype.hex_md5=function(e){return this.rstr2hex(this.raw_md5(e))},C.prototype.raw_hmac_md5=function(e,t){return this.rstr_hmac_md5(this.str2rstr_utf8(e),this.str2rstr_utf8(t))},C.prototype.hex_hmac_md5=function(e,t){return this.rstr2hex(this.raw_hmac_md5(e,t))},C.prototype.md5=function(e,t,n){return t?n?this.raw_hmac_md5(t,e):this.hex_hmac_md5(t,e):n?this.raw_md5(e):this.hex_md5(e)},void 0!==e&&e.exports&&(t=e.exports=l),t.Chance=l,void 0===(r=function(){return l}.apply(t,[]))||(e.exports=r),"undefined"!=typeof importScripts&&(chance=new l,self.Chance=l),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=l,window.chance=new l)}()}).call(this,n(209).Buffer)},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} /*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT */ -e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-a)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,i=0;r>>6-2*i);return t}},e.exports=r},function(e,t,n){var r,i,a,o,s;r=n(212),i=n(130).utf8,a=n(211),o=n(130).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?o.stringToBytes(e):i.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||(e=e.toString());for(var n=r.bytesToWords(e),u=8*e.length,c=1732584193,l=-271733879,d=-1732584194,f=271733878,p=0;p>>24)|4278255360&(n[p]<<24|n[p]>>>8);n[u>>>5]|=128<>>9<<4)]=u;var h=s._ff,m=s._gg,g=s._hh,y=s._ii;for(p=0;p>>0,l=l+b>>>0,d=d+C>>>0,f=f+S>>>0}return r.endian([c,l,d,f])})._ff=function(e,t,n,r,i,a,o){var s=e+(t&n|~t&r)+(i>>>0)+o;return(s<>>32-a)+t},s._gg=function(e,t,n,r,i,a,o){var s=e+(t&r|n&~r)+(i>>>0)+o;return(s<>>32-a)+t},s._hh=function(e,t,n,r,i,a,o){var s=e+(t^n^r)+(i>>>0)+o;return(s<>>32-a)+t},s._ii=function(e,t,n,r,i,a,o){var s=e+(n^(t|~r))+(i>>>0)+o;return(s<>>32-a)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(void 0===e||null===e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?o.bytesToString(n):r.bytesToHex(n)}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(8)),s=r(n(7)),u=r(n(6)),c=r(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o},d=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof o.default)return(0,o.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(4),m=n(131),g=n(64),y=function(){function e(t){(0,i.default)(this,e),this.randomGenerator=t}return(0,a.default)(e,[{key:"btoa",value:function(e){var t="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode(parseInt("".concat(g.Utils.hexadecimalPrefix).concat(t)))});for(var n,r,i=0,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.charAt(0|i)||(a="=",i%1);t+=a.charAt(63&n>>8-i%1*8)){if((r=e.charCodeAt(i+=.75))>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");n=n<<8|r}return t}},{key:"hideString",value:function(e,t){var n=this,r=this.randomGenerator.getRandomGenerator().string({length:t,pool:m.RandomGenerator.randomGeneratorPool}).replace(new RegExp("[".concat(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"]"),"g"),""),i=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(i),[function(e,t){for(var r=-1,i=-1,a="";r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=n(4),g=function(){function e(t){(0,a.default)(this,e),this.randomGenerator=t}return(0,o.default)(e,[{key:"createWithRange",value:function(e){for(var t=[],n=0;n=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=n(4),g=n(15),y=function(){function e(t,n){(0,a.default)(this,e),this.storageLength=0,this.randomGenerator=t,this.options=n}return(0,o.default)(e,[{key:"initialize",value:function(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage[e];if(!t)throw new Error("No value found in array storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=this.storage.indexOf(e);return t>=0?t:null}},{key:"getLength",value:function(){return this.storageLength}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=(0,i.default)(this.storage).concat((0,i.default)(e.getStorage())),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}}]),e}();d([g.initializable(),f("design:type",Array)],y.prototype,"storage",void 0),d([g.initializable(),f("design:type",String)],y.prototype,"storageId",void 0),d([h.postConstruct(),f("design:type",Function),f("design:paramtypes",[]),f("design:returntype",void 0)],y.prototype,"initialize",null),y=d([h.injectable(),p(0,h.inject(m.ServiceIdentifiers.IRandomGenerator)),p(1,h.inject(m.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Object,Object])],y),t.ArrayStorage=y},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(81)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(217),S=r=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,r,i))).identifierNamesGenerator=e(i),o.arrayUtils=n,o}return(0,l.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(){(0,c.default)((0,u.default)(t.prototype),"initialize",this).call(this);var e=this.identifierNamesGenerator.generate().slice(0,r.stringArrayNameLength),n=this.identifierNamesGenerator.generate().slice(0,r.stringArrayNameLength),i="".concat(this.options.identifiersPrefix).concat(e),a="".concat(this.options.identifiersPrefix).concat(n);this.storageId="".concat(i,"|").concat(a)}},{key:"rotateArray",value:function(e){this.storage=this.arrayUtils.rotate(this.storage,e)}},{key:"toString",value:function(){return this.storage.map(function(e){return"'".concat(e,"'")}).toString()}}]),t}(C.ArrayStorage);S.stringArrayNameLength=7,m([v.postConstruct(),g("design:type",Function),g("design:paramtypes",[]),g("design:returntype",void 0)],S.prototype,"initialize",null),S=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),y(1,v.inject(b.ServiceIdentifiers.IArrayUtils)),y(2,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(3,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object,Object])],S),t.StringArrayStorage=S},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(81)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(151),S=n(132),A=r=function(e){function t(e,n,r){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).customNodeGroupFactory=e,i}return(0,l.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(){var e=this;(0,c.default)((0,u.default)(t.prototype),"initialize",this).call(this),r.customNodeGroupsList.forEach(function(t){var n=e.customNodeGroupFactory(t);n&&e.storage.set(t,n)})}}]),t}(S.MapStorage);A.customNodeGroupsList=[C.CustomNodeGroup.ConsoleOutputCustomNodeGroup,C.CustomNodeGroup.DebugProtectionCustomNodeGroup,C.CustomNodeGroup.DomainLockCustomNodeGroup,C.CustomNodeGroup.SelfDefendingCustomNodeGroup,C.CustomNodeGroup.StringArrayCustomNodeGroup],m([v.postConstruct(),g("design:type",Function),g("design:paramtypes",[]),g("design:returntype",void 0)],A.prototype,"initialize",null),A=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.Factory__ICustomNodeGroup)),y(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(2,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object])],A),t.CustomNodeGroupStorage=A},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(11)),o=r(n(9)),s=r(n(10)),u=r(n(8)),c=r(n(7)),l=r(n(6)),d=r(n(5)),f=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),g=n(4),y=function(e){function t(e,n){return(0,i.default)(this,t),(0,a.default)(this,(0,o.default)(t).call(this,e,n))}return(0,s.default)(t,e),t}(n(132).MapStorage);y=f([m.injectable(),h(0,m.inject(g.ServiceIdentifiers.IRandomGenerator)),h(1,m.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Object,Object])],y),t.ControlFlowStorage=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(4),a=n(220),o=n(219),s=n(218);t.storagesModule=new r.ContainerModule(function(e){e(i.ServiceIdentifiers.TCustomNodeGroupStorage).to(o.CustomNodeGroupStorage).inSingletonScope(),e(i.ServiceIdentifiers.TStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(i.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(a.ControlFlowStorage),e(i.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function(e){return function(){var t=new(e.container.get(i.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(i.ServiceIdentifiers.IRandomGenerator),e.container.get(i.ServiceIdentifiers.IOptions));return t.initialize(),t}})})},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(18),b=n(19),C=n(14),S=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return C.NodeUtils.parentizeNode(e,t)}}]),t}(b.AbstractNodeTransformer);S=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(1,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],S),t.ParentificationTransformer=S},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(133),C=n(18),S=n(19),A=n(28),E=r=function(e){function t(e,n,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,i))).obfuscatingGuards=r.obfuscatingGuardsList.map(e),o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case C.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=this.obfuscatingGuards.every(function(t){return t.check(e)});return A.NodeMetadata.set(e,{ignoredNode:!n}),e}}]),t}(S.AbstractNodeTransformer);E.obfuscatingGuardsList=[b.ObfuscatingGuard.BlackListNodeGuard,b.ObfuscatingGuard.ConditionalCommentNodeGuard],E=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__INodeGuard)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],E),t.ObfuscatingGuardsTransformer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(18),b=n(19),C=n(13),S=n(28),A=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),C.NodeGuards.isIdentifierNode(e)&&S.NodeMetadata.set(e,{renamedIdentifier:!1}),C.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}}]),t}(b.AbstractNodeTransformer);A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(1,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],A),t.MetadataTransformer=A},function(e,t){e.exports=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})}},function(e,t,n){"use strict";var r,i=n(0),a=i(n(57)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}},v=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var b=n(1),C=n(4),S=v(n(225)),A=n(18),E=n(19),N=n(20),I=n(13),_=n(14),x=r=function(e){function t(e,n){var r;return(0,o.default)(this,t),(r=(0,u.default)(this,(0,c.default)(t).call(this,e,n))).evalRootAstHostNodeSet=new a.default,r}return(0,l.default)(t,e),(0,s.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case A.TransformationStage.Preparing:return{enter:function(e,n){if(n&&I.NodeGuards.isCallExpressionNode(e)&&I.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return t.transformNode(e,n)}};case A.TransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:function(e,n){if(n&&t.isEvalRootAstHostNode(e))return t.restoreNode(e,n)}}:null;default:return null}}},{key:"transformNode",value:function(e,t){var n=e.arguments[0];if(!n)return e;var i,a=r.extractEvalStringFromCallExpressionArgument(n);if(!a)return e;try{i=_.NodeUtils.convertCodeToStructure(a)}catch(t){return e}var o=N.NodeFactory.functionExpressionNode([],N.NodeFactory.blockStatementNode(i));return this.evalRootAstHostNodeSet.add(o),o}},{key:"restoreNode",value:function(e,t){var n=e.body.body,r=_.NodeUtils.convertStructureToCode(n);return N.NodeFactory.callExpressionNode(N.NodeFactory.identifierNode("eval"),[N.NodeFactory.literalNode(S.default(r))])}},{key:"isEvalRootAstHostNode",value:function(e){return I.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}}],[{key:"extractEvalStringFromCallExpressionArgument",value:function(e){return I.NodeGuards.isLiteralNode(e)?r.extractEvalStringFromLiteralNode(e):I.NodeGuards.isTemplateLiteralNode(e)?r.extractEvalStringFromTemplateLiteralNode(e):null}},{key:"extractEvalStringFromLiteralNode",value:function(e){return"string"==typeof e.value?e.value:null}},{key:"extractEvalStringFromTemplateLiteralNode",value:function(e){var t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}}]),t}(E.AbstractNodeTransformer);x=r=m([b.injectable(),y(0,b.inject(C.ServiceIdentifiers.IRandomGenerator)),y(1,b.inject(C.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object])],x),t.EvalCallExpressionTransformer=x},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(46),b=n(18),C=n(19),S=n(13),A=function(e){function t(e,n,r,a,u){var c;return(0,i.default)(this,t),(c=(0,o.default)(this,(0,s.default)(t).call(this,a,u))).stackTraceData=[],c.stackTraceAnalyzer=e,c.obfuscationEventEmitter=n,c.customNodeGroupStorage=r,c}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Preparing:return{leave:function(e,n){if(S.NodeGuards.isProgramNode(e))return t.analyzeNode(e,n),t.appendCustomNodesBeforeObfuscation(e,n),t.transformNode(e,n)}};case b.TransformationStage.Finalizing:return{leave:function(e,n){S.NodeGuards.isProgramNode(e)&&t.appendCustomNodesAfterObfuscation(e,n)}};default:return null}}},{key:"analyzeNode",value:function(e,t){this.stackTraceData=this.stackTraceAnalyzer.analyze(e)}},{key:"transformNode",value:function(e,t){return e}},{key:"appendCustomNodesBeforeObfuscation",value:function(e,t){var n=this;this.customNodeGroupStorage.getStorage().forEach(function(e){e.initialize(),n.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendCustomNodes.bind(e))}),this.obfuscationEventEmitter.emit(v.ObfuscationEvent.BeforeObfuscation,e,this.stackTraceData)}},{key:"appendCustomNodesAfterObfuscation",value:function(e,t){this.obfuscationEventEmitter.emit(v.ObfuscationEvent.AfterObfuscation,e,this.stackTraceData)}}]),t}(C.AbstractNodeTransformer);A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IStackTraceAnalyzer)),m(1,g.inject(y.ServiceIdentifiers.IObfuscationEventEmitter)),m(2,g.inject(y.ServiceIdentifiers.TCustomNodeGroupStorage)),m(3,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(4,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object,Object,Object,Object])],A),t.CustomNodesTransformer=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(7)),u=i(n(6)),c=i(n(5)),l=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,s.default)(t,n,o),o};Object.defineProperty(t,"__esModule",{value:!0});var d=n(1),f=n(13),p=r=function(){function e(){(0,a.default)(this,e),this.obfuscationAllowedForCurrentNode=!0,this.obfuscationAllowedForNextNode=null}return(0,o.default)(e,[{key:"check",value:function(e){if(this.obfuscationAllowedForNextNode&&(this.obfuscationAllowedForCurrentNode=this.obfuscationAllowedForNextNode,this.obfuscationAllowedForNextNode=null),!f.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowedForCurrentNode;var t=e.leadingComments,n=e.trailingComments;return t&&(this.obfuscationAllowedForCurrentNode=this.checkComments(t)),n&&(this.obfuscationAllowedForNextNode=this.checkComments(n)),this.obfuscationAllowedForCurrentNode}},{key:"checkComments",value:function(e){for(var t=e.length,n=this.obfuscationAllowedForCurrentNode,i=0;i=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(18),C=n(19),S=n(13),A=r=function(e){function t(e,n){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Preparing:return{leave:function(e,n){if(n&&S.NodeGuards.isNodeWithComments(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return e.leadingComments&&(e.leadingComments=this.transformComments(e.leadingComments)),e.trailingComments&&(e.trailingComments=this.transformComments(e.trailingComments)),e}},{key:"transformComments",value:function(e){return e.filter(function(e){return r.preservedWords.some(function(t){return e.value.includes(t)})})}}]),t}(C.AbstractNodeTransformer);A.preservedWords=["@license","@preserve"],A=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(1,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object,Object])],A),t.CommentsTransformer=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(8)),u=i(n(7)),c=i(n(6)),l=i(n(5)),d=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(13),m=r=function(){function e(){(0,a.default)(this,e),this.blackListGuardsLength=r.blackListGuards.length}return(0,o.default)(e,[{key:"check",value:function(e){for(var t=0;t=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o};Object.defineProperty(t,"__esModule",{value:!0});var p=n(1),h=n(242),m=n(241),g=n(240),y=n(239),v=n(238),b=n(237),C=n(236),S=n(235),A=n(234),E=n(233),N=n(232),I=r=function(){function e(){(0,s.default)(this,e)}return(0,u.default)(e,[{key:"normalize",value:function(e){var t=(0,o.default)({},e),n=!0,i=!1,s=void 0;try{for(var u,c=(0,a.default)(r.normalizerRules);!(n=(u=c.next()).done);n=!0){t=(0,u.value)(t)}}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return t}}]),e}();I.normalizerRules=[h.ControlFlowFlatteningThresholdRule,m.DeadCodeInjectionRule,g.DeadCodeInjectionThresholdRule,y.DomainLockRule,v.InputFileNameRule,b.SelfDefendingRule,C.SourceMapBaseUrlRule,S.SourceMapFileNameRule,A.StringArrayRule,E.StringArrayEncodingRule,N.StringArrayThresholdRule],I=r=f([p.injectable()],I),t.OptionsNormalizer=I},function(e,t,n){"use strict";var r=n(0),i=r(n(104)),a=r(n(56)),o=r(n(2)),s=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(){(0,o.default)(this,e)}return(0,s.default)(e,null,[{key:"format",value:function(t){return t.reduce(function(t,n){return(0,a.default)(t).concat([e.formatWithNestedConstraints(n)])},[]).join("\n")}},{key:"formatWithNestedConstraints",value:function(e){var t=e.constraints,n="`".concat(e.property,"` errors:\n"),r=(0,i.default)(t).map(function(e){return" - ".concat(t[e],"\n")}).join();return"".concat(n).concat(r)}}]),e}();t.ValidationErrorsFormatter=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(63),i=n(135),a=n(98),o=n(53),s=n(52);t.registerDecorator=function(e){var t;if(e.validator instanceof Function)t=e.validator;else{var n=e.validator;t=function(){function e(){}return e.prototype.validate=function(e,t){return n.validate(e,t)},e.prototype.defaultMessage=function(e){return n.defaultMessage?n.defaultMessage(e):""},e}(),s.getFromContainer(r.MetadataStorage).addConstraintMetadata(new i.ConstraintMetadata(t,e.name,e.async))}var u={type:o.ValidationTypes.CUSTOM_VALIDATION,target:e.target,propertyName:e.propertyName,validationOptions:e.options,constraintCls:t,constraints:e.constraints};s.getFromContainer(r.MetadataStorage).addValidationMetadata(new a.ValidationMetadata(u))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(53),i=n(98),a=n(135),o=n(52),s=n(63);t.ValidatorConstraint=function(e){return function(t){var n=!(!e||!e.async),r=e&&e.name?e.name:"";r||(r=t.name)||(r=r.replace(/\.?([A-Z]+)/g,function(e,t){return"_"+t.toLowerCase()}).replace(/^_/,""));var i=new a.ConstraintMetadata(t,r,n);o.getFromContainer(s.MetadataStorage).addConstraintMetadata(i)}},t.Validate=function(e,t,n){return function(a,u){var c={type:r.ValidationTypes.CUSTOM_VALIDATION,target:a.constructor,propertyName:u,constraintCls:e,constraints:t instanceof Array?t:void 0,validationOptions:t instanceof Array?n:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(c))}},t.ValidateNested=function(e){return function(t,n){var a={type:r.ValidationTypes.NESTED_VALIDATION,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.Allow=function(e){return function(t,n){var a={type:r.ValidationTypes.WHITELIST,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.ValidateIf=function(e,t){return function(n,a){var u={type:r.ValidationTypes.CONDITIONAL_VALIDATION,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsDefined=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_DEFINED,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.Equals=function(e,t){return function(n,a){var u={type:r.ValidationTypes.EQUALS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.NotEquals=function(e,t){return function(n,a){var u={type:r.ValidationTypes.NOT_EQUALS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsEmpty=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsNotEmpty=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_NOT_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsIn=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_IN,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsNotIn=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_NOT_IN,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsOptional=function(e){return function(t,n){var a={type:r.ValidationTypes.CONDITIONAL_VALIDATION,target:t.constructor,propertyName:n,constraints:[function(e,t){return null!==e[n]&&void 0!==e[n]}],validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsBoolean=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_BOOLEAN,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsDate=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_DATE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsNumber=function(e,t){return void 0===e&&(e={}),function(n,a){var u={type:r.ValidationTypes.IS_NUMBER,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsInt=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_INT,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsString=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_STRING,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsDateString=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_DATE_STRING,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsArray=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ARRAY,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsEnum=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_ENUM,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsDivisibleBy=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_DIVISIBLE_BY,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsPositive=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_POSITIVE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsNegative=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_NEGATIVE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.Min=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MIN,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.Max=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MAX,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MinDate=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MIN_DATE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MaxDate=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MAX_DATE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsBooleanString=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_BOOLEAN_STRING,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsNumberString=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_NUMBER_STRING,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.Contains=function(e,t){return function(n,a){var u={type:r.ValidationTypes.CONTAINS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.NotContains=function(e,t){return function(n,a){var u={type:r.ValidationTypes.NOT_CONTAINS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsAlpha=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ALPHA,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsAlphanumeric=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ALPHANUMERIC,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsAscii=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ASCII,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsBase64=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_BASE64,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsByteLength=function(e,t,n){return function(a,u){var c={type:r.ValidationTypes.IS_BYTE_LENGTH,target:a.constructor,propertyName:u,constraints:[e,t],validationOptions:n};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(c))}},t.IsCreditCard=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_CREDIT_CARD,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsCurrency=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_CURRENCY,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsEmail=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_EMAIL,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsFQDN=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_FQDN,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsFullWidth=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_FULL_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsHalfWidth=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_HALF_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsVariableWidth=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_VARIABLE_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsHexColor=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_HEX_COLOR,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsHexadecimal=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_HEXADECIMAL,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsIP=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_IP,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsISBN=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_ISBN,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsISIN=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ISIN,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsISO8601=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_ISO8601,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsJSON=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_JSON,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsLowercase=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_LOWERCASE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsMobilePhone=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_MOBILE_PHONE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsMongoId=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_MONGO_ID,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsMultibyte=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_MULTIBYTE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsSurrogatePair=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_SURROGATE_PAIR,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsUrl=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_URL,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsUUID=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_UUID,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsUppercase=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_UPPERCASE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.Length=function(e,t,n){return function(a,u){var c={type:r.ValidationTypes.LENGTH,target:a.constructor,propertyName:u,constraints:[e,t],validationOptions:n};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(c))}},t.MinLength=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MIN_LENGTH,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MaxLength=function(e,t){return function(n,a){var u={type:r.ValidationTypes.MAX_LENGTH,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.Matches=function(e,t,n){var a;return t&&t instanceof Object&&!n?n=t:a=t,function(t,u){var c={type:r.ValidationTypes.MATCHES,target:t.constructor,propertyName:u,constraints:[e,a],validationOptions:n};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(c))}},t.IsMilitaryTime=function(e){return function(t,n){var a={type:r.ValidationTypes.IS_MILITARY_TIME,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.ArrayContains=function(e,t){return function(n,a){var u={type:r.ValidationTypes.ARRAY_CONTAINS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayNotContains=function(e,t){return function(n,a){var u={type:r.ValidationTypes.ARRAY_NOT_CONTAINS,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayNotEmpty=function(e){return function(t,n){var a={type:r.ValidationTypes.ARRAY_NOT_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.ArrayMinSize=function(e,t){return function(n,a){var u={type:r.ValidationTypes.ARRAY_MIN_SIZE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayMaxSize=function(e,t){return function(n,a){var u={type:r.ValidationTypes.ARRAY_MAX_SIZE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayUnique=function(e){return function(t,n){var a={type:r.ValidationTypes.ARRAY_UNIQUE,target:t.constructor,propertyName:n,validationOptions:e};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(a))}},t.IsInstance=function(e,t){return function(n,a){var u={type:r.ValidationTypes.IS_INSTANCE,target:n.constructor,propertyName:a,constraints:[e],validationOptions:t};o.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t=(0,a.default)(t,o);var n=e.split("@"),r=n.pop(),i=[n.join("@"),r];if(i[1]=i[1].toLowerCase(),"gmail.com"===i[1]||"googlemail.com"===i[1]){if(t.gmail_remove_subaddress&&(i[0]=i[0].split("+")[0]),t.gmail_remove_dots&&(i[0]=i[0].replace(/\./g,"")),!i[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(i[0]=i[0].toLowerCase()),i[1]=t.gmail_convert_googlemaildotcom?"gmail.com":i[1]}else if(~s.indexOf(i[1])){if(t.icloud_remove_subaddress&&(i[0]=i[0].split("+")[0]),!i[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(i[0]=i[0].toLowerCase())}else if(~u.indexOf(i[1])){if(t.outlookdotcom_remove_subaddress&&(i[0]=i[0].split("+")[0]),!i[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(i[0]=i[0].toLowerCase())}else if(~c.indexOf(i[1])){if(t.yahoo_remove_subaddress){var l=i[0].split("-");i[0]=l.length>1?l.slice(0,-1).join("-"):l[0]}if(!i[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(i[0]=i[0].toLowerCase())}else t.all_lowercase&&(i[0]=i[0].toLowerCase());return i.join("@")};var r,i=n(51),a=(r=i)&&r.__esModule?r:{default:r};var o={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},s=["icloud.com","me.com"],u=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],c=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"];e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(e);for(var n=e.length-1;n>=0;n--)if(-1===t.indexOf(e[n]))return!1;return!0};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(e),e.replace(new RegExp("[^"+t+"]+","g"),"")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,r.default)(e);var n=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,i.default)(e,n)};var r=a(n(12)),i=a(n(136));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),e.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(///g,"/").replace(/\/g,"\\").replace(/`/g,"`")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,r.default)((0,i.default)(e,t),t)};var r=a(n(137)),i=a(n(138));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.locales=void 0,t.default=function(e,t){if((0,a.default)(e),t in c)return c[t].test(e);if("any"===t){for(var n in c){if(c.hasOwnProperty(n))if(c[n].test(e))return!0}return!1}throw new Error("Invalid locale '"+t+"'")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^\d{4}$/,s=/^\d{5}$/,u=/^\d{6}$/,c={AT:o,AU:o,BE:o,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:o,CZ:/^\d{3}\s?\d{2}$/,DE:s,DK:o,DZ:s,ES:s,FI:s,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,IL:s,IN:u,IS:/^\d{3}$/,IT:s,JP:/^\d{3}\-\d{4}$/,KE:s,LI:/^(948[5-9]|949[0-7])$/,MX:s,NL:/^\d{4}\s?[a-z]{2}$/i,NO:o,PL:/^\d{2}\-\d{3}$/,PT:/^\d{4}\-\d{3}?$/,RO:u,RU:u,SA:s,SE:/^\d{3}\s?\d{2}$/,TW:/^\d{3}(\d{2})?$/,US:/^\d{5}(-\d{4})?$/,ZA:o,ZM:s};t.locales=Object.keys(c)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,a.default)(e),!e.includes(","))return!1;var t=e.split(",");return o.test(t[0])&&s.test(t[1])};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,s=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)||s.test(e)||u.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,s=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,u=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^\s*data:([a-z]+\/[a-z0-9\-\+]+(;[a-z\-]+=[a-z0-9\-]+)?)?(;base64)?,[a-z0-9!\$&',\(\)\*\+,;=\-\._~:@\/\?%\s]*\s*$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(e);var t=e.length;if(!t||t%4!=0||o.test(e))return!1;var n=e.indexOf("=");return-1===n||n===t-1||n===t-2&&"="===e[t-1]};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/[^A-Z0-9+\/=]/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.includes(e.toUpperCase())};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"];e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),function(e){var t="\\d{"+e.digits_after_decimal[0]+"}";e.digits_after_decimal.forEach(function(e,n){0!==n&&(t=t+"|\\d{"+e+"}")});var n="(\\"+e.symbol.replace(/\./g,"\\.")+")"+(e.require_symbol?"":"?"),r="[1-9]\\d{0,2}(\\"+e.thousands_separator+"\\d{3})*",i="("+["0","[1-9]\\d*",r].join("|")+")?",a="(\\"+e.decimal_separator+"("+t+"))"+(e.require_decimal?"":"?"),o=i+(e.allow_decimal||e.require_decimal?a:"");return e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?o+="-?":e.negative_sign_before_digits&&(o="-?"+o)),e.allow_negative_sign_placeholder?o="( (?!\\-))?"+o:e.allow_space_after_symbol?o=" ?"+o:e.allow_space_after_digits&&(o+="( (?!$))?"),e.symbol_after_digits?o+=n:o=n+o,e.allow_negatives&&(e.parens_for_negatives?o="(\\("+o+"\\)|"+o+")":e.negative_sign_before_digits||e.negative_sign_after_digits||(o="-?"+o)),new RegExp("^(?!-? )(?=.*\\d)"+o+"$")}(t=(0,r.default)(t,o)).test(e)};var r=a(n(51)),i=a(n(12));function a(e){return e&&e.__esModule?e:{default:e}}var o={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,a.default)(e),t in o)return o[t].test(e);if("any"===t){for(var n in o)if(o.hasOwnProperty(n)){var r=o[n];if(r.test(e))return!0}return!1}throw new Error("Invalid locale '"+t+"'")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o={"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-EG":/^((\+?20)|0)?1[012]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^(\+?49[ \.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-HK":/^(\+?852\-?)?[456789]\d{3}\-?\d{4}$/,"en-IN":/^(\+?91|0)?[789]\d{9}$/,"en-KE":/^(\+?254|0)?[7]\d{8}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)2\d{7,9}$/,"en-PK":/^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[89]\d{7}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"es-ES":/^(\+?34)?(6\d{1}|7[1234])\d{7}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[0248]|77)[1-9]\d{6}/,"hu-HU":/^(\+?36)(20|30|70)\d{7}$/,"id-ID":/^(\+?62|0[1-9])[\s|\d]+$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"ja-JP":/^(\+?81|0)[789]0[ \-]?[1-9]\d{2}[ \-]?\d{5}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"ms-MY":/^(\+?6?01){1}(([145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"nl-BE":/^(\+?32|0)4?\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^(\+?55|0)\-?[1-9]{2}\-?[2-9]{1}\d{3,4}\-?\d{4}$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"vi-VN":/^(\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$/,"zh-CN":/^(\+?0?86\-?)?1[345789]\d{9}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/};o["en-CA"]=o["en-US"],o["fr-BE"]=o["nl-BE"],o["zh-HK"]=o["en-HK"],e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,a.default)(e);var n=o;if(n=t.require_hyphen?n.replace("?",""):n,!(n=t.case_sensitive?new RegExp(n):new RegExp(n,"i")).test(e))return!1;var r=e.replace("-",""),i=8,s=0,u=!0,c=!1,l=void 0;try{for(var d,f=r[Symbol.iterator]();!(u=(d=f.next()).done);u=!0){var p=d.value,h="X"===p.toUpperCase()?10:+p;s+=h*i,--i}}catch(e){c=!0,l=e}finally{try{!u&&f.return&&f.return()}finally{if(c)throw l}}return s%11==0};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o="^\\d{4}-?\\d{3}[\\dX]$";e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,a.default)(t);n=String(n);if(!n)return e(t,10)||e(t,13);var r=t.replace(/[\s-]+/g,"");var i=0;var c=void 0;if("10"===n){if(!o.test(r))return!1;for(c=0;c<9;c++)i+=(c+1)*r.charAt(c);if("X"===r.charAt(9)?i+=100:i+=10*r.charAt(9),i%11==0)return!!r}else if("13"===n){if(!s.test(r))return!1;for(c=0;c<12;c++)i+=u[c%2]*r.charAt(c);if(r.charAt(12)-(10-i%10)%10==0)return!!r}return!1};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^(?:[0-9]{9}X|[0-9]{10})$/,s=/^(?:[0-9]{13})$/,u=[1,3];e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,a.default)(e),!o.test(e))return!1;for(var t=e.replace(/[A-Z]/g,function(e){return parseInt(e,36)}),n=0,r=void 0,i=void 0,s=!0,u=t.length-2;u>=0;u--)r=t.substring(u,u+1),i=parseInt(r,10),n+=s&&(i*=2)>=10?i+1:i,s=!s;return parseInt(e.substr(e.length-1),10)===(1e4-n)%10};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,a.default)(e);var t=e.replace(/[- ]+/g,"");if(!o.test(t))return!1;for(var n=0,r=void 0,i=void 0,s=void 0,u=t.length-1;u>=0;u--)r=t.substring(u,u+1),i=parseInt(r,10),n+=s&&(i*=2)>=10?i%10+1:i,s=!s;return!(n%10!=0||!t)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|62[0-9]{14})$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){(0,i.default)(e);var n=void 0;if("[object Array]"===Object.prototype.toString.call(t)){var o=[];for(n in t)({}).hasOwnProperty.call(t,n)&&(o[n]=(0,a.default)(t[n]));return o.indexOf(e)>=0}if("object"===(void 0===t?"undefined":r(t)))return t.hasOwnProperty(e);if(t&&"function"==typeof t.indexOf)return t.indexOf(e)>=0;return!1};var i=o(n(12)),a=o(n(96));function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,r.default)(e);var n=(0,i.default)(t),a=(0,i.default)(e);return!!(a&&n&&a1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,r.default)(e);var n=(0,i.default)(t),a=(0,i.default)(e);return!!(a&&n&&a>n)};var r=a(n(12)),i=a(n(97));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,r.default)(e),(0,i.default)(e)&&24===e.length};var r=a(n(12)),i=a(n(139));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";(0,a.default)(e);var n=o[t];return n&&n.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e,t){(0,o.default)(e);var n=void 0,i=void 0;"object"===(void 0===t?"undefined":r(t))?(n=t.min||0,i=t.max):(n=arguments[1],i=arguments[2]);var a=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],s=e.length-a.length;return s>=n&&(void 0===i||s<=i)};var i,a=n(12),o=(i=a)&&i.__esModule?i:{default:i};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),0===e.length};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){(0,o.default)(e);try{var t=JSON.parse(e);return!!t&&"object"===(void 0===t?"undefined":r(t))}catch(e){}return!1};var i,a=n(12),o=(i=a)&&i.__esModule?i:{default:i};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(e),new RegExp("^[a-f0-9]{"+o[t]+"}$").test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^[a-f0-9]{32}$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,r.default)(e),(0,i.default)(e)%parseInt(t,10)==0};var r=a(n(12)),i=a(n(145));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),(t=(0,r.default)(t,s)).locale in a.decimal)return!u.includes(e.replace(/ /g,""))&&function(e){return new RegExp("^[-+]?([0-9]+)?(\\"+a.decimal[e.locale]+"[0-9]{"+e.decimal_digits+"})"+(e.force_decimal?"":"?")+"$")}(t).test(e);throw new Error("Invalid locale '"+t.locale+"'")};var r=o(n(51)),i=o(n(12)),a=n(78);function o(e){return e&&e.__esModule?e:{default:e}}var s={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},u=["","-","+"];e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,a.default)(e),t=t||{};var n=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\"+(t.locale?o.decimal[t.locale]:".")+"[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$");if(""===e||"."===e||"-"===e||"+"===e)return!1;return n.test(e)&&(!t.hasOwnProperty("min")||e>=t.min)&&(!t.hasOwnProperty("max")||e<=t.max)&&(!t.hasOwnProperty("lt")||et.gt)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r},o=n(78);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/[^\x00-\x7F]/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.fullWidth.test(e)&&s.halfWidth.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r},o=n(141),s=n(140);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^[\x00-\x7F]+$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),e===e.toUpperCase()};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),e===e.toLowerCase()};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e,{min:0,max:65535})};var r,i=n(142),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^[-+]?[0-9]+$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,a.default)(e),t in o.alphanumeric)return o.alphanumeric[t].test(e);throw new Error("Invalid locale '"+t+"'")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r},o=n(78);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,a.default)(e),t in o.alpha)return o.alpha[t].test(e);throw new Error("Invalid locale '"+t+"'")};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r},o=n(78);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),["true","false","1","0"].indexOf(e)>=0};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,a.default)(e),o.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};var o=/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,r.default)(e),!e||e.length>=2083||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;t=(0,o.default)(t,u);var n=void 0,s=void 0,d=void 0,f=void 0,p=void 0,h=void 0,m=void 0,g=void 0;if(m=e.split("#"),e=m.shift(),m=e.split("?"),e=m.shift(),(m=e.split("://")).length>1){if(n=m.shift(),t.require_valid_protocol&&-1===t.protocols.indexOf(n))return!1}else{if(t.require_protocol)return!1;t.allow_protocol_relative_urls&&"//"===e.substr(0,2)&&(m[0]=e.substr(2))}if(""===(e=m.join("://")))return!1;if(m=e.split("/"),""===(e=m.shift())&&!t.require_host)return!0;if((m=e.split("@")).length>1&&(s=m.shift()).indexOf(":")>=0&&s.split(":").length>2)return!1;f=m.join("@"),h=null,g=null;var y=f.match(c);y?(d="",g=y[1],h=y[2]||null):(m=f.split(":"),d=m.shift(),m.length&&(h=m.join(":")));if(null!==h&&(p=parseInt(h,10),!/^[0-9]+$/.test(h)||p<=0||p>65535))return!1;if(!((0,a.default)(d)||(0,i.default)(d,t)||g&&(0,a.default)(g,6)))return!1;if(d=d||g,t.host_whitelist&&!l(d,t.host_whitelist))return!1;if(t.host_blacklist&&l(d,t.host_blacklist))return!1;return!0};var r=s(n(12)),i=s(n(95)),a=s(n(143)),o=s(n(51));function s(e){return e&&e.__esModule?e:{default:e}}var u={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1},c=/^\[([^\]]+)\](?::([0-9]+))?$/;function l(e,t){for(var n=0;n$/i,l=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,d=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,f=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){(0,a.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,n));return t.test(e)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,r.default)(e),e.indexOf((0,i.default)(t))>=0};var r=a(n(12)),i=a(n(96));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(e),e===t};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,a.default)(e),t)return"1"===e||"true"===e;return"0"!==e&&"false"!==e&&""!==e};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,a.default)(e),parseInt(e,t||10)};var r,i=n(12),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=ge(n(97)),i=ge(n(145)),a=ge(n(300)),o=ge(n(299)),s=ge(n(298)),u=ge(n(297)),c=ge(n(296)),l=ge(n(295)),d=ge(n(294)),f=ge(n(293)),p=ge(n(143)),h=ge(n(95)),m=ge(n(292)),g=ge(n(291)),y=ge(n(290)),v=ge(n(289)),b=ge(n(288)),C=ge(n(287)),S=ge(n(286)),A=ge(n(285)),E=ge(n(141)),N=ge(n(140)),I=ge(n(284)),_=ge(n(283)),x=ge(n(282)),D=ge(n(142)),F=ge(n(281)),T=ge(n(280)),M=ge(n(139)),w=ge(n(279)),k=ge(n(278)),B=ge(n(277)),R=ge(n(276)),O=ge(n(275)),P=ge(n(274)),j=ge(n(273)),L=ge(n(272)),G=ge(n(144)),V=ge(n(271)),U=ge(n(270)),z=ge(n(269)),H=ge(n(268)),W=ge(n(267)),K=ge(n(266)),J=ge(n(265)),q=ge(n(264)),$=ge(n(263)),Y=ge(n(262)),Z=ge(n(261)),X=ge(n(260)),Q=ge(n(259)),ee=ge(n(258)),te=ge(n(257)),ne=ge(n(256)),re=ge(n(255)),ie=ge(n(254)),ae=ge(n(138)),oe=ge(n(137)),se=ge(n(253)),ue=ge(n(252)),ce=ge(n(251)),le=ge(n(250)),de=ge(n(249)),fe=ge(n(136)),pe=ge(n(248)),he=ge(n(247)),me=ge(n(96));function ge(e){return e&&e.__esModule?e:{default:e}}var ye={version:"9.2.0",toDate:r.default,toFloat:i.default,toInt:a.default,toBoolean:o.default,equals:s.default,contains:u.default,matches:c.default,isEmail:l.default,isURL:d.default,isMACAddress:f.default,isIP:p.default,isFQDN:h.default,isBoolean:m.default,isAlpha:g.default,isAlphanumeric:y.default,isNumeric:v.default,isPort:b.default,isLowercase:C.default,isUppercase:S.default,isAscii:A.default,isFullWidth:E.default,isHalfWidth:N.default,isVariableWidth:I.default,isMultibyte:_.default,isSurrogatePair:x.default,isInt:D.default,isFloat:F.default,isDecimal:T.default,isHexadecimal:M.default,isDivisibleBy:w.default,isHexColor:k.default,isISRC:B.default,isMD5:R.default,isHash:O.default,isJSON:P.default,isEmpty:j.default,isLength:L.default,isByteLength:G.default,isUUID:V.default,isMongoId:U.default,isAfter:z.default,isBefore:H.default,isIn:W.default,isCreditCard:K.default,isISIN:J.default,isISBN:q.default,isISSN:$.default,isMobilePhone:Y.default,isPostalCode:ie.default,isCurrency:Z.default,isISO8601:X.default,isISO31661Alpha2:Q.default,isBase64:ee.default,isDataURI:te.default,isMimeType:ne.default,isLatLong:re.default,ltrim:ae.default,rtrim:oe.default,trim:se.default,escape:ue.default,unescape:ce.default,stripLow:le.default,whitelist:de.default,blacklist:fe.default,isWhitelisted:pe.default,normalizeEmail:he.default,toString:me.default};t.default=ye,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.replaceMessageSpecialTokens=function(e,t){var n;return e instanceof Function?n=e(t):"string"==typeof e&&(n=e),n&&t.constraints instanceof Array&&t.constraints.forEach(function(e,t){n=n.replace(new RegExp("\\$constraint"+(t+1),"g"),e)}),n&&void 0!==t.value&&null!==t.value&&(n=n.replace(/\$value/g,t.value)),n&&(n=n.replace(/\$property/g,t.property)),n&&(n=n.replace(/\$target/g,t.targetName)),n},e}();t.ValidationUtils=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(146),i=n(63),a=n(52),o=n(53),s=n(302),u=function(){function e(e,t){this.validator=e,this.validatorOptions=t,this.awaitingPromises=[],this.ignoreAsyncValidations=!1,this.metadataStorage=a.getFromContainer(i.MetadataStorage)}return e.prototype.execute=function(e,t,n){var i=this,a=this.validatorOptions?this.validatorOptions.groups:void 0,s=this.metadataStorage.getTargetValidationMetadatas(e.constructor,t,a),u=this.metadataStorage.groupByPropertyName(s);if(this.validatorOptions&&this.validatorOptions.forbidUnknownValues&&!s.length){var c=new r.ValidationError;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(c.target=e),c.value=void 0,c.property=void 0,c.children=[],c.constraints={unknownValue:"an unknown value was passed to the validate function"},void n.push(c)}this.validatorOptions&&this.validatorOptions.whitelist&&this.whitelist(e,u,n),Object.keys(u).forEach(function(t){var r=e[t],a=u[t].filter(function(e){return e.type===o.ValidationTypes.IS_DEFINED}),s=u[t].filter(function(e){return e.type!==o.ValidationTypes.IS_DEFINED&&e.type!==o.ValidationTypes.WHITELIST}),c=s.filter(function(e){return e.type===o.ValidationTypes.CUSTOM_VALIDATION}),l=s.filter(function(e){return e.type===o.ValidationTypes.NESTED_VALIDATION}),d=s.filter(function(e){return e.type===o.ValidationTypes.CONDITIONAL_VALIDATION}),f=i.generateValidationError(e,r,t);n.push(f),i.conditionalValidations(e,r,d)&&(i.defaultValidations(e,r,a,f.constraints),(null!==r&&void 0!==r||!i.validatorOptions||!0!==i.validatorOptions.skipMissingProperties)&&(i.defaultValidations(e,r,s,f.constraints),i.customValidations(e,r,c,f.constraints),i.nestedValidations(r,l,f.children)))})},e.prototype.whitelist=function(e,t,n){var r=[];Object.keys(e).forEach(function(e){t[e]&&0!==t[e].length||r.push(e)}),r.length>0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?r.forEach(function(t){var r;n.push({target:e,property:t,value:e[t],children:void 0,constraints:(r={},r[o.ValidationTypes.WHITELIST]="property "+t+" should not exist",r)})}):r.forEach(function(t){return delete e[t]}))},e.prototype.stripEmptyErrors=function(e){var t=this;return e.filter(function(e){if(e.children&&(e.children=t.stripEmptyErrors(e.children)),0===Object.keys(e.constraints).length){if(0===e.children.length)return!1;delete e.constraints}return!0})},e.prototype.generateValidationError=function(e,t,n){var i=new r.ValidationError;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(i.target=e),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(i.value=t),i.property=n,i.children=[],i.constraints={},i},e.prototype.conditionalValidations=function(e,t,n){return n.map(function(n){return n.constraints[0](e,t)}).reduce(function(e,t){return e&&t},!0)},e.prototype.defaultValidations=function(e,t,n,r){var i=this;return n.filter(function(e){return e.each?t instanceof Array?!t.every(function(t){return i.validator.validateValueByMetadata(t,e)}):void 0:!i.validator.validateValueByMetadata(t,e)}).forEach(function(n){var a=i.createValidationError(e,t,n),o=a[0],s=a[1];r[o]=s})},e.prototype.customValidations=function(e,t,n,r){var o=this;n.forEach(function(n){a.getFromContainer(i.MetadataStorage).getTargetValidatorConstraints(n.constraintCls).forEach(function(i){if(!i.async||!o.ignoreAsyncValidations){var a={targetName:e.constructor?e.constructor.name:void 0,property:n.propertyName,object:e,value:t,constraints:n.constraints},s=i.instance.validate(t,a);if(s instanceof Promise){var u=s.then(function(a){if(!a){var s=o.createValidationError(e,t,n,i),u=s[0],c=s[1];r[u]=c}});o.awaitingPromises.push(u)}else if(!s){var c=o.createValidationError(e,t,n,i),l=c[0],d=c[1];r[l]=d}}})})},e.prototype.nestedValidations=function(e,t,n){var i=this;void 0!==e&&t.forEach(function(t){if(t.type===o.ValidationTypes.NESTED_VALIDATION){var a,s="string"==typeof t.target?t.target:void 0;if(e instanceof Array)e.forEach(function(t,r){var a=i.generateValidationError(e,t,r.toString());n.push(a),i.execute(t,s,a.children)});else if(e instanceof Object)i.execute(e,s,n);else{var u=new r.ValidationError;u.value=e,u.property=t.propertyName,u.target=t.target;var c=i.createValidationError(t.target,e,t),l=c[0],d=c[1];u.constraints=((a={})[l]=d,a),n.push(u)}}})},e.prototype.createValidationError=function(e,t,n,r){var i=e.constructor?e.constructor.name:void 0,a=r&&r.name?r.name:n.type,u={targetName:i,property:n.propertyName,object:e,value:t,constraints:n.constraints},c=n.message;return n.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||(r&&r.instance.defaultMessage instanceof Function&&(c=r.instance.defaultMessage(u)),c||(c=o.ValidationTypes.getMessage(a,n.each))),[a,s.ValidationUtils.replaceMessageSpecialTokens(c,u)]},e}();t.ValidationExecutor=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(98),i=n(53),a=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach(function(n){e.properties[n].forEach(function(a){if(!i.ValidationTypes.isValid(a.type))throw new Error("Validation schema "+e.name+"#"+n+" as incorrect type "+a.type);var o={message:a.message,groups:a.groups,always:a.always,each:a.each},s={type:a.type,target:e.name,propertyName:n,constraints:a.constraints,validationTypeOptions:a.options,validationOptions:o};t.push(new r.ValidationMetadata(s))})}),t},e}();t.ValidationSchemaToMetadataTransformer=a},function(e,t,n){"use strict";function r(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0});var i=n(63),a=n(147),o=n(52);r(n(52)),r(n(246)),r(n(146)),r(n(53)),r(n(147)),r(n(245)),r(n(63)),t.validate=function(e,t,n){return"string"==typeof e?o.getFromContainer(a.Validator).validate(e,t,n):o.getFromContainer(a.Validator).validate(e,t)},t.validateOrReject=function(e,t,n){return"string"==typeof e?o.getFromContainer(a.Validator).validateOrReject(e,t,n):o.getFromContainer(a.Validator).validateOrReject(e,t)},t.validateSync=function(e,t,n){return"string"==typeof e?o.getFromContainer(a.Validator).validateSync(e,t,n):o.getFromContainer(a.Validator).validateSync(e,t)},t.registerSchema=function(e){o.getFromContainer(i.MetadataStorage).addValidationSchema(e)}},function(e,t,n){"use strict";var r,i=n(0),a=i(n(17)),o=i(n(2)),s=i(n(8)),u=i(n(7)),c=i(n(6)),l=i(n(5)),d=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,u.default)(t,n,o),o},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=n(4),g=n(305),y=n(84),v=n(45),b=n(83),C=n(82),S=n(134),A=n(244),E=r=function e(t,n){(0,o.default)(this,e),(0,a.default)(this,S.DEFAULT_PRESET,t);var i=g.validateSync(this,r.validatorOptions);if(i.length)throw new ReferenceError("Validation failed. errors:\n".concat(A.ValidationErrorsFormatter.format(i)));(0,a.default)(this,n.normalize(this))};E.validatorOptions={validationError:{target:!1}},d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"compact",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"controlFlowFlattening",void 0),d([g.IsNumber(),g.Min(0),g.Max(1),f("design:type",Number)],E.prototype,"controlFlowFlatteningThreshold",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"deadCodeInjection",void 0),d([g.IsNumber(),f("design:type",Number)],E.prototype,"deadCodeInjectionThreshold",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"debugProtection",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"debugProtectionInterval",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"disableConsoleOutput",void 0),d([g.IsArray(),g.ArrayUnique(),g.IsString({each:!0}),f("design:type",Array)],E.prototype,"domainLock",void 0),d([g.IsIn([y.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,y.IdentifierNamesGenerator.MangledIdentifierNamesGenerator]),f("design:type",String)],E.prototype,"identifierNamesGenerator",void 0),d([g.IsString(),f("design:type",String)],E.prototype,"identifiersPrefix",void 0),d([g.IsString(),f("design:type",String)],E.prototype,"inputFileName",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"log",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"renameGlobals",void 0),d([g.IsArray(),g.ArrayUnique(),g.IsString({each:!0}),f("design:type",Array)],E.prototype,"reservedNames",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"rotateStringArray",void 0),d([g.IsNumber(),f("design:type",Number)],E.prototype,"seed",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"selfDefending",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"sourceMap",void 0),d([g.IsString(),g.ValidateIf(function(e){return Boolean(e.sourceMapBaseUrl)}),g.IsUrl({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),f("design:type",String)],E.prototype,"sourceMapBaseUrl",void 0),d([g.IsString(),f("design:type",String)],E.prototype,"sourceMapFileName",void 0),d([g.IsIn([b.SourceMapMode.Inline,b.SourceMapMode.Separate]),f("design:type",String)],E.prototype,"sourceMapMode",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"stringArray",void 0),d([g.IsIn([!0,!1,C.StringArrayEncoding.Base64,C.StringArrayEncoding.Rc4]),f("design:type",Object)],E.prototype,"stringArrayEncoding",void 0),d([g.IsNumber(),g.Min(0),g.Max(1),f("design:type",Number)],E.prototype,"stringArrayThreshold",void 0),d([g.IsIn([v.ObfuscationTarget.Browser,v.ObfuscationTarget.BrowserNoEval,v.ObfuscationTarget.Node]),f("design:type",String)],E.prototype,"target",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"transformObjectKeys",void 0),d([g.IsBoolean(),f("design:type",Boolean)],E.prototype,"unicodeEscapeSequence",void 0),E=r=d([h.injectable(),p(0,h.inject(m.ServiceIdentifiers.TInputOptions)),p(1,h.inject(m.ServiceIdentifiers.IOptionsNormalizer)),f("design:paramtypes",[Object,Object])],E),t.Options=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(4),a=n(306),o=n(243);t.optionsModule=new r.ContainerModule(function(e){e(i.ServiceIdentifiers.IOptions).to(a.Options).inSingletonScope(),e(i.ServiceIdentifiers.IOptionsNormalizer).to(o.OptionsNormalizer).inSingletonScope()})},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(24)),S=n(39),A=n(41),E=n(18),N=n(19),I=n(13),_=n(28),x=n(14),D=function(e){function t(e,n,r){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).replaceableIdentifiers=new i.default,o.identifierObfuscatingReplacer=e(S.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case E.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&I.NodeGuards.isVariableDeclarationNode(e)&&!I.NodeGuards.isExportNamedDeclarationNode(n))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=x.NodeUtils.getBlockScopeOfNode(e),r=n.type===A.NodeType.Program;if(!this.options.renameGlobals&&r)return e;var i="var"===e.kind?n:t;return this.storeVariableNames(e,n,r),this.replaceableIdentifiers.has(i)?this.replaceScopeCachedIdentifiers(e,n,i):this.replaceScopeIdentifiers(i,n),e}},{key:"storeVariableNames",value:function(e,t,n){var r=this;this.traverseDeclarationIdentifiers(e,function(e){n?r.identifierObfuscatingReplacer.storeGlobalName(e.name,t):r.identifierObfuscatingReplacer.storeLocalName(e.name,t)})}},{key:"replaceScopeCachedIdentifiers",value:function(e,t,n){var r=this,i=this.replaceableIdentifiers.get(n);if(i){var a=[];this.traverseDeclarationIdentifiers(e,function(e){a.push(e.name)}),a.forEach(function(e){var n=i.get(e);if(n)for(var a=n.length,o=0;o=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(82),S=n(79),A=n(28),E=n(20),N=n(80),I=n(64),_=r=function(e){function t(e,n,i,s,l){var d;return(0,o.default)(this,t),(d=(0,u.default)(this,(0,c.default)(t).call(this,l))).nodesCache=new a.default,d.stringLiteralHexadecimalIndexCache=new a.default,d.stringArrayStorage=e,d.escapeSequenceEncoder=n,d.randomGenerator=i,d.cryptUtils=s,d.rc4Keys=d.randomGenerator.getRandomGenerator().n(function(){return d.randomGenerator.getRandomGenerator().string({length:r.rc4KeyLength})},r.rc4KeysCount),d}return(0,l.default)(t,e),(0,s.default)(t,[{key:"replace",value:function(e){var t=this.canUseStringArray(e),n="".concat(e,"-").concat(String(t));if(this.nodesCache.has(n)&&this.options.stringArrayEncoding!==C.StringArrayEncoding.Rc4)return this.nodesCache.get(n);var r=t?this.replaceWithStringArrayCallNode(e):this.replaceWithLiteralNode(e);return this.nodesCache.set(n,r),r}},{key:"canUseStringArray",value:function(e){return this.options.stringArray&&e.length>=r.minimumLengthForStringArray&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}},{key:"getStringArrayHexadecimalIndex",value:function(e,t){if(this.stringLiteralHexadecimalIndexCache.has(e))return{fromCache:!0,index:this.stringLiteralHexadecimalIndexCache.get(e)};var n=N.NumberUtils.toHex(t),r="".concat(I.Utils.hexadecimalPrefix).concat(n);return this.stringLiteralHexadecimalIndexCache.set(e,r),{fromCache:!1,index:r}}},{key:"getEncodedValue",value:function(e){var t,n=null;switch(this.options.stringArrayEncoding){case C.StringArrayEncoding.Rc4:n=this.randomGenerator.getRandomGenerator().pickone(this.rc4Keys),t=this.cryptUtils.btoa(this.cryptUtils.rc4(e,n));break;case C.StringArrayEncoding.Base64:t=this.cryptUtils.btoa(e);break;default:t=e}return{encodedValue:t,key:n}}},{key:"replaceWithLiteralNode",value:function(e){return E.NodeFactory.literalNode(this.escapeSequenceEncoder.encode(e,this.options.unicodeEscapeSequence))}},{key:"replaceWithStringArrayCallNode",value:function(e){var t=this.getEncodedValue(e),n=t.encodedValue,i=t.key,a=this.escapeSequenceEncoder.encode(n,this.options.unicodeEscapeSequence),o=this.stringArrayStorage.getLength(),s=this.stringArrayStorage.getStorageId().split("|")[1],u=this.getStringArrayHexadecimalIndex(a,o),c=u.fromCache,l=u.index;c||this.stringArrayStorage.set(o,a);var d=[r.getHexadecimalLiteralNode(l)];i&&d.push(r.getRc4KeyLiteralNode(this.escapeSequenceEncoder.encode(i,this.options.unicodeEscapeSequence)));var f=E.NodeFactory.identifierNode(s);return A.NodeMetadata.set(f,{renamedIdentifier:!0}),E.NodeFactory.callExpressionNode(f,d)}}],[{key:"getHexadecimalLiteralNode",value:function(e){var t=E.NodeFactory.literalNode(e);return A.NodeMetadata.set(t,{replacedLiteral:!0}),t}},{key:"getRc4KeyLiteralNode",value:function(e){var t=E.NodeFactory.literalNode(e);return A.NodeMetadata.set(t,{replacedLiteral:!0}),t}}]),t}(S.AbstractObfuscatingReplacer);_.minimumLengthForStringArray=3,_.rc4KeyLength=4,_.rc4KeysCount=50,_=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.TStringArrayStorage)),y(1,v.inject(b.ServiceIdentifiers.IEscapeSequenceEncoder)),y(2,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(3,v.inject(b.ServiceIdentifiers.ICryptUtils)),y(4,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object,Object,Object,Object])],_),t.StringLiteralObfuscatingReplacer=_},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(79),C=n(20),S=n(80),A=n(64),E=function(e){function t(e){var n;return(0,a.default)(this,t),(n=(0,s.default)(this,(0,u.default)(t).call(this,e))).numberLiteralCache=new i.default,n}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e){var t;return this.numberLiteralCache.has(e)?t=this.numberLiteralCache.get(e):(t=S.NumberUtils.isCeil(e)?"".concat(A.Utils.hexadecimalPrefix).concat(S.NumberUtils.toHex(e)):String(e),this.numberLiteralCache.set(e,t)),C.NodeFactory.literalNode(e,t)}}]),t}(b.AbstractObfuscatingReplacer);E=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object])],E),t.NumberLiteralObfuscatingReplacer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(148),b=n(18),C=n(19),S=n(13),A=n(28),E=function(e){function t(e,n,r){var a;return(0,i.default)(this,t),(a=(0,o.default)(this,(0,s.default)(t).call(this,n,r))).literalObfuscatingReplacerFactory=e,a}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&S.NodeGuards.isLiteralNode(e)&&!A.NodeMetadata.isReplacedLiteral(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.isProhibitedNode(e,t))return e;switch((0,d.default)(e.value)){case"boolean":return this.literalObfuscatingReplacerFactory(v.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer).replace(e.value);case"number":return this.literalObfuscatingReplacerFactory(v.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer).replace(e.value);case"string":return this.literalObfuscatingReplacerFactory(v.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer).replace(e.value);default:return e}}},{key:"isProhibitedNode",value:function(e,t){return!(!S.NodeGuards.isPropertyNode(t)||t.key!==e)||!!S.NodeGuards.isImportDeclarationNode(t)}}]),t}(C.AbstractNodeTransformer);E=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IObfuscatingReplacer)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],E),t.LiteralTransformer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(24)),C=n(39),S=n(18),A=n(19),E=n(13),N=n(14),I=function(e){function t(e,n,r){var a;return(0,i.default)(this,t),(a=(0,o.default)(this,(0,s.default)(t).call(this,n,r))).identifierObfuscatingReplacer=e(C.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),a}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case S.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&E.NodeGuards.isLabeledStatementNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=N.NodeUtils.getBlockScopeOfNode(e);return this.storeLabeledStatementName(e,n),this.replaceLabeledStatementName(e,n),e}},{key:"storeLabeledStatementName",value:function(e,t){this.identifierObfuscatingReplacer.storeLocalName(e.label.name,t)}},{key:"replaceLabeledStatementName",value:function(e,t){var n=this;b.replace(e,{enter:function(e,r){if(r&&E.NodeGuards.isLabelIdentifierNode(e,r)){var i=n.identifierObfuscatingReplacer.replace(e.name,t);e.name=i.name}}})}}]),t}(A.AbstractNodeTransformer);I=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],I),t.LabeledStatementTransformer=I},function(e,t,n){"use strict";var r,i=n(0),a=i(n(22)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}},v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var b=n(1),C=n(4),S=v(n(24)),A=n(39),E=n(18),N=n(19),I=n(13),_=n(28),x=n(14),D=r=function(e){function t(e,n,r){var i;return(0,o.default)(this,t),(i=(0,u.default)(this,(0,c.default)(t).call(this,n,r))).replaceableIdentifiers=new a.default,i.identifierObfuscatingReplacer=e(A.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,l.default)(t,e),(0,s.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case E.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&I.NodeGuards.isImportDeclarationNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=x.NodeUtils.getBlockScopeOfNode(e);return this.storeImportSpecifierNames(e,n),this.replaceableIdentifiers.has(n)?this.replaceScopeCachedIdentifiers(n):this.replaceScopeIdentifiers(n),e}},{key:"storeImportSpecifierNames",value:function(e,t){var n=this;e.specifiers.forEach(function(e){r.isProhibitedImportSpecifierNode(e)||n.identifierObfuscatingReplacer.storeGlobalName(e.local.name,t)})}},{key:"replaceScopeCachedIdentifiers",value:function(e){var t=this;this.replaceableIdentifiers.get(e).forEach(function(n){var r=t.identifierObfuscatingReplacer.replace(n.name,e);n.name=r.name,_.NodeMetadata.set(n,{renamedIdentifier:!0})})}},{key:"replaceScopeIdentifiers",value:function(e){var t=this,n=[];S.replace(e,{enter:function(r,i){if(i&&I.NodeGuards.isReplaceableIdentifierNode(r,i)&&!_.NodeMetadata.isRenamedIdentifier(r)){var a=t.identifierObfuscatingReplacer.replace(r.name,e).name;r.name!==a?(r.name=a,_.NodeMetadata.set(r,{renamedIdentifier:!0})):n.push(r)}}}),this.replaceableIdentifiers.set(e,n)}}],[{key:"isProhibitedImportSpecifierNode",value:function(e){return I.NodeGuards.isImportSpecifierNode(e)&&e.imported.name===e.local.name}}]),t}(N.AbstractNodeTransformer);D=r=m([b.injectable(),y(0,b.inject(C.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),y(1,b.inject(C.ServiceIdentifiers.IRandomGenerator)),y(2,b.inject(C.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object])],D),t.ImportDeclarationTransformer=D},function(e,t,n){"use strict";var r=n(0),i=r(n(57)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(24)),S=n(39),A=n(18),E=n(19),N=n(13),I=n(28),_=n(14),x=function(e){function t(e,n,r){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).identifierObfuscatingReplacer=e(S.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),i}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case A.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&(N.NodeGuards.isFunctionDeclarationNode(e)||N.NodeGuards.isFunctionExpressionNode(e)||N.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=N.NodeGuards.isBlockStatementNode(e.body)?e.body:_.NodeUtils.getBlockScopeOfNode(e.body);return this.storeFunctionParams(e,n),this.replaceFunctionParams(e,n),e}},{key:"storeFunctionParams",value:function(e,t){var n=this;e.params.forEach(function(e){C.traverse(e,{enter:function(r){return N.NodeGuards.isPropertyNode(e)?C.VisitorOption.Skip:N.NodeGuards.isAssignmentPatternNode(r)&&N.NodeGuards.isIdentifierNode(r.left)?(n.identifierObfuscatingReplacer.storeLocalName(r.left.name,t),C.VisitorOption.Skip):void(N.NodeGuards.isIdentifierNode(r)&&n.identifierObfuscatingReplacer.storeLocalName(r.name,t))}})})}},{key:"addIdentifiersToIgnoredIdentifierNamesSet",value:function(e,t){e.forEach(function(e){e.key&&N.NodeGuards.isIdentifierNode(e.key)&&t.add(e.key.name)})}},{key:"replaceFunctionParams",value:function(e,t){var n=this,r=new i.default,a={enter:function(e,i){if(N.NodeGuards.isObjectPatternNode(e)&&n.addIdentifiersToIgnoredIdentifierNamesSet(e.properties,r),i&&N.NodeGuards.isReplaceableIdentifierNode(e,i)&&!r.has(e.name)){var a=n.identifierObfuscatingReplacer.replace(e.name,t).name;e.name!==a&&(e.name=a,I.NodeMetadata.set(e,{renamedIdentifier:!0}))}}};e.params.forEach(function(e){return C.replace(e,a)}),C.replace(e.body,a)}}]),t}(E.AbstractNodeTransformer);x=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],x),t.FunctionTransformer=x},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(24)),S=n(39),A=n(41),E=n(18),N=n(19),I=n(13),_=n(28),x=n(14),D=function(e){function t(e,n,r){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).replaceableIdentifiers=new i.default,o.identifierObfuscatingReplacer=e(S.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case E.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&I.NodeGuards.isFunctionDeclarationNode(e)&&!I.NodeGuards.isExportNamedDeclarationNode(n))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=x.NodeUtils.getBlockScopeOfNode(e),r=n.type===A.NodeType.Program;return!this.options.renameGlobals&&r?e:(this.storeFunctionName(e,n,r),this.replaceableIdentifiers.has(n)?this.replaceScopeCachedIdentifiers(e,n):this.replaceScopeIdentifiers(n),e)}},{key:"storeFunctionName",value:function(e,t,n){n?this.identifierObfuscatingReplacer.storeGlobalName(e.id.name,t):this.identifierObfuscatingReplacer.storeLocalName(e.id.name,t)}},{key:"replaceScopeCachedIdentifiers",value:function(e,t){var n=this.replaceableIdentifiers.get(t);if(n){var r=n.get(e.id.name);if(r)for(var i=r.length,a=0;a=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(24)),S=n(39),A=n(41),E=n(18),N=n(19),I=n(13),_=n(28),x=n(14),D=function(e){function t(e,n,r){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).replaceableIdentifiers=new i.default,o.identifierObfuscatingReplacer=e(S.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case E.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&I.NodeGuards.isClassDeclarationNode(e)&&!I.NodeGuards.isExportNamedDeclarationNode(n))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=x.NodeUtils.getBlockScopeOfNode(e),r=n.type===A.NodeType.Program;return!this.options.renameGlobals&&r?e:(this.storeClassName(e,n,r),this.replaceableIdentifiers.has(n)?this.replaceScopeCachedIdentifiers(n):this.replaceScopeIdentifiers(n),e)}},{key:"storeClassName",value:function(e,t,n){n?this.identifierObfuscatingReplacer.storeGlobalName(e.id.name,t):this.identifierObfuscatingReplacer.storeLocalName(e.id.name,t)}},{key:"replaceScopeCachedIdentifiers",value:function(e){var t=this;this.replaceableIdentifiers.get(e).forEach(function(n){var r=t.identifierObfuscatingReplacer.replace(n.name,e);n.name=r.name,_.NodeMetadata.set(n,{renamedIdentifier:!0})})}},{key:"replaceScopeIdentifiers",value:function(e){var t=this,n=[];C.replace(e,{enter:function(r,i){if(i&&I.NodeGuards.isReplaceableIdentifierNode(r,i)&&!_.NodeMetadata.isRenamedIdentifier(r)){var a=t.identifierObfuscatingReplacer.replace(r.name,e).name;r.name!==a?(r.name=a,_.NodeMetadata.set(r,{renamedIdentifier:!0})):n.push(r)}}}),this.replaceableIdentifiers.set(e,n)}}]),t}(N.AbstractNodeTransformer);D=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],D),t.ClassDeclarationTransformer=D},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(24)),C=n(39),S=n(18),A=n(19),E=n(13),N=n(28),I=n(14),_=function(e){function t(e,n,r){var a;return(0,i.default)(this,t),(a=(0,o.default)(this,(0,s.default)(t).call(this,n,r))).identifierObfuscatingReplacer=e(C.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),a}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case S.TransformationStage.Obfuscating:return{enter:function(e,n){if(n&&E.NodeGuards.isCatchClauseNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=I.NodeUtils.getBlockScopeOfNode(e);return this.storeCatchClauseParam(e,n),this.replaceCatchClauseParam(e,n),e}},{key:"storeCatchClauseParam",value:function(e,t){E.NodeGuards.isIdentifierNode(e.param)&&this.identifierObfuscatingReplacer.storeLocalName(e.param.name,t)}},{key:"replaceCatchClauseParam",value:function(e,t){var n=this;b.replace(e,{enter:function(e,r){if(r&&E.NodeGuards.isReplaceableIdentifierNode(e,r)){var i=n.identifierObfuscatingReplacer.replace(e.name,t).name;e.name!==i&&(e.name=i,N.NodeMetadata.set(e,{renamedIdentifier:!0}))}}})}}]),t}(A.AbstractNodeTransformer);_=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],_),t.CatchClauseTransformer=_},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(79),C=n(20),S=r=function(e){function t(e){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e){return e?r.getTrueUnaryExpressionNode():r.getFalseUnaryExpressionNode()}}],[{key:"getTrueUnaryExpressionNode",value:function(){return C.NodeFactory.unaryExpressionNode("!",r.getFalseUnaryExpressionNode())}},{key:"getFalseUnaryExpressionNode",value:function(){return C.NodeFactory.unaryExpressionNode("!",C.NodeFactory.arrayExpressionNode())}}]),t}(b.AbstractObfuscatingReplacer);S=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object])],S),t.BooleanLiteralObfuscatingReplacer=S},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(79),C=n(20),S=function(e){function t(e,n){var r;return(0,a.default)(this,t),(r=(0,s.default)(this,(0,u.default)(t).call(this,n))).blockScopesMap=new i.default,r.identifierNamesGenerator=e(n),r}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e,t){if(this.blockScopesMap.has(t)){var n=this.blockScopesMap.get(t);n.has(e)&&(e=n.get(e))}return C.NodeFactory.identifierNode(e)}},{key:"storeGlobalName",value:function(e,t){if(!this.isReservedName(e)){var n=this.identifierNamesGenerator.generateWithPrefix();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new i.default),this.blockScopesMap.get(t).set(e,n)}}},{key:"storeLocalName",value:function(e,t){if(!this.isReservedName(e)){var n=this.identifierNamesGenerator.generate();this.blockScopesMap.has(t)||this.blockScopesMap.set(t,new i.default),this.blockScopesMap.get(t).set(e,n)}}},{key:"isReservedName",value:function(e){return this.options.reservedNames.some(function(t){return null!==new RegExp(t,"g").exec(e)})}}]),t}(b.AbstractObfuscatingReplacer);S=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object])],S),t.BaseIdentifierObfuscatingReplacer=S},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(43),i=n(1),a=n(4),o=n(39),s=n(148),u=n(58),c=n(319),l=n(318),d=n(317),f=n(316),p=n(315),h=n(314),m=n(313),g=n(312),y=n(311),v=n(310),b=n(309),C=n(308);t.obfuscatingTransformersModule=new i.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(d.CatchClauseTransformer).whenTargetNamed(u.NodeTransformer.CatchClauseTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.ClassDeclarationTransformer).whenTargetNamed(u.NodeTransformer.ClassDeclarationTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(p.FunctionDeclarationTransformer).whenTargetNamed(u.NodeTransformer.FunctionDeclarationTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(h.FunctionTransformer).whenTargetNamed(u.NodeTransformer.FunctionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(m.ImportDeclarationTransformer).whenTargetNamed(u.NodeTransformer.ImportDeclarationTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(g.LabeledStatementTransformer).whenTargetNamed(u.NodeTransformer.LabeledStatementTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(y.LiteralTransformer).whenTargetNamed(u.NodeTransformer.LiteralTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(C.VariableDeclarationTransformer).whenTargetNamed(u.NodeTransformer.VariableDeclarationTransformer),e(a.ServiceIdentifiers.IObfuscatingReplacer).to(l.BooleanLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.BooleanLiteralObfuscatingReplacer),e(a.ServiceIdentifiers.IObfuscatingReplacer).to(v.NumberLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.NumberLiteralObfuscatingReplacer),e(a.ServiceIdentifiers.IObfuscatingReplacer).to(b.StringLiteralObfuscatingReplacer).whenTargetNamed(s.LiteralObfuscatingReplacer.StringLiteralObfuscatingReplacer),e(a.ServiceIdentifiers.IIdentifierObfuscatingReplacer).to(c.BaseIdentifierObfuscatingReplacer).whenTargetNamed(o.IdentifierObfuscatingReplacer.BaseIdentifierObfuscatingReplacer),e(a.ServiceIdentifiers.Factory__IObfuscatingReplacer).toFactory(r.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IObfuscatingReplacer)),e(a.ServiceIdentifiers.Factory__IIdentifierObfuscatingReplacer).toFactory(r.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IIdentifierObfuscatingReplacer))})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(43),i=n(1),a=n(4);t.nodeTransformersModule=new i.ContainerModule(function(e){e(a.ServiceIdentifiers.Factory__INodeTransformer).toFactory(r.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.INodeTransformer))})},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(81)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(149),S=r=function(e){function t(e,n){var i;return(0,a.default)(this,t),(i=(0,s.default)(this,(0,u.default)(t).call(this,e,n))).previousMangledName=r.initMangledNameCharacter,i}return(0,l.default)(t,e),(0,o.default)(t,[{key:"generate",value:function(){var e=this.generateNewMangledName(this.previousMangledName);return this.previousMangledName=e,e}},{key:"generateWithPrefix",value:function(){var e=this.options.identifiersPrefix?"".concat(this.options.identifiersPrefix,"_"):"",t=this.generate();return"".concat(e).concat(t)}},{key:"isValidIdentifierName",value:function(e){return(0,c.default)((0,u.default)(t.prototype),"isValidIdentifierName",this).call(this,e)&&!r.reservedNames.includes(e)}},{key:"generateNewMangledName",value:function(e){var t=function(e){var t=r.nameSequence,n=e.length,i=function(e){return"0".repeat(e)},a=n-1;do{var o=e.charAt(a),s=t.indexOf(o);if(s!==t.length-1)return e.substring(0,a)+t[s+1]+i(n-(a+1));--a}while(a>=0);return"a".concat(i(n))},n=t(e);return this.isValidIdentifierName(n)||(n=this.generateNewMangledName(n)),n}}]),t}(C.AbstractIdentifierNamesGenerator);S.initMangledNameCharacter="9",S.nameSequence="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),S.reservedNames=["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with"],S=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(1,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object])],S),t.MangledIdentifierNamesGenerator=S},function(e,t,n){"use strict";var r,i=n(0),a=i(n(57)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(149),S=n(80),A=n(64),E=r=function(e){function t(e,n){var r;return(0,o.default)(this,t),(r=(0,u.default)(this,(0,c.default)(t).call(this,e,n))).randomVariableNameSet=new a.default,r}return(0,l.default)(t,e),(0,s.default)(t,[{key:"generate",value:function(){var e=this.randomGenerator.getRandomInteger(1e4,99999999),t=S.NumberUtils.toHex(e).substr(0,r.baseIdentifierNameLength),n="_".concat(A.Utils.hexadecimalPrefix).concat(t);return this.randomVariableNameSet.has(n)?this.generate():(this.randomVariableNameSet.add(n),n)}},{key:"generateWithPrefix",value:function(){var e=this.generate();return"".concat(this.options.identifiersPrefix).concat(e).replace("__","_")}}]),t}(C.AbstractIdentifierNamesGenerator);E.baseIdentifierNameLength=6,E=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(1,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object])],E),t.HexadecimalIdentifierNamesGenerator=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(4),a=n(84),o=n(323),s=n(322);t.generatorsModule=new r.ContainerModule(function(e){e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(o.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(e){var t=null;return function(n){if(t)return t;var r;switch(n.identifierNamesGenerator){case a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:r=e.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:r=e.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return t=r,r}})})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1);t.finalizingTransformersModule=new r.ContainerModule(function(e){})},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.literalValue=e}},{key:"getNodeStructure",value:function(){return[C.NodeFactory.expressionStatementNode(C.NodeFactory.literalNode(this.literalValue))]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",String)],S.prototype,"literalValue",void 0),S=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],S),t.StringLiteralNode=S},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(14),A=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}},{key:"getNodeStructure",value:function(){var e=C.NodeFactory.expressionStatementNode(C.NodeFactory.memberExpressionNode(C.NodeFactory.identifierNode(this.controlFlowStorageName),C.NodeFactory.identifierNode(this.controlFlowStorageKey)));return S.NodeUtils.parentizeAst(e),[e]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",String)],A.prototype,"controlFlowStorageKey",void 0),p([v.initializable(),h("design:type",String)],A.prototype,"controlFlowStorageName",void 0),A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],A),t.StringLiteralControlFlowStorageCallNode=A},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=function(){return"\n (function (array, {timesName}) {\n var {whileFunctionName} = function (times) {\n while (--times) {\n array['push'](array['shift']());\n }\n };\n \n {code}\n })({stringArrayName}, 0x{stringArrayRotateValue});\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var selfDefendingFunc = function () {\n var object = {\n data: {\n key: 'cookie',\n value: 'timeout'\n },\n setCookie: function (options, name, value, document) {\n document = document || {};\n \n var updatedCookie = name + \"=\" + value;\n\n var i = 0;\n \n for (var i = 0, len = options.length; i < len; i++) {\n var propName = options[i];\n \n updatedCookie += \"; \" + propName;\n \n var propValue = options[propName];\n \n options.push(propValue);\n len = options.length;\n \n if (propValue !== true) {\n updatedCookie += \"=\" + propValue;\n }\n }\n\n document['cookie'] = updatedCookie;\n },\n removeCookie: function(){return 'dev';},\n getCookie: function (document, name) {\n document = document || function (value) { return value };\n var matches = document(new RegExp(\n \"(?:^|; )\" + name.replace(/([.$?*|{}()[]\\/+^])/g, '\\$1') + \"=([^;]*)\"\n ));\n \n var func = function (param1, param2) {\n param1(++param2);\n };\n \n func({whileFunctionName}, {timesName});\n \n return matches ? decodeURIComponent(matches[1]) : undefined;\n }\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return regExp.test(object.removeCookie.toString());\n };\n \n object['updateCookie'] = test1;\n \n var cookie = '';\n var result = object['updateCookie']();\n \n if (!result) {\n object['setCookie'](['*'], 'counter', 1);\n } else if (result) {\n cookie = object['getCookie'](null, 'counter');\n } else {\n object['removeCookie']();\n }\n };\n \n selfDefendingFunc();\n ")}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(15),A=n(85),E=n(329),N=n(328),I=n(21),_=n(77),x=n(14),D=n(80),F=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,e,n,i))).escapeSequenceEncoder=r,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayRotateValue=t}},{key:"getNodeStructure",value:function(){return x.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),n="";return n=this.options.selfDefending?C.default(E.SelfDefendingTemplate(this.escapeSequenceEncoder),{timesName:e,whileFunctionName:t}):"".concat(t,"(++").concat(e,")"),_.JavaScriptObfuscator.obfuscate(C.default(N.StringArrayRotateFunctionTemplate(),{code:n,timesName:e,stringArrayName:this.stringArrayName,stringArrayRotateValue:D.NumberUtils.toHex(this.stringArrayRotateValue),whileFunctionName:t}),(0,i.default)({},A.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}}]),t}(I.AbstractCustomNode);h([S.initializable(),m("design:type",String)],F.prototype,"stringArrayName",void 0),h([S.initializable(),m("design:type",Number)],F.prototype,"stringArrayRotateValue",void 0),F=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IEscapeSequenceEncoder)),g(3,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],F),t.StringArrayRotateFunctionNode=F},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=function(){return"\n var {stringArrayName} = [{stringArray}];\n "}},function(e,t,n){var r=n(9);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},function(e,t,n){var r=n(90),i=n(72),a=n(37),o=n(25),s=n(26),u=n(27);o(o.S,"Reflect",{get:function e(t,n){var o,c,l=arguments.length<3?t:arguments[2];return u(t)===l?t[n]:(o=r.f(t,n))?a(o,"value")?o.value:void 0!==o.get?o.get.call(l):void 0:s(c=i(t))?e(c,n,l):void 0}})},function(e,t,n){n(333),e.exports=n(16).Reflect.get},function(e,t,n){e.exports=n(334)},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(81)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(15),A=n(331),E=n(21),N=n(14),I=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,n){this.stringArrayStorage=e,this.stringArrayName=t,this.stringArrayRotateValue=n}},{key:"getNode",value:function(){return this.stringArrayStorage.rotateArray(this.stringArrayRotateValue),(0,u.default)((0,s.default)(t.prototype),"getNode",this).call(this)}},{key:"getNodeStructure",value:function(){return N.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return C.default(A.StringArrayTemplate(),{stringArrayName:this.stringArrayName,stringArray:this.stringArrayStorage.toString()})}}]),t}(E.AbstractCustomNode);h([S.initializable(),m("design:type",Object)],I.prototype,"stringArrayStorage",void 0),h([S.initializable(),m("design:type",String)],I.prototype,"stringArrayName",void 0),h([S.initializable(),m("design:type",Number)],I.prototype,"stringArrayRotateValue",void 0),I=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],I),t.StringArrayNode=I},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRc4DecodeNodeTemplate=function(e){var t=e.getRandomString(6),n=e.getRandomString(6),r=e.getRandomString(6),i=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {rc4Polyfill}\n {stringArrayCallsWrapperName}.").concat(n," = rc4;\n \n {stringArrayCallsWrapperName}.").concat(r," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(r,"[index];\n\n if (cachedValue === undefined) {\n if ({stringArrayCallsWrapperName}.").concat(i," === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.").concat(i," = true;\n }\n \n value = {stringArrayCallsWrapperName}.").concat(n,"(value, key);\n {stringArrayCallsWrapperName}.").concat(r,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=function(){return"\n var {stringArrayCallsWrapperName} = function (index, key) {\n index = index - 0;\n \n var value = {stringArrayName}[index];\n \n {decodeNodeTemplate}\n \n return value;\n };\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeNodeTemplate=function(e){var t=e.getRandomString(6),n=e.getRandomString(6),r=e.getRandomString(6);return"\n if ({stringArrayCallsWrapperName}.".concat(t," === undefined) {\n {atobPolyfill}\n \n {stringArrayCallsWrapperName}.").concat(n," = function (str) {\n var string = atob(str);\n var newStringChars = [];\n \n for (var i = 0, length = string.length; i < length; i++) {\n newStringChars += '%' + ('00' + string.charCodeAt(i).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(newStringChars);\n };\n \n {stringArrayCallsWrapperName}.").concat(r," = {};\n \n {stringArrayCallsWrapperName}.").concat(t," = true;\n }\n \n var cachedValue = {stringArrayCallsWrapperName}.").concat(r,"[index];\n \n if (cachedValue === undefined) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.").concat(n,"(value);\n {stringArrayCallsWrapperName}.").concat(r,"[index] = value;\n } else {\n value = cachedValue;\n }\n ")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e,t){var n=e.getRandomString(6),r=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),o=e.getRandomString(6),s=e.getRandomString(6),u=e.getRandomString(6),c=e.getRandomString(6),l=e.getRandomString(6);return"\n var StatesClass = function (".concat(n,") {\n this.").concat(n," = ").concat(n,";\n this.").concat(r," = [1, 0, 0];\n this.").concat(i," = function(){return 'newState';};\n this.").concat(a," = '").concat(t.encode("\\w+ *\\(\\) *{\\w+ *",!0),"';\n this.").concat(o," = '").concat(t.encode("['|\"].+['|\"];? *}",!0),"';\n };\n \n StatesClass.prototype.").concat(s," = function () {\n var regExp = new RegExp(this.").concat(a," + this.").concat(o,");\n var expression = regExp.test(this.").concat(i,".toString())\n ? --this.").concat(r,"[1]\n : --this.").concat(r,"[0];\n \n return this.").concat(u,"(expression);\n };\n \n StatesClass.prototype.").concat(u," = function (").concat(l,") {\n if (!Boolean(~").concat(l,")) {\n return ").concat(l,";\n }\n \n return this.").concat(c,"(this.").concat(n,");\n };\n\n StatesClass.prototype.").concat(c," = function (").concat(n,") {\n for (var i = 0, len = this.").concat(r,".length; i < len; i++) {\n this.").concat(r,".push(Math.round(Math.random()));\n len = this.").concat(r,".length;\n }\n \n return ").concat(n,"(this.").concat(r,"[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).").concat(s,"();\n ")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=function(){return"\n var rc4 = function (str, key) {\n var s = [], j = 0, x, res = '', newStr = '';\n \n str = atob(str);\n \n for (var k = 0, length = str.length; k < length; k++) {\n newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n }\n \n str = decodeURIComponent(newStr);\n \t \n\t for (var i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (var y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return res;\n }\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=function(){return"\n (function () {\n {globalVariableTemplate}\n \n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n that.atob || (\n that.atob = function(input) {\n var str = String(input).replace(/=+$/, '');\n for (\n var bc = 0, bs, buffer, idx = 0, output = '';\n buffer = str.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n })();\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(45),A=n(82),E=n(15),N=n(85),I=n(342),_=n(99),x=n(341),D=n(340),F=n(339),T=n(338),M=n(337),w=n(21),k=n(77),B=n(14),R=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,e,n,i))).escapeSequenceEncoder=r,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e,t){this.stringArrayName=e,this.stringArrayCallsWrapperName=t}},{key:"getNodeStructure",value:function(){return B.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.getDecodeStringArrayTemplate();return k.JavaScriptObfuscator.obfuscate(C.default(T.StringArrayCallsWrapperTemplate(),{decodeNodeTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName}),(0,i.default)({},N.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode()}},{key:"getDecodeStringArrayTemplate",value:function(){var e=this.options.target!==S.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():_.GlobalVariableNoEvalTemplate(),t=C.default(I.AtobTemplate(),{globalVariableTemplate:e}),n="",r="";switch(this.options.selfDefending&&(r=C.default(D.SelfDefendingTemplate(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayName:this.stringArrayName})),this.options.stringArrayEncoding){case A.StringArrayEncoding.Rc4:n=C.default(M.StringArrayRc4DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,rc4Polyfill:x.Rc4Template(),selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName});break;case A.StringArrayEncoding.Base64:n=C.default(F.StringArrayBase64DecodeNodeTemplate(this.randomGenerator),{atobPolyfill:t,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName})}return n}}]),t}(w.AbstractCustomNode);h([E.initializable(),m("design:type",String)],R.prototype,"stringArrayName",void 0),h([E.initializable(),m("design:type",String)],R.prototype,"stringArrayCallsWrapperName",void 0),R=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IEscapeSequenceEncoder)),g(3,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],R),t.StringArrayCallsWrapper=R},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e){return"\n var {selfDefendingFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func1 = function(){return 'dev';},\n func2 = function () {\n return 'window';\n };\n \n var test1 = function () {\n var regExp = new RegExp('".concat(e.encode("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}",!0),"');\n \n return !regExp.test(func1.toString());\n };\n \n var test2 = function () {\n var regExp = new RegExp('").concat(e.encode("(\\\\[x|u](\\w){2,4})+",!0),"');\n \n return regExp.test(func2.toString());\n };\n \n var recursiveFunc1 = function (string) {\n var i = ~-1 >> 1 + 255 % 0;\n \n if (string.indexOf('i' === i)) {\n recursiveFunc2(string)\n }\n };\n \n var recursiveFunc2 = function (string) {\n var i = ~-4 >> 1 + 255 % 0;\n \n if (string.indexOf((true+\"\")[3]) !== i) {\n recursiveFunc1(string)\n }\n };\n \n if (!test1()) {\n if (!test2()) {\n recursiveFunc1('indеxOf');\n } else {\n recursiveFunc1('indexOf');\n }\n } else {\n recursiveFunc1('indеxOf');\n }\n })\n \n {selfDefendingFunctionName}();\n ")}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(15),A=n(85),E=n(344),N=n(21),I=n(77),_=n(14),x=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,e,n,i))).escapeSequenceEncoder=r,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return I.JavaScriptObfuscator.obfuscate(C.default(E.SelfDefendingTemplate(this.escapeSequenceEncoder),{selfDefendingFunctionName:this.identifierNamesGenerator.generate(),singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,i.default)({},A.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed,unicodeEscapeSequence:!0})).getObfuscatedCode()}}]),t}(N.AbstractCustomNode);h([S.initializable(),m("design:type",String)],x.prototype,"callsControllerFunctionName",void 0),x=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IEscapeSequenceEncoder)),g(3,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],x),t.SelfDefendingUnicodeNode=x},function(e,t,n){var r=n(26),i=n(59).onFreeze;n(67)("freeze",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},function(e,t,n){n(346),e.exports=n(16).Object.freeze},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleNodeCallControllerTemplate=function(){return"\n var {singleNodeCallControllerFunctionName} = (function(){\n var firstCall = true;\n \n return function (context, fn){\n var rfn = firstCall ? function(){\n if(fn){\n var res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(17)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(46),A=n(15),E=n(348),N=n(85),I=n(21),_=n(77),x=n(14),D=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e,t){this.appendEvent=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return x.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return this.appendEvent===S.ObfuscationEvent.AfterObfuscation?_.JavaScriptObfuscator.obfuscate(C.default(E.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName}),(0,i.default)({},N.NO_ADDITIONAL_NODES_PRESET,{identifierNamesGenerator:this.options.identifierNamesGenerator,seed:this.options.seed})).getObfuscatedCode():C.default(E.SingleNodeCallControllerTemplate(),{singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(I.AbstractCustomNode);h([A.initializable(),m("design:type",String)],D.prototype,"callsControllerFunctionName",void 0),h([A.initializable(),m("design:type",String)],D.prototype,"appendEvent",void 0),D=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],D),t.NodeCallsControllerFunctionNode=D},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(14),A=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=C.NodeFactory.expressionStatementNode(C.NodeFactory.functionExpressionNode([C.NodeFactory.identifierNode("x"),C.NodeFactory.identifierNode("y")],C.NodeFactory.blockStatementNode([C.NodeFactory.returnStatementNode(C.NodeFactory.logicalExpressionNode(this.operator,C.NodeFactory.identifierNode("x"),C.NodeFactory.identifierNode("y")))])));return S.NodeUtils.parentizeAst(e),[e]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",String)],A.prototype,"operator",void 0),A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],A),t.LogicalExpressionFunctionNode=A},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(14),A=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,n,r){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=n,this.rightValue=r}},{key:"getNodeStructure",value:function(){var e=C.NodeFactory.expressionStatementNode(C.NodeFactory.callExpressionNode(C.NodeFactory.memberExpressionNode(C.NodeFactory.identifierNode(this.controlFlowStorageName),C.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return S.NodeUtils.parentizeAst(e),[e]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",String)],A.prototype,"controlFlowStorageKey",void 0),p([v.initializable(),h("design:type",String)],A.prototype,"controlFlowStorageName",void 0),p([v.initializable(),h("design:type",Object)],A.prototype,"leftValue",void 0),p([v.initializable(),h("design:type",Object)],A.prototype,"rightValue",void 0),A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],A),t.ExpressionWithOperatorControlFlowStorageCallNode=A},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockNodeTemplate=function(){return'\n var {domainLockFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n var func = function () {\n return {\n key: \'item\',\n value: \'attribute\',\n getAttribute: function () {\n for (var i = 0; i < 1000; i--) {\n var isPositive = i > 0;\n \n switch (isPositive) {\n case true:\n return this.item + \'_\' + this.value + \'_\' + i;\n default:\n this.item + \'_\' + this.value;\n }\n }\n }()\n };\n };\n \n var regExp = new RegExp("[{diff}]", "g");\n var domains = "{domains}".replace(regExp, "").split(";");\n var document;\n var domain;\n var location;\n var hostname;\n\n for (var d in that) {\n if (d.length == 8 && d.charCodeAt(7) == 116 && d.charCodeAt(5) == 101 && d.charCodeAt(3) == 117 && d.charCodeAt(0) == 100) {\n document = d;\n \n break;\n }\n }\n\n for (var d1 in that[document]) {\n if (d1.length == 6 && d1.charCodeAt(5) == 110 && d1.charCodeAt(0) == 100) {\n domain = d1;\n \n break;\n }\n }\n\n if (!("~" > domain)) {\n for (var d2 in that[document]) {\n if (d2.length == 8 && d2.charCodeAt(7) == 110 && d2.charCodeAt(0) == 108) {\n location = d2;\n \n break;\n }\n }\n\n for (var d3 in that[document][location]) {\n if (d3.length == 8 && d3.charCodeAt(7) == 101 && d3.charCodeAt(0) == 104) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n var documentDomain = that[document][domain];\n var documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n var currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n var ok = false;\n \n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n var position = currentDomain.length - domain.length;\n var lastIndex = currentDomain.indexOf(domain, position);\n var endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n \n if (!ok) {\n data;\n } else {\n return;\n }\n \n func();\n });\n\n {domainLockFunctionName}();\n '}},function(e,t,n){"use strict";var r=n(0),i=r(n(55)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(34)),S=n(45),A=n(15),E=n(352),N=n(99),I=n(21),_=n(14),x=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,e,n,i))).cryptUtils=r,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.domainLock.join(";"),t=this.cryptUtils.hideString(e,3*e.length),n=(0,i.default)(t,2),r=n[0],a=n[1],o=this.options.target!==S.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():N.GlobalVariableNoEvalTemplate();return C.default(E.DomainLockNodeTemplate(),{domainLockFunctionName:this.identifierNamesGenerator.generate(),diff:a,domains:r,globalVariableTemplate:o,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(I.AbstractCustomNode);h([A.initializable(),m("design:type",String)],x.prototype,"callsControllerFunctionName",void 0),x=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(2,v.inject(b.ServiceIdentifiers.ICryptUtils)),g(3,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],x),t.DomainLockNode=x},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n \n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n var func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(34)),C=n(45),S=n(15),A=n(356),E=n(355),N=n(354),I=n(21),_=n(14),x=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return _.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==C.ObfuscationTarget.BrowserNoEval?A.DebuggerTemplate():E.DebuggerTemplateNoEval();return b.default(N.DebugProtectionFunctionTemplate(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(I.AbstractCustomNode);p([S.initializable(),h("design:type",String)],x.prototype,"debugProtectionFunctionName",void 0),x=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],x),t.DebugProtectionFunctionNode=x},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=function(){return"\n setInterval(function () {\n {debugProtectionFunctionName}();\n }, 4000);\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(34)),C=n(15),S=n(358),A=n(21),E=n(14),N=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.debugProtectionFunctionName=e}},{key:"getNodeStructure",value:function(){return E.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return b.default(S.DebugProtectionFunctionIntervalTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName})}}]),t}(A.AbstractCustomNode);p([C.initializable(),h("design:type",String)],N.prototype,"debugProtectionFunctionName",void 0),N=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],N),t.DebugProtectionFunctionIntervalNode=N},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {singleNodeCallControllerFunctionName}(this, function () {\n var regExp1 = new RegExp('function *\\\\( *\\\\)');\n var regExp2 = new RegExp('\\\\+\\\\+ *\\(?:_0x(?:[a-f0-9]){4,6}|(?:\\\\b|\\\\d)[a-z0-9]{1,4}(?:\\\\b|\\\\d)\\)', 'i');\n \n var result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n })();\n })();\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(34)),C=n(15),S=n(360),A=n(21),E=n(14),N=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}},{key:"getNodeStructure",value:function(){return E.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){return b.default(S.DebugProtectionFunctionCallTemplate(),{debugProtectionFunctionName:this.debugProtectionFunctionName,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(A.AbstractCustomNode);p([C.initializable(),h("design:type",String)],N.prototype,"callsControllerFunctionName",void 0),p([C.initializable(),h("design:type",String)],N.prototype,"debugProtectionFunctionName",void 0),N=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],N),t.DebugProtectionFunctionCallNode=N},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableExpressionTemplate=function(){return"\n var {consoleLogDisableFunctionName} = {singleNodeCallControllerFunctionName}(this, function () {\n var func = function () {};\n \n {globalVariableTemplate}\n \n if (!that.console) {\n that.console = (function (func){\n var c = {};\n \n c.log = func;\n c.warn = func;\n c.debug = func;\n c.info = func;\n c.error = func;\n c.exception = func;\n c.trace = func;\n \n return c;\n })(func);\n } else {\n that.console.log = func;\n that.console.warn = func;\n that.console.debug = func;\n that.console.info = func;\n that.console.error = func;\n that.console.exception = func;\n that.console.trace = func;\n }\n });\n \n {consoleLogDisableFunctionName}();\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(34)),C=n(45),S=n(362),A=n(99),E=n(15),N=n(21),I=n(14),_=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.callsControllerFunctionName=e}},{key:"getNodeStructure",value:function(){return I.NodeUtils.convertCodeToStructure(this.getTemplate())}},{key:"getTemplate",value:function(){var e=this.options.target!==C.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():A.GlobalVariableNoEvalTemplate();return b.default(S.ConsoleOutputDisableExpressionTemplate(),{consoleLogDisableFunctionName:this.identifierNamesGenerator.generate(),globalVariableTemplate:e,singleNodeCallControllerFunctionName:this.callsControllerFunctionName})}}]),t}(N.AbstractCustomNode);p([E.initializable(),h("design:type",String)],_.prototype,"callsControllerFunctionName",void 0),_=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],_),t.ConsoleOutputDisableExpressionNode=_},function(e,t,n){"use strict";var r=n(0),i=r(n(55)),a=r(n(154)),o=r(n(2)),s=r(n(3)),u=r(n(11)),c=r(n(9)),l=r(n(10)),d=r(n(8)),f=r(n(7)),p=r(n(6)),h=r(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(15),S=n(21),A=n(20),E=n(13),N=n(14),I=function(e){function t(e,n,r){return(0,o.default)(this,t),(0,u.default)(this,(0,c.default)(t).call(this,e,n,r))}return(0,l.default)(t,e),(0,s.default)(t,[{key:"initialize",value:function(e){this.controlFlowStorage=e}},{key:"getNodeStructure",value:function(){var e=(0,a.default)(this.controlFlowStorage.getStorage()).map(function(e){var t=(0,i.default)(e,2),n=t[0],r=t[1].getNode()[0];if(!E.NodeGuards.isExpressionStatementNode(r))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");return A.NodeFactory.propertyNode(A.NodeFactory.identifierNode(n),r.expression)}),t=A.NodeFactory.variableDeclarationNode([A.NodeFactory.variableDeclaratorNode(A.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),A.NodeFactory.objectExpressionNode(e))]);return[t=N.NodeUtils.parentizeAst(t)]}}]),t}(S.AbstractCustomNode);m([C.initializable(),g("design:type",Object)],I.prototype,"controlFlowStorage",void 0),I=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),y(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(2,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object])],I),t.ControlFlowStorageNode=I},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(14),A=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.expressionArguments=e}},{key:"getNodeStructure",value:function(){for(var e=C.NodeFactory.identifierNode("callee"),t=[],n=this.expressionArguments.length,r=0;r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(21),S=n(20),A=n(14),E=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e,t,n,r){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=n,this.expressionArguments=r}},{key:"getNodeStructure",value:function(){var e=S.NodeFactory.expressionStatementNode(S.NodeFactory.callExpressionNode(S.NodeFactory.memberExpressionNode(S.NodeFactory.identifierNode(this.controlFlowStorageName),S.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee].concat((0,i.default)(this.expressionArguments))));return A.NodeUtils.parentizeAst(e),[e]}}]),t}(C.AbstractCustomNode);h([b.initializable(),m("design:type",Object)],E.prototype,"callee",void 0),h([b.initializable(),m("design:type",String)],E.prototype,"controlFlowStorageKey",void 0),h([b.initializable(),m("design:type",String)],E.prototype,"controlFlowStorageName",void 0),h([b.initializable(),m("design:type",Array)],E.prototype,"expressionArguments",void 0),E=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],E),t.CallExpressionControlFlowStorageCallNode=E},function(e,t,n){"use strict";var r=n(0),i=r(n(55)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(21),S=n(20),A=n(14),E=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"initialize",value:function(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}},{key:"getNodeStructure",value:function(){var e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,n=e?"===":"!==",r=this.randomGenerator.getRandomString(5),a=t?r:this.randomGenerator.getRandomString(5),o=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=(0,i.default)(o,2),u=s[0],c=s[1],l=S.NodeFactory.blockStatementNode([S.NodeFactory.ifStatementNode(S.NodeFactory.binaryExpressionNode(n,S.NodeFactory.literalNode(r),S.NodeFactory.literalNode(a)),u,c)]);return A.NodeUtils.parentizeAst(l),[l]}}]),t}(C.AbstractCustomNode);h([b.initializable(),m("design:type",Object)],E.prototype,"blockStatementNode",void 0),h([b.initializable(),m("design:type",Object)],E.prototype,"deadCodeInjectionRootAstHostNode",void 0),E=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],E),t.BlockStatementDeadCodeInjectionNode=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(13),A=n(14),E=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e,t,n){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=n}},{key:"getNodeStructure",value:function(){var e=this,t=this.randomGenerator.getRandomString(6),n=this.randomGenerator.getRandomString(6),r=C.NodeFactory.blockStatementNode([C.NodeFactory.variableDeclarationNode([C.NodeFactory.variableDeclaratorNode(C.NodeFactory.identifierNode(t),C.NodeFactory.callExpressionNode(C.NodeFactory.memberExpressionNode(C.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join("|")),C.NodeFactory.identifierNode("split")),[C.NodeFactory.literalNode("|")])),C.NodeFactory.variableDeclaratorNode(C.NodeFactory.identifierNode(n),C.NodeFactory.literalNode(0))]),C.NodeFactory.whileStatementNode(C.NodeFactory.literalNode(!0),C.NodeFactory.blockStatementNode([C.NodeFactory.switchStatementNode(C.NodeFactory.memberExpressionNode(C.NodeFactory.identifierNode(t),C.NodeFactory.updateExpressionNode("++",C.NodeFactory.identifierNode(n)),!0),this.shuffledKeys.map(function(t,n){var r=e.blockStatementBody[t],i=[r];return S.NodeGuards.isReturnStatementNode(r)||i.push(C.NodeFactory.continueStatement()),C.NodeFactory.switchCaseNode(C.NodeFactory.literalNode(String(n)),i)})),C.NodeFactory.breakStatement()]))]);return A.NodeUtils.parentizeAst(r),[r]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",Array)],E.prototype,"blockStatementBody",void 0),p([v.initializable(),h("design:type",Array)],E.prototype,"originalKeysIndexesInShuffledArray",void 0),p([v.initializable(),h("design:type",Array)],E.prototype,"shuffledKeys",void 0),E=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],E),t.BlockStatementControlFlowFlatteningNode=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=function(){return"\n var getGlobal = function () {\n var globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n var that = getGlobal();\n "}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=function(){return"\n var that;\n \n try {\n var getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(15),b=n(21),C=n(20),S=n(14),A=function(e){function t(e,n,r){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n,r))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(e){this.operator=e}},{key:"getNodeStructure",value:function(){var e=C.NodeFactory.expressionStatementNode(C.NodeFactory.functionExpressionNode([C.NodeFactory.identifierNode("x"),C.NodeFactory.identifierNode("y")],C.NodeFactory.blockStatementNode([C.NodeFactory.returnStatementNode(C.NodeFactory.binaryExpressionNode(this.operator,C.NodeFactory.identifierNode("x"),C.NodeFactory.identifierNode("y")))])));return S.NodeUtils.parentizeAst(e),[e]}}]),t}(b.AbstractCustomNode);p([v.initializable(),h("design:type",String)],A.prototype,"operator",void 0),A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),m(1,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(2,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Function,Object,Object])],A),t.BinaryExpressionFunctionNode=A},function(e,t,n){"use strict";var r=n(0),i=r(n(55)),a=r(n(22)),o=r(n(2)),s=r(n(3)),u=r(n(11)),c=r(n(9)),l=r(n(10)),d=r(n(8)),f=r(n(7)),p=r(n(6)),h=r(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(15),S=n(54),A=n(46),E=n(65),N=n(47),I=function(e){function t(e,n,r,i,a){var s;return(0,o.default)(this,t),(s=(0,u.default)(this,(0,c.default)(t).call(this,r,i,a))).appendEvent=A.ObfuscationEvent.AfterObfuscation,s.customNodeFactory=e,s.stringArrayStorage=n,s}return(0,l.default)(t,e),(0,s.default)(t,[{key:"appendCustomNodes",value:function(e,t){this.stringArrayStorage.getLength()&&(this.appendCustomNodeIfExist(S.CustomNode.StringArrayNode,function(t){N.NodeAppender.prepend(e,t.getNode())}),this.appendCustomNodeIfExist(S.CustomNode.StringArrayCallsWrapper,function(t){N.NodeAppender.insertAtIndex(e,t.getNode(),1)}),this.appendCustomNodeIfExist(S.CustomNode.StringArrayRotateFunctionNode,function(t){N.NodeAppender.insertAtIndex(e,t.getNode(),1)}))}},{key:"initialize",value:function(){if(this.customNodes=new a.default,this.options.stringArray){var e,t=this.customNodeFactory(S.CustomNode.StringArrayNode),n=this.customNodeFactory(S.CustomNode.StringArrayCallsWrapper),r=this.customNodeFactory(S.CustomNode.StringArrayRotateFunctionNode),o=this.stringArrayStorage.getStorageId().split("|"),s=(0,i.default)(o,2),u=s[0],c=s[1];e=this.options.rotateStringArray?this.randomGenerator.getRandomInteger(100,500):0,t.initialize(this.stringArrayStorage,u,e),n.initialize(u,c),r.initialize(u,e),this.customNodes.set(S.CustomNode.StringArrayNode,t),this.customNodes.set(S.CustomNode.StringArrayCallsWrapper,n),this.options.rotateStringArray&&this.customNodes.set(S.CustomNode.StringArrayRotateFunctionNode,r)}}}]),t}(E.AbstractCustomNodeGroup);m([C.initializable(),g("design:type",a.default)],I.prototype,"customNodes",void 0),I=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.Factory__ICustomNode)),y(1,v.inject(b.ServiceIdentifiers.TStringArrayStorage)),y(2,v.inject(b.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),y(3,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(4,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Function,Object,Object])],I),t.StringArrayCustomNodeGroup=I},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(54),S=n(46),A=n(65),E=n(47),N=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r,i))).appendEvent=S.ObfuscationEvent.AfterObfuscation,o.customNodeFactory=e,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"appendCustomNodes",value:function(e,t){var n=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(C.CustomNode.SelfDefendingUnicodeNode,function(r){E.NodeAppender.appendToOptimalBlockScope(t,e,r.getNode(),n)}),this.appendCustomNodeIfExist(C.CustomNode.NodeCallsControllerFunctionNode,function(r){var i;i=t.length?E.NodeAppender.getOptimalBlockScope(t,n,1):e,E.NodeAppender.prepend(i,r.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new i.default,this.options.selfDefending){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(C.CustomNode.SelfDefendingUnicodeNode),n=this.customNodeFactory(C.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),n.initialize(this.appendEvent,e),this.customNodes.set(C.CustomNode.SelfDefendingUnicodeNode,t),this.customNodes.set(C.CustomNode.NodeCallsControllerFunctionNode,n)}}}]),t}(A.AbstractCustomNodeGroup);h([b.initializable(),m("design:type",i.default)],N.prototype,"customNodes",void 0),N=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__ICustomNode)),g(1,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(2,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(3,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Function,Object,Object])],N),t.SelfDefendingCustomNodeGroup=N},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(54),S=n(46),A=n(65),E=n(47),N=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r,i))).appendEvent=S.ObfuscationEvent.BeforeObfuscation,o.customNodeFactory=e,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"appendCustomNodes",value:function(e,t){var n=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(C.CustomNode.DomainLockNode,function(r){E.NodeAppender.appendToOptimalBlockScope(t,e,r.getNode(),n)}),this.appendCustomNodeIfExist(C.CustomNode.NodeCallsControllerFunctionNode,function(r){var i;i=t.length?E.NodeAppender.getOptimalBlockScope(t,n,1):e,E.NodeAppender.prepend(i,r.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new i.default,this.options.domainLock.length){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(C.CustomNode.DomainLockNode),n=this.customNodeFactory(C.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),n.initialize(this.appendEvent,e),this.customNodes.set(C.CustomNode.DomainLockNode,t),this.customNodes.set(C.CustomNode.NodeCallsControllerFunctionNode,n)}}}]),t}(A.AbstractCustomNodeGroup);h([b.initializable(),m("design:type",i.default)],N.prototype,"customNodes",void 0),N=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__ICustomNode)),g(1,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(2,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(3,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Function,Object,Object])],N),t.DomainLockCustomNodeGroup=N},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(54),S=n(46),A=n(65),E=n(47),N=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r,i))).appendEvent=S.ObfuscationEvent.BeforeObfuscation,o.customNodeFactory=e,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"appendCustomNodes",value:function(e,t){var n=this,r=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(C.CustomNode.DebugProtectionFunctionCallNode,function(n){E.NodeAppender.appendToOptimalBlockScope(t,e,n.getNode(),r)}),this.appendCustomNodeIfExist(C.CustomNode.DebugProtectionFunctionNode,function(t){E.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(C.CustomNode.DebugProtectionFunctionIntervalNode,function(t){var r=e.body.length,i=n.randomGenerator.getRandomInteger(0,r);E.NodeAppender.insertAtIndex(e,t.getNode(),i)}),this.appendCustomNodeIfExist(C.CustomNode.NodeCallsControllerFunctionNode,function(n){var i;i=t.length?E.NodeAppender.getOptimalBlockScope(t,r,1):e,E.NodeAppender.prepend(i,n.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new i.default,this.options.debugProtection){var e=this.identifierNamesGenerator.generate(),t=this.identifierNamesGenerator.generate(),n=this.customNodeFactory(C.CustomNode.DebugProtectionFunctionNode),r=this.customNodeFactory(C.CustomNode.DebugProtectionFunctionCallNode),a=this.customNodeFactory(C.CustomNode.DebugProtectionFunctionIntervalNode),o=this.customNodeFactory(C.CustomNode.NodeCallsControllerFunctionNode);n.initialize(e),r.initialize(e,t),a.initialize(e),o.initialize(this.appendEvent,t),this.customNodes.set(C.CustomNode.DebugProtectionFunctionNode,n),this.customNodes.set(C.CustomNode.DebugProtectionFunctionCallNode,r),this.options.debugProtectionInterval&&this.customNodes.set(C.CustomNode.DebugProtectionFunctionIntervalNode,a),this.customNodes.set(C.CustomNode.NodeCallsControllerFunctionNode,o)}}}]),t}(A.AbstractCustomNodeGroup);h([b.initializable(),m("design:type",i.default)],N.prototype,"customNodes",void 0),N=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__ICustomNode)),g(1,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(2,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(3,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Function,Object,Object])],N),t.DebugProtectionCustomNodeGroup=N},function(e,t,n){var r=n(86),i=n(27),a=n(72),o=r.has,s=r.key,u=function(e,t,n){if(o(e,t,n))return!0;var r=a(t);return null!==r&&u(e,r,n)};r.exp({hasMetadata:function(e,t){return u(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},function(e,t,n){n(376),e.exports=n(16).Reflect.hasMetadata},function(e,t,n){e.exports=n(377)},function(e,t,n){var r=n(86),i=n(27),a=r.key,o=r.set;r.exp({defineMetadata:function(e,t,n,r){o(e,t,i(n),a(r))}})},function(e,t,n){n(379),e.exports=n(16).Reflect.defineMetadata},function(e,t,n){e.exports=n(380)},function(e,t,n){n(67)("getOwnPropertyNames",function(){return n(163).f})},function(e,t,n){n(382);var r=n(16).Object;e.exports=function(e){return r.getOwnPropertyNames(e)}},function(e,t,n){e.exports=n(383)},function(e,t,n){var r=n(86),i=n(27),a=n(72),o=r.has,s=r.get,u=r.key,c=function(e,t,n){if(o(e,t,n))return s(e,t,n);var r=a(t);return null!==r?c(e,r,n):void 0};r.exp({getMetadata:function(e,t){return c(e,i(t),arguments.length<3?void 0:u(arguments[2]))}})},function(e,t,n){n(385),e.exports=n(16).Reflect.getMetadata},function(e,t,n){e.exports=n(386)},function(e,t,n){"use strict";var r=n(0),i=r(n(22)),a=r(n(2)),o=r(n(3)),s=r(n(11)),u=r(n(9)),c=r(n(10)),l=r(n(8)),d=r(n(7)),f=r(n(6)),p=r(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(15),C=n(54),S=n(46),A=n(65),E=n(47),N=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,n,r,i))).appendEvent=S.ObfuscationEvent.BeforeObfuscation,o.customNodeFactory=e,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"appendCustomNodes",value:function(e,t){var n=this.getRandomStackTraceIndex(t.length);this.appendCustomNodeIfExist(C.CustomNode.ConsoleOutputDisableExpressionNode,function(r){E.NodeAppender.appendToOptimalBlockScope(t,e,r.getNode(),n)}),this.appendCustomNodeIfExist(C.CustomNode.NodeCallsControllerFunctionNode,function(r){var i;i=t.length?E.NodeAppender.getOptimalBlockScope(t,n,1):e,E.NodeAppender.prepend(i,r.getNode())})}},{key:"initialize",value:function(){if(this.customNodes=new i.default,this.options.disableConsoleOutput){var e=this.identifierNamesGenerator.generate(),t=this.customNodeFactory(C.CustomNode.ConsoleOutputDisableExpressionNode),n=this.customNodeFactory(C.CustomNode.NodeCallsControllerFunctionNode);t.initialize(e),n.initialize(this.appendEvent,e),this.customNodes.set(C.CustomNode.ConsoleOutputDisableExpressionNode,t),this.customNodes.set(C.CustomNode.NodeCallsControllerFunctionNode,n)}}}]),t}(A.AbstractCustomNodeGroup);h([b.initializable(),m("design:type",i.default)],N.prototype,"customNodes",void 0),N=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__ICustomNode)),g(1,y.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),g(2,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(3,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Function,Object,Object])],N),t.ConsoleOutputCustomNodeGroup=N},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(43),i=n(1),a=n(4),o=n(40),s=n(54),u=n(151),c=n(155),l=n(388),d=n(375),f=n(374),p=n(373),h=n(372),m=n(371),g=n(368),y=n(367),v=n(366),b=n(365),C=n(364),S=n(363),A=n(361),E=n(359),N=n(357),I=n(353),_=n(351),x=n(350),D=n(349),F=n(345),T=n(343),M=n(336),w=n(330),k=n(327),B=n(326);t.customNodesModule=new i.ContainerModule(function(e){e(a.ServiceIdentifiers.ICustomNode).to(S.ConsoleOutputDisableExpressionNode).whenTargetNamed(s.CustomNode.ConsoleOutputDisableExpressionNode),e(a.ServiceIdentifiers.ICustomNode).to(A.DebugProtectionFunctionCallNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionCallNode),e(a.ServiceIdentifiers.ICustomNode).to(E.DebugProtectionFunctionIntervalNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionIntervalNode),e(a.ServiceIdentifiers.ICustomNode).to(N.DebugProtectionFunctionNode).whenTargetNamed(s.CustomNode.DebugProtectionFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(I.DomainLockNode).whenTargetNamed(s.CustomNode.DomainLockNode),e(a.ServiceIdentifiers.ICustomNode).to(D.NodeCallsControllerFunctionNode).whenTargetNamed(s.CustomNode.NodeCallsControllerFunctionNode),e(a.ServiceIdentifiers.ICustomNode).to(F.SelfDefendingUnicodeNode).whenTargetNamed(s.CustomNode.SelfDefendingUnicodeNode),e(a.ServiceIdentifiers.ICustomNode).to(T.StringArrayCallsWrapper).whenTargetNamed(s.CustomNode.StringArrayCallsWrapper),e(a.ServiceIdentifiers.ICustomNode).to(M.StringArrayNode).whenTargetNamed(s.CustomNode.StringArrayNode),e(a.ServiceIdentifiers.ICustomNode).to(w.StringArrayRotateFunctionNode).whenTargetNamed(s.CustomNode.StringArrayRotateFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.BinaryExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.BlockStatementControlFlowFlatteningNode).whenTargetNamed(o.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(v.CallExpressionControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(b.CallExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.CallExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(C.ControlFlowStorageNode).whenTargetNamed(o.ControlFlowCustomNode.ControlFlowStorageNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(_.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(x.LogicalExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(B.StringLiteralNode).whenTargetNamed(o.ControlFlowCustomNode.StringLiteralNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(k.StringLiteralControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.BlockStatementDeadCodeInjectionNode).whenTargetNamed(c.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(a.ServiceIdentifiers.ICustomNodeGroup).to(l.ConsoleOutputCustomNodeGroup).whenTargetNamed(u.CustomNodeGroup.ConsoleOutputCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(d.DebugProtectionCustomNodeGroup).whenTargetNamed(u.CustomNodeGroup.DebugProtectionCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(f.DomainLockCustomNodeGroup).whenTargetNamed(u.CustomNodeGroup.DomainLockCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(p.SelfDefendingCustomNodeGroup).whenTargetNamed(u.CustomNodeGroup.SelfDefendingCustomNodeGroup),e(a.ServiceIdentifiers.ICustomNodeGroup).to(h.StringArrayCustomNodeGroup).whenTargetNamed(u.CustomNodeGroup.StringArrayCustomNodeGroup),e(a.ServiceIdentifiers.Factory__ICustomNode).toFactory(r.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNode)),e(a.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(r.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(r.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__ICustomNodeGroup).toFactory(r.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomNodeGroup))})},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}},g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=g(n(24)),C=n(152),S=n(13),A=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){return!S.NodeGuards.isIdentifierNode(t.id)||this.isProhibitedObjectExpressionNode(e,t.id)?e:this.transformObjectExpressionNode(e,t.id)}},{key:"getHostVariableDeclaratorNode",value:function(e){var t=e.parentNode;if(!t||!S.NodeGuards.isVariableDeclaratorNode(t))throw new Error("Cannot get `VariableDeclarator` node for `ObjectExpression` node");return t}},{key:"getHostVariableDeclarationNode",value:function(e){var t=e.parentNode;if(!t||!S.NodeGuards.isVariableDeclarationNode(t))throw new Error("Cannot get `VariableDeclaration` node for `VariableDeclarator` node");return t}},{key:"isProhibitedObjectExpressionNode",value:function(e,t){var n=this.getHostVariableDeclaratorNode(e),r=this.getHostVariableDeclarationNode(n).declarations,i=r.indexOf(n);if(i===r.length-1)return!1;var a=!1;return r.slice(i).forEach(function(e){b.traverse(e,{enter:function(e){return S.NodeGuards.isMemberExpressionNode(e)&&S.NodeGuards.isIdentifierNode(e.object)&&e.object.name===t.name?(a=!0,b.VisitorOption.Break):e}})}),a}}]),t}(C.AbstractPropertiesExtractor);A=p([y.injectable(),m(0,y.inject(v.ServiceIdentifiers.IRandomGenerator)),m(1,y.inject(v.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],A),t.VariableDeclaratorPropertiesExtractor=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(18),C=n(19),S=n(20),A=n(13),E=r=function(e){function t(e,n){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Converting:return{leave:function(e,n){if(n&&r.isValidTemplateLiteralNode(e,n))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=e.expressions,i=[];if(e.quasis.forEach(function(e){i.push(S.NodeFactory.literalNode(e.value.cooked));var t=n.shift();t&&i.push(t)}),i=i.filter(function(e){return!(A.NodeGuards.isLiteralNode(e)&&""===e.value)}),r.isLiteralNodeWithStringValue(i[0])||r.isLiteralNodeWithStringValue(i[1])||i.unshift(S.NodeFactory.literalNode("")),i.length>1){var a=S.NodeFactory.binaryExpressionNode("+",i.shift(),i.shift());return i.forEach(function(e){a=S.NodeFactory.binaryExpressionNode("+",a,e)}),a}return i[0]}}],[{key:"isLiteralNodeWithStringValue",value:function(e){return e&&A.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}},{key:"isValidTemplateLiteralNode",value:function(e,t){return A.NodeGuards.isTemplateLiteralNode(e)&&!A.NodeGuards.isTaggedTemplateExpressionNode(t)}}]),t}(C.AbstractNodeTransformer);E=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(1,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object,Object])],E),t.TemplateLiteralTransformer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(18),b=n(19),C=n(20),S=n(13),A=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Converting:return{enter:function(e,n){if(n&&S.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return e.properties.forEach(function(e){!e.computed&&e.key&&(e.shorthand&&(e.shorthand=!1),S.NodeGuards.isIdentifierNode(e.key)&&(e.key=C.NodeFactory.literalNode(e.key.name)))}),e}}]),t}(b.AbstractNodeTransformer);A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(1,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],A),t.ObjectExpressionTransformer=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(22)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=n(41),S=n(153),A=n(18),E=n(19),N=n(13),I=r=function(e){function t(e,n,r){var i;return(0,o.default)(this,t),(i=(0,u.default)(this,(0,c.default)(t).call(this,n,r))).propertiesExtractorFactory=e,i}return(0,l.default)(t,e),(0,s.default)(t,[{key:"getVisitor",value:function(e){var t=this;return e!==A.TransformationStage.Converting?null:{enter:function(e,n){if(t.options.transformObjectKeys&&n&&N.NodeGuards.isObjectExpressionNode(e))return t.transformNode(e,n)}}}},{key:"transformNode",value:function(e,t){if(!e.properties.length)return e;var n=r.propertiesExtractorsMap.get(t.type);return n?this.propertiesExtractorFactory(n).extract(e,t):e}}]),t}(E.AbstractNodeTransformer);I.propertiesExtractorsMap=new a.default([[C.NodeType.AssignmentExpression,S.PropertiesExtractor.AssignmentExpressionPropertiesExtractor],[C.NodeType.VariableDeclarator,S.PropertiesExtractor.VariableDeclaratorPropertiesExtractor]]),I=r=m([v.injectable(),y(0,v.inject(b.ServiceIdentifiers.Factory__IPropertiesExtractor)),y(1,v.inject(b.ServiceIdentifiers.IRandomGenerator)),y(2,v.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object])],I),t.ObjectExpressionKeysTransformer=I},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(18),C=n(19),S=n(20),A=n(13),E=r=function(e){function t(e,n){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Converting:return{enter:function(e,n){if(n&&A.NodeGuards.isMethodDefinitionNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return A.NodeGuards.isIdentifierNode(e.key)&&!r.ignoredNames.includes(e.key.name)&&!1===e.computed&&(e.computed=!0,e.key=S.NodeFactory.literalNode(e.key.name)),e}}]),t}(C.AbstractNodeTransformer);E.ignoredNames=["constructor"],E=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(1,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object,Object])],E),t.MethodDefinitionTransformer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(18),b=n(19),C=n(20),S=n(13),A=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Converting:return{enter:function(e,n){if(n&&S.NodeGuards.isMemberExpressionNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){if(S.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=C.NodeFactory.literalNode(e.property.name)}return e}}]),t}(b.AbstractNodeTransformer);A=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(1,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],A),t.MemberExpressionTransformer=A},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){var r=n(66);e.exports=function(e,t){var n=[],i=!0,a=!1,o=void 0;try{for(var s,u=r(e);!(i=(s=u.next()).done)&&(n.push(s.value),!t||n.length!==t);i=!0);}catch(e){a=!0,o=e}finally{try{i||null==u.return||u.return()}finally{if(a)throw o}}return n}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(8)),l=r(n(7)),d=r(n(6)),f=r(n(5)),p=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,l.default)(t,n,o),o},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=n(152),b=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var n=t.left;return v.AbstractPropertiesExtractor.isProhibitedPattern(n)?e:this.transformObjectExpressionNode(e,n)}}]),t}(v.AbstractPropertiesExtractor);b=p([g.injectable(),m(0,g.inject(y.ServiceIdentifiers.IRandomGenerator)),m(1,g.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],b),t.AssignmentExpressionPropertiesExtractor=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(43),a=n(4),o=n(58),s=n(153),u=n(399),c=n(395),l=n(394),d=n(393),f=n(392),p=n(391),h=n(390);t.convertingTransformersModule=new r.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(c.MemberExpressionTransformer).whenTargetNamed(o.NodeTransformer.MemberExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.MethodDefinitionTransformer).whenTargetNamed(o.NodeTransformer.MethodDefinitionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(d.ObjectExpressionKeysTransformer).whenTargetNamed(o.NodeTransformer.ObjectExpressionKeysTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.ObjectExpressionTransformer).whenTargetNamed(o.NodeTransformer.ObjectExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(p.TemplateLiteralTransformer).whenTargetNamed(o.NodeTransformer.TemplateLiteralTransformer),e(a.ServiceIdentifiers.IPropertiesExtractor).to(u.AssignmentExpressionPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.AssignmentExpressionPropertiesExtractor),e(a.ServiceIdentifiers.IPropertiesExtractor).to(h.VariableDeclaratorPropertiesExtractor).whenTargetNamed(s.PropertiesExtractor.VariableDeclaratorPropertiesExtractor),e(a.ServiceIdentifiers.Factory__IPropertiesExtractor).toFactory(i.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IPropertiesExtractor))})},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(40),C=n(100),S=n(13),A=r=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e,t,n){if(S.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if("string"!=typeof e.value||e.value.length<3)return e;var i=String(e.value),a=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.StringLiteralNode);a.initialize(e.value);var o=this.insertCustomNodeToControlFlowStorage(a,n,i,r.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(n.getStorageId(),o)}},{key:"getControlFlowStorageCallNode",value:function(e,t){var n=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);n.initialize(e,t);var r=n.getNode()[0];if(!r||!S.NodeGuards.isExpressionStatementNode(r))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return r.expression}}]),t}(C.AbstractControlFlowReplacer);A.usingExistingIdentifierChance=1,A=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],A),t.StringLiteralControlFlowReplacer=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(40),C=n(156),S=n(13),A=n(14),E=r=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e,t,n){if(this.checkForProhibitedExpressions(e.left,e.right))return e;var i=e.operator,a=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.LogicalExpressionFunctionNode);a.initialize(i);var o=this.insertCustomNodeToControlFlowStorage(a,n,i,r.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(n.getStorageId(),o,e.left,e.right)}},{key:"checkForProhibitedExpressions",value:function(e,t){return[e,t].some(function(e){var t;return t=S.NodeGuards.isUnaryExpressionNode(e)?A.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(S.NodeGuards.isLiteralNode(t)||S.NodeGuards.isIdentifierNode(t)||S.NodeGuards.isObjectExpressionNode(t)||S.NodeGuards.isExpressionStatementNode(t))})}}]),t}(C.ExpressionWithOperatorControlFlowReplacer);E.usingExistingIdentifierChance=.5,E=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],E),t.LogicalExpressionControlFlowReplacer=E},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){var r=n(113),i=n(30)("iterator"),a=n(61);e.exports=n(16).isIterable=function(e){var t=Object(e);return void 0!==t[i]||"@@iterator"in t||a.hasOwnProperty(r(t))}},function(e,t,n){n(71),n(62),e.exports=n(404)},function(e,t,n){e.exports=n(405)},function(e,t,n){var r=n(30)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){return{done:n=!0}},a[r]=function(){return o},e(a)}catch(e){}return n}},function(e,t,n){"use strict";var r=n(32),i=n(75);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){"use strict";var r=n(50),i=n(25),a=n(60),o=n(176),s=n(175),u=n(94),c=n(408),l=n(114);i(i.S+i.F*!n(407)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,d,f=a(e),p="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,g=void 0!==m,y=0,v=l(f);if(g&&(m=r(m,h>2?arguments[2]:void 0,2)),void 0==v||p==Array&&s(v))for(n=new p(t=u(f.length));t>y;y++)c(n,y,g?m(f[y],y):f[y]);else for(d=v.call(f),n=new p;!(i=d.next()).done;y++)c(n,y,g?o(d,m,[i.value,y],!0):i.value);return n.length=y,n}})},function(e,t,n){n(62),n(409),e.exports=n(16).Array.from},function(e,t,n){var r=n(154),i=n(406);e.exports=function(e){if(i(Object(e))||"[object Arguments]"===Object.prototype.toString.call(e))return r(e)}},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,h.default)(t,n,o),o},v=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,m.default)(Reflect))&&"function"==typeof p.default)return(0,p.default)(e,t)},b=function(e,t){return function(n,r){t(n,r,e)}},C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var S=n(1),A=n(4),E=C(n(24)),N=n(40),I=n(157),_=n(41),x=n(18),D=n(19),F=n(47),T=n(13),M=n(28),w=n(14),k=r=function(e){function t(e,n,r,i,a){var c;return(0,u.default)(this,t),(c=(0,l.default)(this,(0,d.default)(t).call(this,i,a))).controlFlowData=new s.default,c.visitedFunctionNodes=new o.default,c.hostNodesWithControlFlowNode=new o.default,c.controlFlowStorageFactory=e,c.controlFlowReplacerFactory=n,c.controlFlowCustomNodeFactory=r,c}return(0,f.default)(t,e),(0,c.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case x.TransformationStage.ControlFlowFlattening:return{leave:function(e,n){if(n&&(T.NodeGuards.isFunctionDeclarationNode(e)||T.NodeGuards.isFunctionExpressionNode(e)||T.NodeGuards.isArrowFunctionExpressionNode(e)))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.visitedFunctionNodes.add(e),!T.NodeGuards.isBlockStatementNode(e.body))return e;var n=this.getHostNode(e.body),r=this.getControlFlowStorage(n);if(this.controlFlowData.set(n,r),this.transformFunctionBody(e.body,r),!r.getLength())return e;var i=this.controlFlowCustomNodeFactory(N.ControlFlowCustomNode.ControlFlowStorageNode);return i.initialize(r),F.NodeAppender.prepend(n,i.getNode()),this.hostNodesWithControlFlowNode.add(n),e}},{key:"getControlFlowStorage",value:function(e){var t=this.controlFlowStorageFactory();if(this.controlFlowData.has(e)){this.hostNodesWithControlFlowNode.has(e)&&e.body.shift();var n=this.controlFlowData.get(e);t.mergeWith(n,!0)}return t}},{key:"getHostNode",value:function(e){var t=w.NodeUtils.getBlockScopesOfNode(e);return 1===t.length?e:(t.pop(),t.length>r.hostNodeSearchMinDepth&&t.splice(0,r.hostNodeSearchMinDepth),t.length>r.hostNodeSearchMaxDepth&&(t.length=r.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}},{key:"isVisitedFunctionNode",value:function(e){return(T.NodeGuards.isFunctionDeclarationNode(e)||T.NodeGuards.isFunctionExpressionNode(e)||T.NodeGuards.isArrowFunctionExpressionNode(e))&&this.visitedFunctionNodes.has(e)}},{key:"transformFunctionBody",value:function(e,t){var n=this;E.replace(e,{enter:function(e,i){if(M.NodeMetadata.isIgnoredNode(e))return E.VisitorOption.Skip;if(n.isVisitedFunctionNode(e)||!i)return E.VisitorOption.Skip;if(!r.controlFlowReplacersMap.has(e.type))return e;if(n.randomGenerator.getMathRandom()>n.options.controlFlowFlatteningThreshold)return e;var o=r.controlFlowReplacersMap.get(e.type);return void 0===o?e:(0,a.default)({},n.controlFlowReplacerFactory(o).replace(e,i,t),{parentNode:i})}})}}]),t}(D.AbstractNodeTransformer);k.controlFlowReplacersMap=new s.default([[_.NodeType.BinaryExpression,I.ControlFlowReplacer.BinaryExpressionControlFlowReplacer],[_.NodeType.CallExpression,I.ControlFlowReplacer.CallExpressionControlFlowReplacer],[_.NodeType.LogicalExpression,I.ControlFlowReplacer.LogicalExpressionControlFlowReplacer],[_.NodeType.Literal,I.ControlFlowReplacer.StringLiteralControlFlowReplacer]]),k.hostNodeSearchMinDepth=0,k.hostNodeSearchMaxDepth=2,k=r=y([S.injectable(),b(0,S.inject(A.ServiceIdentifiers.Factory__TControlFlowStorage)),b(1,S.inject(A.ServiceIdentifiers.Factory__IControlFlowReplacer)),b(2,S.inject(A.ServiceIdentifiers.Factory__IControlFlowCustomNode)),b(3,S.inject(A.ServiceIdentifiers.IRandomGenerator)),b(4,S.inject(A.ServiceIdentifiers.IOptions)),v("design:paramtypes",[Function,Function,Function,Object,Object])],k),t.FunctionControlFlowTransformer=k},function(e,t,n){n(171)("Set")},function(e,t,n){n(172)("Set")},function(e,t,n){var r=n(25);r(r.P+r.R,"Set",{toJSON:n(173)("Set")})},function(e,t,n){"use strict";var r=n(177),i=n(69);e.exports=n(112)("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},function(e,t,n){n(119),n(62),n(71),n(417),n(416),n(415),n(414),e.exports=n(16).Set},function(e,t,n){"use strict";var r,i=n(0),a=i(n(57)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(8)),f=i(n(7)),p=i(n(6)),h=i(n(5)),m=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,f.default)(t,n,o),o},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}},v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var b=n(1),C=n(4),S=v(n(24)),A=n(155),E=n(58),N=n(41),I=n(18),_=n(19),x=n(20),D=n(13),F=n(14),T=r=function(e){function t(e,n,r,i){var s;return(0,o.default)(this,t),(s=(0,u.default)(this,(0,c.default)(t).call(this,r,i))).deadCodeInjectionRootAstHostNodeSet=new a.default,s.collectedBlockStatements=[],s.collectedBlockStatementsTotalLength=0,s.deadCodeInjectionCustomNodeFactory=e,s.transformersRunner=n,s}return(0,l.default)(t,e),(0,s.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case I.TransformationStage.DeadCodeInjection:return{enter:function(e,n){if(n&&D.NodeGuards.isProgramNode(e))return t.analyzeNode(e,n),e},leave:function(e,n){if(n&&D.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,n)}};case I.TransformationStage.Finalizing:return this.deadCodeInjectionRootAstHostNodeSet.size?{enter:function(e,n){if(n&&t.isDeadCodeInjectionRootAstHostNode(e))return t.restoreNode(e,n)}}:null;default:return null}}},{key:"analyzeNode",value:function(e,t){var n=this;S.traverse(e,{enter:function(e){if(D.NodeGuards.isBlockStatementNode(e)){var t=F.NodeUtils.clone(e);r.isValidCollectedBlockStatementNode(t)&&(F.NodeUtils.parentizeNode(t,t),t=n.makeClonedBlockStatementNodeUnique(t),n.collectedBlockStatements.push(t))}}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}},{key:"transformNode",value:function(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!r.isValidWrappedBlockStatementNode(e))return e;var n=this.collectedBlockStatements.length-1,i=this.randomGenerator.getRandomInteger(0,n),a=this.collectedBlockStatements.splice(i,1)[0];return a===e?e:this.replaceBlockStatementNode(e,a,t)}},{key:"restoreNode",value:function(e,t){var n=e.body[0];if(!D.NodeGuards.isFunctionDeclarationNode(n))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return n.body}},{key:"isDeadCodeInjectionRootAstHostNode",value:function(e){return D.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e)}},{key:"makeClonedBlockStatementNodeUnique",value:function(e){return this.transformersRunner.transform(e,r.transformersToRenameBlockScopeIdentifiers,I.TransformationStage.Obfuscating)}},{key:"replaceBlockStatementNode",value:function(e,t,n){var i=x.NodeFactory.blockStatementNode([x.NodeFactory.functionDeclarationNode(r.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(i);var a=this.deadCodeInjectionCustomNodeFactory(A.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);a.initialize(e,i);var o=a.getNode()[0];return F.NodeUtils.parentizeNode(o,n),o}}],[{key:"isProhibitedNodeInsideCollectedBlockStatement",value:function(e){return D.NodeGuards.isBreakStatementNode(e)||D.NodeGuards.isContinueStatementNode(e)||D.NodeGuards.isAwaitExpressionNode(e)||D.NodeGuards.isSuperNode(e)}},{key:"isScopeHoistingFunctionDeclaration",value:function(e){if(!D.NodeGuards.isFunctionDeclarationNode(e))return!1;var t=F.NodeUtils.getScopeOfNode(e),n=D.NodeGuards.isSwitchCaseNode(t)?t.consequent:t.body,r=n.indexOf(e);if(0===r)return!1;var i=n.slice(0,r),a=x.NodeFactory.blockStatementNode(i),o=e.id.name,s=!1;return S.traverse(a,{enter:function(e){if(D.NodeGuards.isIdentifierNode(e)&&e.name===o)return s=!0,S.VisitorOption.Break}}),s}},{key:"isValidCollectedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=0,n=!0;return S.traverse(e,{enter:function(e){if(D.NodeGuards.isBlockStatementNode(e)&&t++,t>r.maxNestedBlockStatementsCount||r.isProhibitedNodeInsideCollectedBlockStatement(e)||r.isScopeHoistingFunctionDeclaration(e))return n=!1,S.VisitorOption.Break}}),n}},{key:"isValidWrappedBlockStatementNode",value:function(e){if(!e.body.length)return!1;var t=!0;return S.traverse(e,{enter:function(e){if(r.isScopeHoistingFunctionDeclaration(e))return t=!1,S.VisitorOption.Break}}),!!t&&F.NodeUtils.getBlockScopeOfNode(e).type!==N.NodeType.Program}}]),t}(_.AbstractNodeTransformer);T.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",T.maxNestedBlockStatementsCount=4,T.minCollectedBlockStatementsCount=5,T.transformersToRenameBlockScopeIdentifiers=[E.NodeTransformer.CatchClauseTransformer,E.NodeTransformer.ClassDeclarationTransformer,E.NodeTransformer.FunctionDeclarationTransformer,E.NodeTransformer.FunctionTransformer,E.NodeTransformer.LabeledStatementTransformer,E.NodeTransformer.VariableDeclarationTransformer],T=r=m([b.injectable(),y(0,b.inject(C.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),y(1,b.inject(C.ServiceIdentifiers.ITransformersRunner)),y(2,b.inject(C.ServiceIdentifiers.IRandomGenerator)),y(3,b.inject(C.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object,Object])],T),t.DeadCodeInjectionTransformer=T},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(40),C=n(100),S=n(13),A=r=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e,t,n){var i=e.callee;if(!S.NodeGuards.isIdentifierNode(i))return e;var a=String(e.arguments.length),o=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.CallExpressionFunctionNode),s=e.arguments;o.initialize(s);var u=this.insertCustomNodeToControlFlowStorage(o,n,a,r.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(n.getStorageId(),u,i,s)}},{key:"getControlFlowStorageCallNode",value:function(e,t,n,r){var i=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);i.initialize(e,t,n,r);var a=i.getNode()[0];if(!a||!S.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}}]),t}(C.AbstractControlFlowReplacer);A.usingExistingIdentifierChance=.5,A=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],A),t.CallExpressionControlFlowReplacer=A},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}},y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),b=n(4),C=y(n(24)),S=n(40),A=n(18),E=n(19),N=n(13),I=n(14),_=r=function(e){function t(e,n,r,i){var o;return(0,a.default)(this,t),(o=(0,s.default)(this,(0,u.default)(t).call(this,r,i))).controlFlowCustomNodeFactory=e,o.arrayUtils=n,o}return(0,c.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case A.TransformationStage.ControlFlowFlattening:return{leave:function(e,n){if(n&&N.NodeGuards.isBlockStatementNode(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!r.canTransformBlockStatementNode(e))return e;var n=e.body,i=this.arrayUtils.createWithRange(n.length),a=this.arrayUtils.shuffle(i),o=i.map(function(e){return a.indexOf(e)}),s=this.controlFlowCustomNodeFactory(S.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);s.initialize(n,a,o);var u=s.getNode()[0];return I.NodeUtils.parentizeNode(u,t),u}}],[{key:"blockStatementHasProhibitedStatements",value:function(e){return e.body.some(function(e){var t=N.NodeGuards.isBreakStatementNode(e)||N.NodeGuards.isContinueStatementNode(e),n=N.NodeGuards.isVariableDeclarationNode(e)&&("const"===e.kind||"let"===e.kind),r=N.NodeGuards.isClassDeclarationNode(e);return N.NodeGuards.isFunctionDeclarationNode(e)||t||n||r})}},{key:"canTransformBlockStatementNode",value:function(e){var t=!0;return C.traverse(e,{enter:function(e){if(N.NodeGuards.isWhileStatementNode(e))return C.VisitorOption.Skip;N.NodeGuards.isBlockStatementNode(e)&&r.blockStatementHasProhibitedStatements(e)&&(t=!1)}}),e.body.length<=4&&(t=!1),t}}]),t}(E.AbstractNodeTransformer);_=r=h([v.injectable(),g(0,v.inject(b.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,v.inject(b.ServiceIdentifiers.IArrayUtils)),g(2,v.inject(b.ServiceIdentifiers.IRandomGenerator)),g(3,v.inject(b.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],_),t.BlockStatementControlFlowTransformer=_},function(e,t,n){"use strict";var r,i=n(0),a=i(n(2)),o=i(n(3)),s=i(n(11)),u=i(n(9)),c=i(n(10)),l=i(n(8)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),v=n(4),b=n(40),C=n(156),S=r=function(e){function t(e,n,r){return(0,a.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n,r))}return(0,c.default)(t,e),(0,o.default)(t,[{key:"replace",value:function(e,t,n){var i=e.operator,a=this.controlFlowCustomNodeFactory(b.ControlFlowCustomNode.BinaryExpressionFunctionNode);a.initialize(i);var o=this.insertCustomNodeToControlFlowStorage(a,n,i,r.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(n.getStorageId(),o,e.left,e.right)}}]),t}(C.ExpressionWithOperatorControlFlowReplacer);S.usingExistingIdentifierChance=.5,S=r=h([y.injectable(),g(0,y.inject(v.ServiceIdentifiers.Factory__IControlFlowCustomNode)),g(1,y.inject(v.ServiceIdentifiers.IRandomGenerator)),g(2,y.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],S),t.BinaryExpressionControlFlowReplacer=S},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(43),i=n(1),a=n(4),o=n(157),s=n(58),u=n(422),c=n(421),l=n(420),d=n(419),f=n(413),p=n(402),h=n(401);t.controlFlowTransformersModule=new i.ContainerModule(function(e){e(a.ServiceIdentifiers.INodeTransformer).to(c.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(d.DeadCodeInjectionTransformer).whenTargetNamed(s.NodeTransformer.DeadCodeInjectionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(u.BinaryExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(l.CallExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(p.LogicalExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(h.StringLiteralControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(a.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(r.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IControlFlowReplacer))})},function(e,t,n){"use strict";var r=n(116),i=n(59).getWeak,a=n(27),o=n(26),s=n(115),u=n(70),c=n(111),l=n(37),d=n(69),f=c(5),p=c(6),h=0,m=function(e){return e._l||(e._l=new g)},g=function(){this.a=[]},y=function(e,t){return f(e.a,function(e){return e[0]===t})};g.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var c=e(function(e,r){s(e,c,t,"_i"),e._t=t,e._i=h++,e._l=void 0,void 0!=r&&u(r,n,e[a],e)});return r(c.prototype,{delete:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!o(e))return!1;var n=i(e);return!0===n?m(d(this,t)).has(e):n&&l(n,this._i)}}),c},def:function(e,t,n){var r=i(a(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){"use strict";var r,i=n(111)(0),a=n(117),o=n(59),s=n(158),u=n(424),c=n(26),l=n(38),d=n(69),f=o.getWeak,p=Object.isExtensible,h=u.ufstore,m={},g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(c(e)){var t=f(e);return!0===t?h(d(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(d(this,"WeakMap"),e,t)}},v=e.exports=n(112)("WeakMap",g,y,u,!0,!0);l(function(){return 7!=(new v).set((Object.freeze||Object)(m),7).get(m)})&&(s((r=u.getConstructor(g,"WeakMap")).prototype,y),o.NEED=!0,i(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];a(t,e,function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)})}))},function(e,t,n){var r=n(86),i=n(27),a=n(76),o=r.key,s=r.set;r.exp({metadata:function(e,t){return function(n,r){s(e,t,(void 0!==r?i:a)(n),o(r))}}})},function(e,t,n){n(426),e.exports=n(16).Reflect.metadata},function(e,t,n){"use strict";var r,i=n(0),a=i(n(17)),o=i(n(2)),s=i(n(3)),u=i(n(8)),c=i(n(7)),l=i(n(6)),d=i(n(5)),f=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}},m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=n(4),v=m(n(24)),b=n(164),C=n(13),S=n(14),A=r=function(){function e(t){(0,o.default)(this,e),this.calleeDataExtractorFactory=t}return(0,s.default)(e,[{key:"analyze",value:function(e){return this.analyzeRecursive(e.body)}},{key:"analyzeRecursive",value:function(e){for(var t=this,n=r.getLimitIndex(e.length),i=[],a=e.length,o=function(r){if(r>n)return"break";var a=e[r];v.traverse(a,{enter:function(n){if(C.NodeGuards.isCallExpressionNode(n))return a.parentNode!==S.NodeUtils.getBlockScopeOfNode(n)?v.VisitorOption.Skip:void t.analyzeCallExpressionNode(i,e,n)}})},s=0;sn&&(i=Math.round(n+t*r.limitThreshold))>t&&(i=t),i}}]),e}();A.calleeDataExtractorsList=[b.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,b.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,b.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],A.limitThresholdActivationLength=25,A.limitThreshold=.002,A=r=f([g.injectable(),h(0,g.inject(y.ServiceIdentifiers.Factory__ICalleeDataExtractor)),p("design:paramtypes",[Function])],A),t.StackTraceAnalyzer=A},function(e,t,n){var r=n(27),i=n(114);e.exports=n(16).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){n(71),n(62),e.exports=n(429)},function(e,t,n){"use strict";var r,i=n(0),a=i(n(66)),o=i(n(2)),s=i(n(3)),u=i(n(11)),c=i(n(9)),l=i(n(10)),d=i(n(7)),f=i(n(6)),p=i(n(5)),h=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,d.default)(t,n,o),o},m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),y=m(n(24)),v=n(105),b=n(13),C=n(14),S=r=function(e){function t(){return(0,o.default)(this,t),(0,u.default)(this,(0,c.default)(t).apply(this,arguments))}return(0,l.default)(t,e),(0,s.default)(t,[{key:"extract",value:function(e,t){if(!b.NodeGuards.isMemberExpressionNode(t))return null;var n=this.createObjectMembersCallsChain([],t);if(!n.length)return null;var r=n[n.length-1],i=this.getCalleeBlockStatement(C.NodeUtils.getBlockScopeOfNode(e[0]),n);return i?{callee:i,name:r}:null}},{key:"createObjectMembersCallsChain",value:function(e,t){if(b.NodeGuards.isIdentifierNode(t.property)&&!1===t.computed)e.unshift(t.property.name);else{if(!b.NodeGuards.isLiteralNode(t.property)||"string"!=typeof t.property.value&&"number"!=typeof t.property.value)return e;e.unshift(t.property.value)}return b.NodeGuards.isMemberExpressionNode(t.object)?this.createObjectMembersCallsChain(e,t.object):(b.NodeGuards.isIdentifierNode(t.object)&&e.unshift(t.object.name),e)}},{key:"getCalleeBlockStatement",value:function(e,t){var n=this,r=t.shift();if(!r)return null;var i=null;return y.traverse(e,{enter:function(e){if(b.NodeGuards.isVariableDeclaratorNode(e)&&b.NodeGuards.isIdentifierNode(e.id)&&e.init&&b.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return i=n.findCalleeBlockStatement(e.init.properties,t),y.VisitorOption.Break}}),i}},{key:"findCalleeBlockStatement",value:function(e,t){var n=t.shift();if(!n)return null;var i=!0,o=!1,s=void 0;try{for(var u,c=(0,a.default)(e);!(i=(u=c.next()).done);i=!0){var l=u.value;if(r.isValidTargetPropertyNode(l,n)){if(b.NodeGuards.isObjectExpressionNode(l.value))return this.findCalleeBlockStatement(l.value.properties,t);if(b.NodeGuards.isFunctionExpressionNode(l.value))return l.value.body}}}catch(e){o=!0,s=e}finally{try{i||null==c.return||c.return()}finally{if(o)throw s}}return null}}],[{key:"isValidTargetPropertyNode",value:function(e,t){if(!e.key)return!1;var n=b.NodeGuards.isIdentifierNode(e.key)&&e.key.name===t,r=b.NodeGuards.isLiteralNode(e.key)&&Boolean(e.key.value)&&e.key.value===t;return n||r}}]),t}(v.AbstractCalleeDataExtractor);S=r=h([g.injectable()],S),t.ObjectExpressionCalleeDataExtractor=S},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(7)),l=r(n(6)),d=r(n(5)),f=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=p(n(24)),g=n(105),y=n(13),v=n(14),b=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){var n=null;return y.NodeGuards.isIdentifierNode(t)&&(n=this.getCalleeBlockStatement(v.NodeUtils.getBlockScopeOfNode(e[0]),t.name)),y.NodeGuards.isFunctionExpressionNode(t)&&(n=t.body),n?{callee:n,name:t.name||null}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var n=null;return m.traverse(e,{enter:function(e,r){if(y.NodeGuards.isFunctionExpressionNode(e)&&r&&y.NodeGuards.isVariableDeclaratorNode(r)&&y.NodeGuards.isIdentifierNode(r.id)&&r.id.name===t)return n=e.body,m.VisitorOption.Break}}),n}}]),t}(g.AbstractCalleeDataExtractor);b=f([h.injectable()],b),t.FunctionExpressionCalleeDataExtractor=b},function(e,t,n){var r=n(25);r(r.S+r.F,"Object",{assign:n(158)})},function(e,t,n){n(433),e.exports=n(16).Object.assign},function(e,t,n){"use strict";e.exports={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"],JSXIdentifier:[],JSXNamespacedName:["namespace","name"],JSXMemberExpression:["object","property"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXElement:["openingElement","closingElement","children"],JSXClosingElement:["name"],JSXOpeningElement:["name","attributes"],JSXAttribute:["name","value"],JSXText:null,JSXSpreadAttribute:["argument"]}},function(e){e.exports={name:"espree",description:"An Esprima-compatible JavaScript parser built on Acorn",author:"Nicholas C. Zakas ",homepage:"https://github.com/eslint/espree",main:"espree.js",version:"4.0.0",files:["lib","espree.js"],engines:{node:">=6.0.0"},repository:"eslint/espree",bugs:{url:"http://github.com/eslint/espree.git"},license:"BSD-2-Clause",dependencies:{acorn:"^5.6.0","acorn-jsx":"^4.1.1"},devDependencies:{browserify:"^7.0.0",chai:"^1.10.0",eslint:"^2.13.1","eslint-config-eslint":"^3.0.0","eslint-release":"^0.11.1",esprima:"latest","esprima-fb":"^8001.2001.0-dev-harmony-fb",istanbul:"~0.2.6","json-diff":"~0.3.1",leche:"^1.0.1",mocha:"^2.0.1",regenerate:"~0.5.4",shelljs:"^0.3.0","shelljs-nodecli":"^0.1.1","unicode-6.3.0":"~0.1.0"},keywords:["ast","ecmascript","javascript","parser","syntax","acorn"],scripts:{"generate-regex":"node tools/generate-identifier-regex.js",test:"npm run-script lint && node Makefile.js test",lint:"node Makefile.js lint",release:"eslint-release","ci-release":"eslint-ci-release","gh-release":"eslint-gh-release",alpharelease:"eslint-prerelease alpha",betarelease:"eslint-prerelease beta",rcrelease:"eslint-prerelease rc",browserify:"node Makefile.js browserify"}}},function(e,t,n){"use strict";n.r(t),n.d(t,"version",function(){return Ie}),n.d(t,"parse",function(){return _e}),n.d(t,"parseExpressionAt",function(){return xe}),n.d(t,"tokenizer",function(){return De}),n.d(t,"parse_dammit",function(){return Ae}),n.d(t,"LooseParser",function(){return Ee}),n.d(t,"pluginsLoose",function(){return Ne}),n.d(t,"addLooseExports",function(){return Fe}),n.d(t,"Parser",function(){return G}),n.d(t,"plugins",function(){return j}),n.d(t,"defaultOptions",function(){return O}),n.d(t,"Position",function(){return k}),n.d(t,"SourceLocation",function(){return B}),n.d(t,"getLineInfo",function(){return R}),n.d(t,"Node",function(){return ee}),n.d(t,"TokenType",function(){return g}),n.d(t,"tokTypes",function(){return A}),n.d(t,"keywordTypes",function(){return C}),n.d(t,"TokContext",function(){return re}),n.d(t,"tokContexts",function(){return ie}),n.d(t,"isIdentifierChar",function(){return m}),n.d(t,"isIdentifierStart",function(){return h}),n.d(t,"Token",function(){return ve}),n.d(t,"isNewLine",function(){return I}),n.d(t,"lineBreak",function(){return E}),n.d(t,"lineBreakG",function(){return N}),n.d(t,"nonASCIIwhitespace",function(){return _});var r={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},i="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",a={5:i,6:i+" const class extends export import super"},o=/^in(stanceof)?$/,s="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞹꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",u="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",c=new RegExp("["+s+"]"),l=new RegExp("["+s+u+"]");s=u=null;var d=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],f=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];function p(e,t){for(var n=65536,r=0;re)return!1;if((n+=t[r+1])>=e)return!0}}function h(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&c.test(String.fromCharCode(e)):!1!==t&&p(e,d)))}function m(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&l.test(String.fromCharCode(e)):!1!==t&&(p(e,d)||p(e,f)))))}var g=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function y(e,t){return new g(e,{beforeExpr:!0,binop:t})}var v={beforeExpr:!0},b={startsExpr:!0},C={};function S(e,t){return void 0===t&&(t={}),t.keyword=e,C[e]=new g(e,t)}var A={num:new g("num",b),regexp:new g("regexp",b),string:new g("string",b),name:new g("name",b),eof:new g("eof"),bracketL:new g("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new g("]"),braceL:new g("{",{beforeExpr:!0,startsExpr:!0}),braceR:new g("}"),parenL:new g("(",{beforeExpr:!0,startsExpr:!0}),parenR:new g(")"),comma:new g(",",v),semi:new g(";",v),colon:new g(":",v),dot:new g("."),question:new g("?",v),arrow:new g("=>",v),template:new g("template"),invalidTemplate:new g("invalidTemplate"),ellipsis:new g("...",v),backQuote:new g("`",b),dollarBraceL:new g("${",{beforeExpr:!0,startsExpr:!0}),eq:new g("=",{beforeExpr:!0,isAssign:!0}),assign:new g("_=",{beforeExpr:!0,isAssign:!0}),incDec:new g("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new g("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:y("||",1),logicalAND:y("&&",2),bitwiseOR:y("|",3),bitwiseXOR:y("^",4),bitwiseAND:y("&",5),equality:y("==/!=/===/!==",6),relational:y("/<=/>=",7),bitShift:y("<>/>>>",8),plusMin:new g("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:y("%",10),star:y("*",10),slash:y("/",10),starstar:new g("**",{beforeExpr:!0}),_break:S("break"),_case:S("case",v),_catch:S("catch"),_continue:S("continue"),_debugger:S("debugger"),_default:S("default",v),_do:S("do",{isLoop:!0,beforeExpr:!0}),_else:S("else",v),_finally:S("finally"),_for:S("for",{isLoop:!0}),_function:S("function",b),_if:S("if"),_return:S("return",v),_switch:S("switch"),_throw:S("throw",v),_try:S("try"),_var:S("var"),_const:S("const"),_while:S("while",{isLoop:!0}),_with:S("with"),_new:S("new",{beforeExpr:!0,startsExpr:!0}),_this:S("this",b),_super:S("super",b),_class:S("class",b),_extends:S("extends",v),_export:S("export"),_import:S("import"),_null:S("null",b),_true:S("true",b),_false:S("false",b),_in:S("in",{beforeExpr:!0,binop:7}),_instanceof:S("instanceof",{beforeExpr:!0,binop:7}),_typeof:S("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:S("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:S("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},E=/\r\n?|\n|\u2028|\u2029/,N=new RegExp(E.source,"g");function I(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var _=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,x=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,D=Object.prototype,F=D.hasOwnProperty,T=D.toString;function M(e,t){return F.call(e,t)}var w=Array.isArray||function(e){return"[object Array]"===T.call(e)},k=function(e,t){this.line=e,this.column=t};k.prototype.offset=function(e){return new k(this.line,this.column+e)};var B=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)};function R(e,t){for(var n=1,r=0;;){N.lastIndex=r;var i=N.exec(e);if(!(i&&i.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),w(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return w(t.onComment)&&(t.onComment=function(e,t){return function(n,r,i,a,o,s){var u={type:n?"Block":"Line",value:r,start:i,end:a};e.locations&&(u.loc=new B(this,o,s)),e.ranges&&(u.range=[i,a]),t.push(u)}}(t,t.onComment)),t}var j={};function L(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var G=function(e,t,n){this.options=e=P(e),this.sourceFile=e.sourceFile,this.keywords=L(a[e.ecmaVersion>=6?6:5]);var i="";if(!e.allowReserved){for(var o=e.ecmaVersion;!(i=r[o]);o--);"module"===e.sourceType&&(i+=" await")}this.reservedWords=L(i);var s=(i?i+" ":"")+r.strict;this.reservedWordsStrict=L(s),this.reservedWordsStrictBind=L(s+" "+r.strictBind),this.input=String(t),this.containsEsc=!1,this.loadPlugins(e.plugins),n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(E).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=A.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope(),this.regexpState=null};G.prototype.isKeyword=function(e){return this.keywords.test(e)},G.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},G.prototype.extend=function(e,t){this[e]=t(this[e])},G.prototype.loadPlugins=function(e){for(var t in e){var n=j[t];if(!n)throw new Error("Plugin '"+t+"' not found");n(this,e[t])}},G.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var V=G.prototype,U=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;function z(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}V.strictDirective=function(e){for(;;){x.lastIndex=e,e+=x.exec(this.input)[0].length;var t=U.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2]))return!0;e+=t[0].length}},V.eat=function(e){return this.type===e&&(this.next(),!0)},V.isContextual=function(e){return this.type===A.name&&this.value===e&&!this.containsEsc},V.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},V.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},V.canInsertSemicolon=function(){return this.type===A.eof||this.type===A.braceR||E.test(this.input.slice(this.lastTokEnd,this.start))},V.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},V.semicolon=function(){this.eat(A.semi)||this.insertSemicolon()||this.unexpected()},V.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},V.expect=function(e){this.eat(e)||this.unexpected()},V.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},V.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,"Parenthesized pattern")}},V.checkExpressionErrors=function(e,t){if(!e)return!1;var n=e.shorthandAssign,r=e.doubleProto;if(!t)return n>=0||r>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),r>=0&&this.raiseRecoverable(r,"Redefinition of __proto__ property")},V.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var W={kind:"loop"},K={kind:"switch"};H.isLet=function(){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;x.lastIndex=this.pos;var e=x.exec(this.input),t=this.pos+e[0].length,n=this.input.charCodeAt(t);if(91===n||123===n)return!0;if(h(n,!0)){for(var r=t+1;m(this.input.charCodeAt(r),!0);)++r;var i=this.input.slice(t,r);if(!o.test(i))return!0}return!1},H.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;x.lastIndex=this.pos;var e=x.exec(this.input),t=this.pos+e[0].length;return!(E.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&m(this.input.charAt(t+8)))},H.parseStatement=function(e,t,n){var r,i=this.type,a=this.startNode();switch(this.isLet()&&(i=A._var,r="let"),i){case A._break:case A._continue:return this.parseBreakContinueStatement(a,i.keyword);case A._debugger:return this.parseDebuggerStatement(a);case A._do:return this.parseDoStatement(a);case A._for:return this.parseForStatement(a);case A._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1);case A._class:return e||this.unexpected(),this.parseClass(a,!0);case A._if:return this.parseIfStatement(a);case A._return:return this.parseReturnStatement(a);case A._switch:return this.parseSwitchStatement(a);case A._throw:return this.parseThrowStatement(a);case A._try:return this.parseTryStatement(a);case A._const:case A._var:return r=r||this.value,e||"var"===r||this.unexpected(),this.parseVarStatement(a,r);case A._while:return this.parseWhileStatement(a);case A._with:return this.parseWithStatement(a);case A.braceL:return this.parseBlock();case A.semi:return this.parseEmptyStatement(a);case A._export:case A._import:return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===A._import?this.parseImport(a):this.parseExport(a,n);default:if(this.isAsyncFunction())return e||this.unexpected(),this.next(),this.parseFunctionStatement(a,!0);var o=this.value,s=this.parseExpression();return i===A.name&&"Identifier"===s.type&&this.eat(A.colon)?this.parseLabeledStatement(a,o,s):this.parseExpressionStatement(a,s)}},H.parseBreakContinueStatement=function(e,t){var n="break"===t;this.next(),this.eat(A.semi)||this.insertSemicolon()?e.label=null:this.type!==A.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var r=0;r=6?this.eat(A.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},H.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.inAsync&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(W),this.enterLexicalScope(),this.expect(A.parenL),this.type===A.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var n=this.isLet();if(this.type===A._var||this.type===A._const||n){var r=this.startNode(),i=n?"let":this.value;return this.next(),this.parseVar(r,!0,i),this.finishNode(r,"VariableDeclaration"),!(this.type===A._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==r.declarations.length||"var"!==i&&r.declarations[0].init?(t>-1&&this.unexpected(t),this.parseFor(e,r)):(this.options.ecmaVersion>=9&&(this.type===A._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,r))}var a=new z,o=this.parseExpression(!0,a);return this.type===A._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===A._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(o,!1,a),this.checkLVal(o),this.parseForIn(e,o)):(this.checkExpressionErrors(a,!0),t>-1&&this.unexpected(t),this.parseFor(e,o))},H.parseFunctionStatement=function(e,t){return this.next(),this.parseFunction(e,!0,!1,t)},H.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!this.strict&&this.type===A._function),e.alternate=this.eat(A._else)?this.parseStatement(!this.strict&&this.type===A._function):null,this.finishNode(e,"IfStatement")},H.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(A.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},H.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(A.braceL),this.labels.push(K),this.enterLexicalScope();for(var n=!1;this.type!==A.braceR;)if(this.type===A._case||this.type===A._default){var r=this.type===A._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,t.test=null),this.expect(A.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(!0));return this.exitLexicalScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},H.parseThrowStatement=function(e){return this.next(),E.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var J=[];H.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===A._catch){var t=this.startNode();this.next(),this.eat(A.parenL)?(t.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(t.param,"let"),this.expect(A.parenR)):(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterLexicalScope()),t.body=this.parseBlock(!1),this.exitLexicalScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(A._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},H.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},H.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(W),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},H.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},H.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},H.parseLabeledStatement=function(e,t,n){for(var r=0,i=this.labels;r=0;o--){var s=this.labels[o];if(s.statementStart!==e.start)break;s.statementStart=this.start,s.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(!0),("ClassDeclaration"===e.body.type||"VariableDeclaration"===e.body.type&&"var"!==e.body.kind||"FunctionDeclaration"===e.body.type&&(this.strict||e.body.generator))&&this.raiseRecoverable(e.body.start,"Invalid labeled declaration"),this.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},H.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},H.parseBlock=function(e){void 0===e&&(e=!0);var t=this.startNode();for(t.body=[],this.expect(A.braceL),e&&this.enterLexicalScope();!this.eat(A.braceR);){var n=this.parseStatement(!0);t.body.push(n)}return e&&this.exitLexicalScope(),this.finishNode(t,"BlockStatement")},H.parseFor=function(e,t){return e.init=t,this.expect(A.semi),e.test=this.type===A.semi?null:this.parseExpression(),this.expect(A.semi),e.update=this.type===A.parenR?null:this.parseExpression(),this.expect(A.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},H.parseForIn=function(e,t){var n=this.type===A._in?"ForInStatement":"ForOfStatement";return this.next(),"ForInStatement"===n&&("AssignmentPattern"===t.type||"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(this.strict||"Identifier"!==t.declarations[0].id.type))&&this.raise(t.start,"Invalid assignment in for-in loop head"),e.left=t,e.right="ForInStatement"===n?this.parseExpression():this.parseMaybeAssign(),this.expect(A.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},H.parseVar=function(e,t,n){for(e.declarations=[],e.kind=n;;){var r=this.startNode();if(this.parseVarId(r,n),this.eat(A.eq)?r.init=this.parseMaybeAssign(t):"const"!==n||this.type===A._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===r.id.type||t&&(this.type===A._in||this.isContextual("of"))?r.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(r,"VariableDeclarator")),!this.eat(A.comma))break}return e},H.parseVarId=function(e,t){e.id=this.parseBindingAtom(t),this.checkLVal(e.id,t,!1)},H.parseFunction=function(e,t,n,r){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(e.generator=this.eat(A.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&&(e.id="nullableID"===t&&this.type!==A.name?null:this.parseIdent(),e.id&&this.checkLVal(e.id,"var"));var i=this.inGenerator,a=this.inAsync,o=this.yieldPos,s=this.awaitPos,u=this.inFunction;return this.inGenerator=e.generator,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),t||(e.id=this.type===A.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.inGenerator=i,this.inAsync=a,this.yieldPos=o,this.awaitPos=s,this.inFunction=u,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},H.parseFunctionParams=function(e){this.expect(A.parenL),e.params=this.parseBindingList(A.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},H.parseClass=function(e,t){this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var n=this.startNode(),r=!1;for(n.body=[],this.expect(A.braceL);!this.eat(A.braceR);){var i=this.parseClassMember(n);i&&"MethodDefinition"===i.type&&"constructor"===i.kind&&(r&&this.raise(i.start,"Duplicate constructor in the same class"),r=!0)}return e.body=this.finishNode(n,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},H.parseClassMember=function(e){var t=this;if(this.eat(A.semi))return null;var n=this.startNode(),r=function(e,r){void 0===r&&(r=!1);var i=t.start,a=t.startLoc;return!!t.eatContextual(e)&&(!(t.type===A.parenL||r&&t.canInsertSemicolon())||(n.key&&t.unexpected(),n.computed=!1,n.key=t.startNodeAt(i,a),n.key.name=e,t.finishNode(n.key,"Identifier"),!1))};n.kind="method",n.static=r("static");var i=this.eat(A.star),a=!1;i||(this.options.ecmaVersion>=8&&r("async",!0)?(a=!0,i=this.options.ecmaVersion>=9&&this.eat(A.star)):r("get")?n.kind="get":r("set")&&(n.kind="set")),n.key||this.parsePropertyName(n);var o=n.key;return n.computed||n.static||!("Identifier"===o.type&&"constructor"===o.name||"Literal"===o.type&&"constructor"===o.value)?n.static&&"Identifier"===o.type&&"prototype"===o.name&&this.raise(o.start,"Classes may not have a static property named prototype"):("method"!==n.kind&&this.raise(o.start,"Constructor can't have get/set modifier"),i&&this.raise(o.start,"Constructor can't be a generator"),a&&this.raise(o.start,"Constructor can't be an async method"),n.kind="constructor"),this.parseClassMethod(e,n,i,a),"get"===n.kind&&0!==n.value.params.length&&this.raiseRecoverable(n.value.start,"getter should have no params"),"set"===n.kind&&1!==n.value.params.length&&this.raiseRecoverable(n.value.start,"setter should have exactly one param"),"set"===n.kind&&"RestElement"===n.value.params[0].type&&this.raiseRecoverable(n.value.params[0].start,"Setter cannot use rest params"),n},H.parseClassMethod=function(e,t,n,r){t.value=this.parseMethod(n,r),e.body.push(this.finishNode(t,"MethodDefinition"))},H.parseClassId=function(e,t){e.id=this.type===A.name?this.parseIdent():!0===t?this.unexpected():null},H.parseClassSuper=function(e){e.superClass=this.eat(A._extends)?this.parseExprSubscripts():null},H.parseExport=function(e,t){if(this.next(),this.eat(A.star))return this.expectContextual("from"),this.type!==A.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(A._default)){var n;if(this.checkExport(t,"default",this.lastTokStart),this.type===A._function||(n=this.isAsyncFunction())){var r=this.startNode();this.next(),n&&this.next(),e.declaration=this.parseFunction(r,"nullableID",!1,n)}else if(this.type===A._class){var i=this.startNode();e.declaration=this.parseClass(i,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(!0),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==A.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var a=0,o=e.specifiers;a=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var r=0,i=e.properties;r=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var r,i=e.key;switch(i.type){case"Identifier":r=i.name;break;case"Literal":r=String(i.value);break;default:return}var a=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===r&&"init"===a&&(t.proto&&(n&&n.doubleProto<0?n.doubleProto=i.start:this.raiseRecoverable(i.start,"Redefinition of __proto__ property")),t.proto=!0);else{var o=t[r="$"+r];if(o)("init"===a?this.strict&&o.init||o.get||o.set:o.init||o[a])&&this.raiseRecoverable(i.start,"Redefinition of property");else o=t[r]={init:!1,get:!1,set:!1};o[a]=!0}}},$.parseExpression=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeAssign(e,t);if(this.type===A.comma){var a=this.startNodeAt(n,r);for(a.expressions=[i];this.eat(A.comma);)a.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(a,"SequenceExpression")}return i},$.parseMaybeAssign=function(e,t,n){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var r=!1,i=-1,a=-1;t?(i=t.parenthesizedAssign,a=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new z,r=!0);var o=this.start,s=this.startLoc;this.type!==A.parenL&&this.type!==A.name||(this.potentialArrowAt=this.start);var u=this.parseMaybeConditional(e,t);if(n&&(u=n.call(this,u,o,s)),this.type.isAssign){var c=this.startNodeAt(o,s);return c.operator=this.value,c.left=this.type===A.eq?this.toAssignable(u,!1,t):u,r||z.call(t),t.shorthandAssign=-1,this.checkLVal(u),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return r&&this.checkExpressionErrors(t,!0),i>-1&&(t.parenthesizedAssign=i),a>-1&&(t.trailingComma=a),u},$.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(A.question)){var a=this.startNodeAt(n,r);return a.test=i,a.consequent=this.parseMaybeAssign(),this.expect(A.colon),a.alternate=this.parseMaybeAssign(e),this.finishNode(a,"ConditionalExpression")}return i},$.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?i:i.start===n&&"ArrowFunctionExpression"===i.type?i:this.parseExprOp(i,n,r,-1,e)},$.parseExprOp=function(e,t,n,r,i){var a=this.type.binop;if(null!=a&&(!i||this.type!==A._in)&&a>r){var o=this.type===A.logicalOR||this.type===A.logicalAND,s=this.value;this.next();var u=this.start,c=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1),u,c,a,i),d=this.buildBinary(t,n,e,l,s,o);return this.parseExprOp(d,t,n,r,i)}return e},$.buildBinary=function(e,t,n,r,i,a){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,a?"LogicalExpression":"BinaryExpression")},$.parseMaybeUnary=function(e,t){var n,r=this.start,i=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))n=this.parseAwait(),t=!0;else if(this.type.prefix){var a=this.startNode(),o=this.type===A.incDec;a.operator=this.value,a.prefix=!0,this.next(),a.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),o?this.checkLVal(a.argument):this.strict&&"delete"===a.operator&&"Identifier"===a.argument.type?this.raiseRecoverable(a.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(a,o?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var s=this.startNodeAt(r,i);s.operator=this.value,s.prefix=!1,s.argument=n,this.checkLVal(n),this.next(),n=this.finishNode(s,"UpdateExpression")}}return!t&&this.eat(A.starstar)?this.buildBinary(r,i,n,this.parseMaybeUnary(null,!1),"**",!1):n},$.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e),i="ArrowFunctionExpression"===r.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(e)||i)return r;var a=this.parseSubscripts(r,t,n);return e&&"MemberExpression"===a.type&&(e.parenthesizedAssign>=a.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=a.start&&(e.parenthesizedBind=-1)),a},$.parseSubscripts=function(e,t,n,r){for(var i=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(e.start,e.end),a=void 0;;)if((a=this.eat(A.bracketL))||this.eat(A.dot)){var o=this.startNodeAt(t,n);o.object=e,o.property=a?this.parseExpression():this.parseIdent(!0),o.computed=!!a,a&&this.expect(A.bracketR),e=this.finishNode(o,"MemberExpression")}else if(!r&&this.eat(A.parenL)){var s=new z,u=this.yieldPos,c=this.awaitPos;this.yieldPos=0,this.awaitPos=0;var l=this.parseExprList(A.parenR,this.options.ecmaVersion>=8,!1,s);if(i&&!this.canInsertSemicolon()&&this.eat(A.arrow))return this.checkPatternErrors(s,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=c,this.parseArrowExpression(this.startNodeAt(t,n),l,!0);this.checkExpressionErrors(s,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=c||this.awaitPos;var d=this.startNodeAt(t,n);d.callee=e,d.arguments=l,e=this.finishNode(d,"CallExpression")}else{if(this.type!==A.backQuote)return e;var f=this.startNodeAt(t,n);f.tag=e,f.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(f,"TaggedTemplateExpression")}},$.parseExprAtom=function(e){var t,n=this.potentialArrowAt===this.start;switch(this.type){case A._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),t=this.startNode(),this.next(),this.type!==A.dot&&this.type!==A.bracketL&&this.type!==A.parenL&&this.unexpected(),this.finishNode(t,"Super");case A._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case A.name:var r=this.start,i=this.startLoc,a=this.containsEsc,o=this.parseIdent(this.type!==A.name);if(this.options.ecmaVersion>=8&&!a&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(A._function))return this.parseFunction(this.startNodeAt(r,i),!1,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(A.arrow))return this.parseArrowExpression(this.startNodeAt(r,i),[o],!1);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===A.name&&!a)return o=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(A.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,i),[o],!0)}return o;case A.regexp:var s=this.value;return(t=this.parseLiteral(s.value)).regex={pattern:s.pattern,flags:s.flags},t;case A.num:case A.string:return this.parseLiteral(this.value);case A._null:case A._true:case A._false:return(t=this.startNode()).value=this.type===A._null?null:this.type===A._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case A.parenL:var u=this.start,c=this.parseParenAndDistinguishExpression(n);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),c;case A.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(A.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case A.braceL:return this.parseObj(!1,e);case A._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case A._class:return this.parseClass(this.startNode(),!1);case A._new:return this.parseNew();case A.backQuote:return this.parseTemplate();default:this.unexpected()}},$.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(t,"Literal")},$.parseParenExpression=function(){this.expect(A.parenL);var e=this.parseExpression();return this.expect(A.parenR),e},$.parseParenAndDistinguishExpression=function(e){var t,n=this.start,r=this.startLoc,i=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var a,o=this.start,s=this.startLoc,u=[],c=!0,l=!1,d=new z,f=this.yieldPos,p=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==A.parenR;){if(c?c=!1:this.expect(A.comma),i&&this.afterTrailingComma(A.parenR,!0)){l=!0;break}if(this.type===A.ellipsis){a=this.start,u.push(this.parseParenItem(this.parseRestBinding())),this.type===A.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}u.push(this.parseMaybeAssign(!1,d,this.parseParenItem))}var h=this.start,m=this.startLoc;if(this.expect(A.parenR),e&&!this.canInsertSemicolon()&&this.eat(A.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=p,this.parseParenArrowList(n,r,u);u.length&&!l||this.unexpected(this.lastTokStart),a&&this.unexpected(a),this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=p||this.awaitPos,u.length>1?((t=this.startNodeAt(o,s)).expressions=u,this.finishNodeAt(t,"SequenceExpression",h,m)):t=u[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(n,r);return g.expression=t,this.finishNode(g,"ParenthesizedExpression")}return t},$.parseParenItem=function(e){return e},$.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var Y=[];$.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(A.dot)){e.meta=t;var n=this.containsEsc;return e.property=this.parseIdent(!0),("target"!==e.property.name||n)&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty")}var r=this.start,i=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(),r,i,!0),this.eat(A.parenL)?e.arguments=this.parseExprList(A.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Y,this.finishNode(e,"NewExpression")},$.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===A.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===A.backQuote,this.finishNode(n,"TemplateElement")},$.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.expect(A.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(A.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,"TemplateLiteral")},$.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===A.name||this.type===A.num||this.type===A.string||this.type===A.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===A.star)&&!E.test(this.input.slice(this.lastTokEnd,this.start))},$.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(A.braceR);){if(r)r=!1;else if(this.expect(A.comma),this.afterTrailingComma(A.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,i,t),n.properties.push(a)}return this.finishNode(n,e?"ObjectPattern":"ObjectExpression")},$.parseProperty=function(e,t){var n,r,i,a,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(A.ellipsis))return e?(o.argument=this.parseIdent(!1),this.type===A.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(this.type===A.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),o.argument=this.parseMaybeAssign(!1,t),this.type===A.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(e||t)&&(i=this.start,a=this.startLoc),e||(n=this.eat(A.star)));var s=this.containsEsc;return this.parsePropertyName(o),!e&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(r=!0,n=this.options.ecmaVersion>=9&&this.eat(A.star),this.parsePropertyName(o,t)):r=!1,this.parsePropertyValue(o,e,n,r,i,a,t,s),this.finishNode(o,"Property")},$.parsePropertyValue=function(e,t,n,r,i,a,o,s){if((n||r)&&this.type===A.colon&&this.unexpected(),this.eat(A.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===A.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n,r);else if(t||s||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===A.comma||this.type===A.braceR)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?(this.checkUnreserved(e.key),e.kind="init",t?e.value=this.parseMaybeDefault(i,a,e.key):this.type===A.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,a,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(n||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var u="get"===e.kind?0:1;if(e.value.params.length!==u){var c=e.value.start;"get"===e.kind?this.raiseRecoverable(c,"getter should have no params"):this.raiseRecoverable(c,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},$.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(A.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(A.bracketR),e.key;e.computed=!1}return e.key=this.type===A.num||this.type===A.string?this.parseExprAtom():this.parseIdent(!0)},$.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},$.parseMethod=function(e,t){var n=this.startNode(),r=this.inGenerator,i=this.inAsync,a=this.yieldPos,o=this.awaitPos,s=this.inFunction;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.inGenerator=n.generator,this.inAsync=n.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(A.parenL),n.params=this.parseBindingList(A.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.inGenerator=r,this.inAsync=i,this.yieldPos=a,this.awaitPos=o,this.inFunction=s,this.finishNode(n,"FunctionExpression")},$.parseArrowExpression=function(e,t,n){var r=this.inGenerator,i=this.inAsync,a=this.yieldPos,o=this.awaitPos,s=this.inFunction;return this.enterFunctionScope(),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.inGenerator=!1,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0),this.inGenerator=r,this.inAsync=i,this.yieldPos=a,this.awaitPos=o,this.inFunction=s,this.finishNode(e,"ArrowFunctionExpression")},$.parseFunctionBody=function(e,t){var n=t&&this.type!==A.braceL,r=this.strict,i=!1;if(n)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var a=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);r&&!a||(i=this.strictDirective(this.end))&&a&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],i&&(this.strict=!0),this.checkParams(e,!r&&!i&&!t&&this.isSimpleParamList(e.params)),e.body=this.parseBlock(!1),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitFunctionScope(),this.strict&&e.id&&this.checkLVal(e.id,"none"),this.strict=r},$.isSimpleParamList=function(e){for(var t=0,n=e;t0;)t[n]=arguments[n+1];for(var r=0,i=t;r=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ae.updateContext=function(e){var t,n=this.type;n.keyword&&e===A.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},A.parenR.updateContext=A.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===ie.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},A.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ie.b_stat:ie.b_expr),this.exprAllowed=!0},A.dollarBraceL.updateContext=function(){this.context.push(ie.b_tmpl),this.exprAllowed=!0},A.parenL.updateContext=function(e){var t=e===A._if||e===A._for||e===A._with||e===A._while;this.context.push(t?ie.p_stat:ie.p_expr),this.exprAllowed=!0},A.incDec.updateContext=function(){},A._function.updateContext=A._class.updateContext=function(e){e.beforeExpr&&e!==A.semi&&e!==A._else&&(e!==A.colon&&e!==A.braceL||this.curContext()!==ie.b_stat)?this.context.push(ie.f_expr):this.context.push(ie.f_stat),this.exprAllowed=!1},A.backQuote.updateContext=function(){this.curContext()===ie.q_tmpl?this.context.pop():this.context.push(ie.q_tmpl),this.exprAllowed=!1},A.star.updateContext=function(e){if(e===A._function){var t=this.context.length-1;this.context[t]===ie.f_expr?this.context[t]=ie.f_expr_gen:this.context[t]=ie.f_gen}this.exprAllowed=!0},A.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var oe={$LONE:["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"],General_Category:["Cased_Letter","LC","Close_Punctuation","Pe","Connector_Punctuation","Pc","Control","Cc","cntrl","Currency_Symbol","Sc","Dash_Punctuation","Pd","Decimal_Number","Nd","digit","Enclosing_Mark","Me","Final_Punctuation","Pf","Format","Cf","Initial_Punctuation","Pi","Letter","L","Letter_Number","Nl","Line_Separator","Zl","Lowercase_Letter","Ll","Mark","M","Combining_Mark","Math_Symbol","Sm","Modifier_Letter","Lm","Modifier_Symbol","Sk","Nonspacing_Mark","Mn","Number","N","Open_Punctuation","Ps","Other","C","Other_Letter","Lo","Other_Number","No","Other_Punctuation","Po","Other_Symbol","So","Paragraph_Separator","Zp","Private_Use","Co","Punctuation","P","punct","Separator","Z","Space_Separator","Zs","Spacing_Mark","Mc","Surrogate","Cs","Symbol","S","Titlecase_Letter","Lt","Unassigned","Cn","Uppercase_Letter","Lu"],Script:["Adlam","Adlm","Ahom","Anatolian_Hieroglyphs","Hluw","Arabic","Arab","Armenian","Armn","Avestan","Avst","Balinese","Bali","Bamum","Bamu","Bassa_Vah","Bass","Batak","Batk","Bengali","Beng","Bhaiksuki","Bhks","Bopomofo","Bopo","Brahmi","Brah","Braille","Brai","Buginese","Bugi","Buhid","Buhd","Canadian_Aboriginal","Cans","Carian","Cari","Caucasian_Albanian","Aghb","Chakma","Cakm","Cham","Cherokee","Cher","Common","Zyyy","Coptic","Copt","Qaac","Cuneiform","Xsux","Cypriot","Cprt","Cyrillic","Cyrl","Deseret","Dsrt","Devanagari","Deva","Duployan","Dupl","Egyptian_Hieroglyphs","Egyp","Elbasan","Elba","Ethiopic","Ethi","Georgian","Geor","Glagolitic","Glag","Gothic","Goth","Grantha","Gran","Greek","Grek","Gujarati","Gujr","Gurmukhi","Guru","Han","Hani","Hangul","Hang","Hanunoo","Hano","Hatran","Hatr","Hebrew","Hebr","Hiragana","Hira","Imperial_Aramaic","Armi","Inherited","Zinh","Qaai","Inscriptional_Pahlavi","Phli","Inscriptional_Parthian","Prti","Javanese","Java","Kaithi","Kthi","Kannada","Knda","Katakana","Kana","Kayah_Li","Kali","Kharoshthi","Khar","Khmer","Khmr","Khojki","Khoj","Khudawadi","Sind","Lao","Laoo","Latin","Latn","Lepcha","Lepc","Limbu","Limb","Linear_A","Lina","Linear_B","Linb","Lisu","Lycian","Lyci","Lydian","Lydi","Mahajani","Mahj","Malayalam","Mlym","Mandaic","Mand","Manichaean","Mani","Marchen","Marc","Masaram_Gondi","Gonm","Meetei_Mayek","Mtei","Mende_Kikakui","Mend","Meroitic_Cursive","Merc","Meroitic_Hieroglyphs","Mero","Miao","Plrd","Modi","Mongolian","Mong","Mro","Mroo","Multani","Mult","Myanmar","Mymr","Nabataean","Nbat","New_Tai_Lue","Talu","Newa","Nko","Nkoo","Nushu","Nshu","Ogham","Ogam","Ol_Chiki","Olck","Old_Hungarian","Hung","Old_Italic","Ital","Old_North_Arabian","Narb","Old_Permic","Perm","Old_Persian","Xpeo","Old_South_Arabian","Sarb","Old_Turkic","Orkh","Oriya","Orya","Osage","Osge","Osmanya","Osma","Pahawh_Hmong","Hmng","Palmyrene","Palm","Pau_Cin_Hau","Pauc","Phags_Pa","Phag","Phoenician","Phnx","Psalter_Pahlavi","Phlp","Rejang","Rjng","Runic","Runr","Samaritan","Samr","Saurashtra","Saur","Sharada","Shrd","Shavian","Shaw","Siddham","Sidd","SignWriting","Sgnw","Sinhala","Sinh","Sora_Sompeng","Sora","Soyombo","Soyo","Sundanese","Sund","Syloti_Nagri","Sylo","Syriac","Syrc","Tagalog","Tglg","Tagbanwa","Tagb","Tai_Le","Tale","Tai_Tham","Lana","Tai_Viet","Tavt","Takri","Takr","Tamil","Taml","Tangut","Tang","Telugu","Telu","Thaana","Thaa","Thai","Tibetan","Tibt","Tifinagh","Tfng","Tirhuta","Tirh","Ugaritic","Ugar","Vai","Vaii","Warang_Citi","Wara","Yi","Yiii","Zanabazar_Square","Zanb"]};Array.prototype.push.apply(oe.$LONE,oe.General_Category),oe.gc=oe.General_Category,oe.sc=oe.Script_Extensions=oe.scx=oe.Script;var se=G.prototype,ue=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function ce(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function le(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function de(e){return e>=65&&e<=90||e>=97&&e<=122}function fe(e){return de(e)||95===e}function pe(e){return fe(e)||he(e)}function he(e){return e>=48&&e<=57}function me(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function ge(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function ye(e){return e>=48&&e<=55}ue.prototype.reset=function(e,t,n){var r=-1!==n.indexOf("u");this.start=0|e,this.source=t+"",this.flags=n,this.switchU=r&&this.parser.options.ecmaVersion>=6,this.switchN=r&&this.parser.options.ecmaVersion>=9},ue.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},ue.prototype.at=function(e){var t=this.source,n=t.length;if(e>=n)return-1;var r=t.charCodeAt(e);return!this.switchU||r<=55295||r>=57344||e+1>=n?r:(r<<10)+t.charCodeAt(e+1)-56613888},ue.prototype.nextIndex=function(e){var t=this.source,n=t.length;if(e>=n)return n;var r=t.charCodeAt(e);return!this.switchU||r<=55295||r>=57344||e+1>=n?e+1:e+2},ue.prototype.current=function(){return this.at(this.pos)},ue.prototype.lookahead=function(){return this.at(this.nextIndex(this.pos))},ue.prototype.advance=function(){this.pos=this.nextIndex(this.pos)},ue.prototype.eat=function(e){return this.current()===e&&(this.advance(),!0)},se.validateRegExpFlags=function(e){for(var t=e.validFlags,n=e.flags,r=0;r-1&&this.raise(e.start,"Duplicate regular expression flag")}},se.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},se.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,n=e.backReferenceNames;t=9&&(n=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!n,!0}return e.pos=t,!1},se.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},se.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},se.regexp_eatBracedQuantifier=function(e,t){var n=e.pos;if(e.eat(123)){var r=0,i=-1;if(this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue),e.eat(125)))return-1!==i&&i=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},se.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},se.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},se.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!le(t)&&(e.lastIntValue=t,e.advance(),!0)},se.regexp_eatPatternCharacters=function(e){for(var t=e.pos,n=0;-1!==(n=e.current())&&!le(n);)e.advance();return e.pos!==t},se.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},se.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},se.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},se.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=ce(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=ce(e.lastIntValue);return!0}return!1},se.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,n=e.current();return e.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(n=e.lastIntValue),function(e){return h(e,!0)||36===e||95===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},se.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,n=e.current();return e.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(n=e.lastIntValue),function(e){return m(e,!0)||36===e||95===e||8204===e||8205===e}(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},se.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},se.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var n=e.lastIntValue;if(e.switchU)return n>e.maxBackReference&&(e.maxBackReference=n),!0;if(n<=e.numCapturingParens)return!0;e.pos=t}return!1},se.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},se.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},se.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},se.regexp_eatZero=function(e){return 48===e.current()&&!he(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},se.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},se.regexp_eatControlLetter=function(e){var t=e.current();return!!de(t)&&(e.lastIntValue=t%32,e.advance(),!0)},se.regexp_eatRegExpUnicodeEscapeSequence=function(e){var t,n=e.pos;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(e.switchU&&r>=55296&&r<=56319){var i=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(a>=56320&&a<=57343)return e.lastIntValue=1024*(r-55296)+(a-56320)+65536,!0}e.pos=i,e.lastIntValue=r}return!0}if(e.switchU&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((t=e.lastIntValue)>=0&&t<=1114111))return!0;e.switchU&&e.raise("Invalid unicode escape"),e.pos=n}return!1},se.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},se.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},se.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},se.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var n=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,n,r),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,i),!0}return!1},se.regexp_validateUnicodePropertyNameAndValue=function(e,t,n){oe.hasOwnProperty(t)&&-1!==oe[t].indexOf(n)||e.raise("Invalid property name")},se.regexp_validateUnicodePropertyNameOrValue=function(e,t){-1===oe.$LONE.indexOf(t)&&e.raise("Invalid property name")},se.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";fe(t=e.current());)e.lastStringValue+=ce(t),e.advance();return""!==e.lastStringValue},se.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";pe(t=e.current());)e.lastStringValue+=ce(t),e.advance();return""!==e.lastStringValue},se.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},se.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},se.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var n=e.lastIntValue;!e.switchU||-1!==t&&-1!==n||e.raise("Invalid character class"),-1!==t&&-1!==n&&t>n&&e.raise("Range out of order in character class")}}},se.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var n=e.current();(99===n||ye(n))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var r=e.current();return 93!==r&&(e.lastIntValue=r,e.advance(),!0)},se.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},se.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!he(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},se.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},se.regexp_eatDecimalDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;he(n=e.current());)e.lastIntValue=10*e.lastIntValue+(n-48),e.advance();return e.pos!==t},se.regexp_eatHexDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;me(n=e.current());)e.lastIntValue=16*e.lastIntValue+ge(n),e.advance();return e.pos!==t},se.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var n=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*n+e.lastIntValue:e.lastIntValue=8*t+n}else e.lastIntValue=t;return!0}return!1},se.regexp_eatOctalDigit=function(e){var t=e.current();return ye(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},se.regexp_eatFixedHexDigits=function(e,t){var n=e.pos;e.lastIntValue=0;for(var r=0;r>10),56320+(1023&e)))}be.next=function(){this.options.onToken&&this.options.onToken(new ve(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},be.getToken=function(){return this.next(),new ve(this)},"undefined"!=typeof Symbol&&(be[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===A.eof,value:t}}}}),be.curContext=function(){return this.context[this.context.length-1]},be.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(A.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},be.readToken=function(e){return h(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},be.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},be.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),n=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(-1===r&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(N.lastIndex=n;(e=N.exec(this.input))&&e.index8&&e<14||e>=5760&&_.test(String.fromCharCode(e))))break e;++this.pos}}},be.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},be.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(A.ellipsis)):(++this.pos,this.finishToken(A.dot))},be.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(A.assign,2):this.finishOp(A.slash,1)},be.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?A.star:A.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++n,r=A.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(A.assign,n+1):this.finishOp(r,n)},be.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?A.logicalOR:A.logicalAND,2):61===t?this.finishOp(A.assign,2):this.finishOp(124===e?A.bitwiseOR:A.bitwiseAND,1)},be.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(A.assign,2):this.finishOp(A.bitwiseXOR,1)},be.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!E.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(A.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(A.assign,2):this.finishOp(A.plusMin,1)},be.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(A.assign,n+1):this.finishOp(A.bitShift,n)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(n=2),this.finishOp(A.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},be.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(A.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(A.arrow)):this.finishOp(61===e?A.eq:A.prefix,1)},be.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(A.parenL);case 41:return++this.pos,this.finishToken(A.parenR);case 59:return++this.pos,this.finishToken(A.semi);case 44:return++this.pos,this.finishToken(A.comma);case 91:return++this.pos,this.finishToken(A.bracketL);case 93:return++this.pos,this.finishToken(A.bracketR);case 123:return++this.pos,this.finishToken(A.braceL);case 125:return++this.pos,this.finishToken(A.braceR);case 58:return++this.pos,this.finishToken(A.colon);case 63:return++this.pos,this.finishToken(A.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(A.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(A.prefix,1)}this.raise(this.pos,"Unexpected character '"+Ce(e)+"'")},be.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)},be.readRegexp=function(){for(var e,t,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var r=this.input.charAt(this.pos);if(E.test(r)&&this.raise(n,"Unterminated regular expression"),e)e=!1;else{if("["===r)t=!0;else if("]"===r&&t)t=!1;else if("/"===r&&!t)break;e="\\"===r}++this.pos}var i=this.input.slice(n,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var s=this.regexpState||(this.regexpState=new ue(this));s.reset(n,i,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var u=null;try{u=new RegExp(i,o)}catch(e){}return this.finishToken(A.regexp,{pattern:i,flags:o,value:u})},be.readInt=function(e,t){for(var n=this.pos,r=0,i=0,a=null==t?1/0:t;i=97?o-97+10:o>=65?o-65+10:o>=48&&o<=57?o-48:1/0)>=e)break;++this.pos,r=r*e+s}return this.pos===n||null!=t&&this.pos-n!==t?null:r},be.readRadixNumber=function(e){this.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.start+2,"Expected number in radix "+e),h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(A.num,t)},be.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10)||this.raise(t,"Invalid number");var n=this.pos-t>=2&&48===this.input.charCodeAt(t);n&&this.strict&&this.raise(t,"Invalid number"),n&&/[89]/.test(this.input.slice(t,this.pos))&&(n=!1);var r=this.input.charCodeAt(this.pos);46!==r||n||(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),69!==r&&101!==r||n||(43!==(r=this.input.charCodeAt(++this.pos))&&45!==r||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var i=this.input.slice(t,this.pos),a=n?parseInt(i,8):parseFloat(i);return this.finishToken(A.num,a)},be.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},be.readString=function(e){for(var t="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===e)break;92===r?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):(I(r,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(A.string,t)};var Se={};be.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Se)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},be.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Se;this.raise(e,t)},be.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==A.template&&this.type!==A.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(A.template,e)):36===n?(this.pos+=2,this.finishToken(A.dollarBraceL)):(++this.pos,this.finishToken(A.backQuote));if(92===n)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(I(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},be.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),this.pos+=n.length-1,t=this.input.charCodeAt(this.pos),"0"===n&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-n.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(r)}return String.fromCharCode(t)}},be.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.invalidStringToken(t,"Bad character escape sequence"),n},be.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},function(e,t,n){"use strict";var r=n(438),i=/^[\da-fA-F]+$/,a=/^\d+$/;e.exports=function(e){var t=e.tokTypes,n=e.tokContexts;n.j_oTag=new e.TokContext("...",!0,!0),t.jsxName=new e.TokenType("jsxName"),t.jsxText=new e.TokenType("jsxText",{beforeExpr:!0}),t.jsxTagStart=new e.TokenType("jsxTagStart"),t.jsxTagEnd=new e.TokenType("jsxTagEnd"),t.jsxTagStart.updateContext=function(){this.context.push(n.j_expr),this.context.push(n.j_oTag),this.exprAllowed=!1},t.jsxTagEnd.updateContext=function(e){var r=this.context.pop();r===n.j_oTag&&e===t.slash||r===n.j_cTag?(this.context.pop(),this.exprAllowed=this.curContext()===n.j_expr):this.exprAllowed=!0};var o=e.Parser.prototype;function s(e){return e?"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?s(e.object)+"."+s(e.property):void 0:e}return o.jsx_readToken=function(){for(var n="",r=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");var i=this.input.charCodeAt(this.pos);switch(i){case 60:case 123:return this.pos===this.start?60===i&&this.exprAllowed?(++this.pos,this.finishToken(t.jsxTagStart)):this.getTokenFromCode(i):(n+=this.input.slice(r,this.pos),this.finishToken(t.jsxText,n));case 38:n+=this.input.slice(r,this.pos),n+=this.jsx_readEntity(),r=this.pos;break;default:e.isNewLine(i)?(n+=this.input.slice(r,this.pos),n+=this.jsx_readNewLine(!0),r=this.pos):++this.pos}}},o.jsx_readNewLine=function(e){var t,n=this.input.charCodeAt(this.pos);return++this.pos,13===n&&10===this.input.charCodeAt(this.pos)?(++this.pos,t=e?"\n":"\r\n"):t=String.fromCharCode(n),this.options.locations&&(++this.curLine,this.lineStart=this.pos),t},o.jsx_readString=function(n){for(var r="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var a=this.input.charCodeAt(this.pos);if(a===n)break;38===a?(r+=this.input.slice(i,this.pos),r+=this.jsx_readEntity(),i=this.pos):e.isNewLine(a)?(r+=this.input.slice(i,this.pos),r+=this.jsx_readNewLine(!1),i=this.pos):++this.pos}return r+=this.input.slice(i,this.pos++),this.finishToken(t.string,r)},o.jsx_readEntity=function(){var e,t="",n=0,o=this.input[this.pos];"&"!==o&&this.raise(this.pos,"Entity must start with an ampersand");for(var s=++this.pos;this.pos")}return r.openingElement=a,r.closingElement=o,r.children=i,this.type===t.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,a.name?"JSXElement":"JSXFragment")},o.jsx_parseText=function(e){var t=this.parseLiteral(e);return t.type="JSXText",t},o.jsx_parseElement=function(){var e=this.start,t=this.startLoc;return this.next(),this.jsx_parseElementAt(e,t)},e.plugins.jsx=function(r,i){i&&("object"!=typeof i&&(i={}),r.options.plugins.jsx={allowNamespaces:!1!==i.allowNamespaces,allowNamespacedObjects:!!i.allowNamespacedObjects},r.extend("parseExprAtom",function(e){return function(n){return this.type===t.jsxText?this.jsx_parseText(this.value):this.type===t.jsxTagStart?this.jsx_parseElement():e.call(this,n)}}),r.extend("readToken",function(r){return function(i){var a=this.curContext();if(a===n.j_expr)return this.jsx_readToken();if(a===n.j_oTag||a===n.j_cTag){if(e.isIdentifierStart(i))return this.jsx_readWord();if(62==i)return++this.pos,this.finishToken(t.jsxTagEnd);if((34===i||39===i)&&a==n.j_oTag)return this.jsx_readString(i)}return 60===i&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(t.jsxTagStart)):r.call(this,i)}}),r.extend("updateContext",function(e){return function(r){if(this.type==t.braceL){var i=this.curContext();i==n.j_oTag?this.context.push(n.b_expr):i==n.j_expr?this.context.push(n.b_tmpl):e.call(this,r),this.exprAllowed=!0}else{if(this.type!==t.slash||r!==t.jsxTagStart)return e.call(this,r);this.context.length-=2,this.context.push(n.j_cTag),this.exprAllowed=!1}}}))},e}},function(e,t,n){"use strict";var r={Boolean:"Boolean",EOF:"",Identifier:"Identifier",Keyword:"Keyword",Null:"Null",Numeric:"Numeric",Punctuator:"Punctuator",String:"String",RegularExpression:"RegularExpression",Template:"Template",JSXIdentifier:"JSXIdentifier",JSXText:"JSXText"};function i(e,t){this._acornTokTypes=e,this._tokens=[],this._curlyBrace=null,this._code=t}i.prototype={constructor:i,translate:function(e,t){var n=e.type,i=this._acornTokTypes;if(n===i.name)e.type=r.Identifier,"static"===e.value&&(e.type=r.Keyword),t.ecmaVersion>5&&("yield"===e.value||"let"===e.value)&&(e.type=r.Keyword);else if(n===i.semi||n===i.comma||n===i.parenL||n===i.parenR||n===i.braceL||n===i.braceR||n===i.dot||n===i.bracketL||n===i.colon||n===i.question||n===i.bracketR||n===i.ellipsis||n===i.arrow||n===i.jsxTagStart||n===i.incDec||n===i.starstar||n===i.jsxTagEnd||n===i.prefix||n.binop&&!n.keyword||n.isAssign)e.type=r.Punctuator,e.value=this._code.slice(e.start,e.end);else if(n===i.jsxName)e.type=r.JSXIdentifier;else if("jsxText"===n.label||n===i.jsxAttrValueToken)e.type=r.JSXText;else if(n.keyword)"true"===n.keyword||"false"===n.keyword?e.type=r.Boolean:"null"===n.keyword?e.type=r.Null:e.type=r.Keyword;else if(n===i.num)e.type=r.Numeric,e.value=this._code.slice(e.start,e.end);else if(n===i.string)t.jsxAttrValueToken?(t.jsxAttrValueToken=!1,e.type=r.JSXText):e.type=r.String,e.value=this._code.slice(e.start,e.end);else if(n===i.regexp){e.type=r.RegularExpression;var a=e.value;e.regex={flags:a.flags,pattern:a.pattern},e.value="/"+a.pattern+"/"+a.flags}return e},onToken:function(e,t){var n=this,i=this._acornTokTypes,a=t.tokens,o=this._tokens;function s(){a.push(function(e,t){var n=e[0],i=e[e.length-1],a={type:r.Template,value:t.slice(n.start,i.end)};return n.loc&&(a.loc={start:n.loc.start,end:i.loc.end}),n.range&&(a.start=n.range[0],a.end=i.range[1],a.range=[a.start,a.end]),a}(n._tokens,n._code)),n._tokens=[]}if(e.type!==i.eof){if(e.type===i.backQuote)return this._curlyBrace&&(a.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),o.push(e),void(o.length>1&&s());if(e.type===i.dollarBraceL)return o.push(e),void s();if(e.type===i.braceR)return this._curlyBrace&&a.push(this.translate(this._curlyBrace,t)),void(this._curlyBrace=e);if(e.type===i.template||e.type===i.invalidTemplate)return this._curlyBrace&&(o.push(this._curlyBrace),this._curlyBrace=null),void o.push(e);this._curlyBrace&&(a.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),a.push(this.translate(e,t))}else this._curlyBrace&&a.push(this.translate(this._curlyBrace,t))}},e.exports=i},function(e,t,n){"use strict";var r=n(159),i={trailingComments:[],leadingComments:[],bottomRightStack:[],previousNode:null};e.exports={reset:function(){i.trailingComments=[],i.leadingComments=[],i.bottomRightStack=[],i.previousNode=null},addComment:function(e){i.trailingComments.push(e),i.leadingComments.push(e)},processComment:function(e){var t,n,a,o;if(!(e.type===r.Program&&e.body.length>0)){for(i.trailingComments.length>0?i.trailingComments[0].range[0]>=e.range[1]?(n=i.trailingComments,i.trailingComments=[]):i.trailingComments.length=0:i.bottomRightStack.length>0&&i.bottomRightStack[i.bottomRightStack.length-1].trailingComments&&i.bottomRightStack[i.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(n=i.bottomRightStack[i.bottomRightStack.length-1].trailingComments,delete i.bottomRightStack[i.bottomRightStack.length-1].trailingComments);i.bottomRightStack.length>0&&i.bottomRightStack[i.bottomRightStack.length-1].range[0]>=e.range[0];)t=i.bottomRightStack.pop();if(t){if(t.leadingComments)if(t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0])e.leadingComments=t.leadingComments,delete t.leadingComments;else for(a=t.leadingComments.length-2;a>=0;--a)if(t.leadingComments[a].range[1]<=e.range[0]){e.leadingComments=t.leadingComments.splice(0,a+1);break}}else if(i.leadingComments.length>0)if(i.leadingComments[i.leadingComments.length-1].range[1]<=e.range[0]){if(i.previousNode)for(o=0;o0&&(e.leadingComments=i.leadingComments,i.leadingComments=[])}else{for(a=0;ae.range[0]);a++);e.leadingComments=i.leadingComments.slice(0,a),0===e.leadingComments.length&&delete e.leadingComments,0===(n=i.leadingComments.slice(a)).length&&(n=null)}i.previousNode=e,n&&(e.trailingComments=n),i.bottomRightStack.push(e)}}}},function(e){e.exports={name:"escodegen-wallaby",description:"ECMAScript code generator with JSX support",homepage:"http://github.com/wallabyjs/escodegen",main:"escodegen.js",bin:{esgenerate:"./bin/esgenerate.js",escodegen:"./bin/escodegen.js"},files:["LICENSE.BSD","LICENSE.source-map","README.md","bin","escodegen.js","package.json"],version:"1.6.18",engines:{node:">=0.10.0"},maintainers:[{name:"Artem Govorov",email:"artem.govorov@gmail.com",web:"http://dm.gl"}],repository:{type:"git",url:"http://github.com/wallabyjs/escodegen.git"},dependencies:{estraverse:"^1.9.1",esutils:"^2.0.2",esprima:"^2.7.1",optionator:"^0.8.1"},optionalDependencies:{"source-map":"~0.2.0"},devDependencies:{acorn:"^2.7.0",bluebird:"^2.3.11","bower-registry-client":"^0.2.1",chai:"^1.10.0","commonjs-everywhere":"^0.9.7",gulp:"^3.8.10","gulp-eslint":"^0.2.0","gulp-mocha":"^2.0.0",semver:"^5.1.0"},licenses:[{type:"BSD",url:"http://github.com/wallabyjs/escodegen/raw/master/LICENSE.BSD"}],scripts:{test:"gulp travis","unit-test":"gulp test",lint:"gulp lint",release:"node tools/release.js","build-min":"./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js",build:"./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js"}}},function(e,t,n){(function(e){if("function"!=typeof t)var t=n(102)(e,n(101));t(function(e,t,n){var r=e("./source-map-generator").SourceMapGenerator,i=e("./util"),a=/(\r?\n)/,o="$$$isSourceNode$$$";function s(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[o]=!0,null!=r&&this.add(r)}s.fromStringWithSourceMap=function(e,t,n){var r=new s,o=e.split(a),u=function(){return o.shift()+(o.shift()||"")},c=1,l=0,d=null;return t.eachMapping(function(e){if(null!==d){if(!(c0&&(d&&f(d,u()),r.add(o.join(""))),t.sources.forEach(function(e){var a=t.sourceContentFor(e);null!=a&&(null!=n&&(e=i.join(n,e)),r.setSourceContent(e,a))}),r;function f(e,t){if(null===e||void 0===e.source)r.add(t);else{var a=n?i.join(n,e.source):e.source;r.add(new s(e.originalLine,e.originalColumn,a,t,e.name))}}},s.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},s.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},s.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n0){for(t=[],n=0;n=0)for(var a=this._originalMappings[i];a&&a.originalLine===t.originalLine;)n.push({line:r.getArg(a,"generatedLine",null),column:r.getArg(a,"generatedColumn",null),lastColumn:r.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[--i];return n.reverse()},t.SourceMapConsumer=i})}).call(this,n(87)(e))},function(e,t,n){(function(e){if("function"!=typeof t)var t=n(102)(e,n(101));t(function(e,t,n){var r=e("./base64-vlq"),i=e("./util"),a=e("./array-set").ArraySet,o=e("./mapping-list").MappingList;function s(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}s.prototype._version=3,s.fromSourceMap=function(e){var t=e.sourceRoot,n=new s({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=i.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},s.prototype.addMapping=function(e){var t=i.getArg(e,"generated"),n=i.getArg(e,"original",null),r=i.getArg(e,"source",null),a=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,a),null==r||this._sources.has(r)||this._sources.add(r),null==a||this._names.has(a)||this._names.add(a),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:a})},s.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=i.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[i.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},s.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var o=this._sourceRoot;null!=o&&(r=i.relative(o,r));var s=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=n&&(t.source=i.join(n,t.source)),null!=o&&(t.source=i.relative(o,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var c=t.source;null==c||s.has(c)||s.add(c);var l=t.name;null==l||u.has(l)||u.add(l)},this),this._sources=s,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=i.join(n,t)),null!=o&&(t=i.relative(o,t)),this.setSourceContent(t,r))},this)},s.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},s.prototype._serializeMappings=function(){for(var e,t=0,n=1,a=0,o=0,s=0,u=0,c="",l=this._mappings.toArray(),d=0,f=l.length;d0){if(!i.compareByGeneratedPositions(e,l[d-1]))continue;c+=","}c+=r.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(c+=r.encode(this._sources.indexOf(e.source)-u),u=this._sources.indexOf(e.source),c+=r.encode(e.originalLine-1-o),o=e.originalLine-1,c+=r.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(c+=r.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return c},s.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=i.relative(t,e));var n=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},s.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},s.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=s})}).call(this,n(87)(e))},function(e,t,n){t.SourceMapGenerator=n(445).SourceMapGenerator,t.SourceMapConsumer=n(444).SourceMapConsumer,t.SourceNode=n(443).SourceNode},function(e,t,n){!function(){"use strict";var t=n(161);function r(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function a(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function o(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function s(e){var n,r,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(n=1,r=e.length;n=r)return!1;if(!(56320<=(a=e.charCodeAt(n))&&a<=57343))return!1;i=1024*(i-55296)+(a-56320)+65536}if(!o(i))return!1;o=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:r,isKeywordES6:i,isReservedWordES5:a,isReservedWordES6:o,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return s(e)&&!a(e,t)},isIdentifierES6:function(e,t){return u(e)&&!o(e,t)}}}()},function(e,t){!function(){"use strict";function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function n(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=n(t)}while(t);return!1},trailingStatement:n}}()},function(e,t,n){!function(){"use strict";t.ast=n(448),t.code=n(161),t.keyword=n(447)}()},function(e,t,n){var r,i,a;!function(n,o){"use strict";i=[t],void 0===(a="function"==typeof(r=function e(t){var n,r,i,a,o,s,u,c,l;(r=Array.isArray)||(r=function(e){return"[object Array]"===Object.prototype.toString.call(e)});function d(e){var t,n,r={};for(t in e)e.hasOwnProperty(t)&&(n=e[t],r[t]="object"==typeof n&&null!==n?d(n):n);return r}function f(e,t){this.parent=e,this.key=t}function p(e,t,n,r){this.node=e,this.path=t,this.wrap=n,this.ref=r}function h(){}function m(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function g(e,t){return(e===n.ObjectExpression||e===n.ObjectPattern)&&"properties"===t}function y(e,t){var n=new h;return n.traverse(e,t)}function v(e,t){var n;return n=function(e,t){var n,r,i,a;r=e.length,i=0;for(;r;)t(e[a=i+(n=r>>>1)])?r=n:(i=a+1,r-=n+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],n!==t.length&&(e.extendedRange[1]=t[n].range[0]),(n-=1)>=0&&(e.extendedRange[0]=t[n].range[1]),e}return o=Object.create||function(){function e(){}return function(t){return e.prototype=t,new e}}(),s=Object.keys||function(e){var t,n=[];for(t in e)n.push(t);return n},n={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportBatchSpecifier:"ExportBatchSpecifier",ExportDeclaration:"ExportDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},a={AssignmentExpression:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","defaults","rest","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","body","superClass"],ClassExpression:["id","body","superClass"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportBatchSpecifier:[],ExportDeclaration:["declaration","specifiers","source"],ExportSpecifier:["id","name"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","defaults","rest","body"],FunctionExpression:["id","params","defaults","rest","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["id"],ImportNamespaceSpecifier:["id"],ImportSpecifier:["id","name"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handlers","handler","guardedHandlers","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},i={Break:u={},Skip:c={},Remove:l={}},f.prototype.replace=function(e){this.parent[this.key]=e},f.prototype.remove=function(){return r(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},h.prototype.path=function(){var e,t,n,i,a;function o(e,t){if(r(t))for(n=0,i=t.length;n=0;)if(b=o[f=v[h]])if(r(b)){for(y=b.length;(y-=1)>=0;)if(b[y]){if(g(l,v[h]))a=new p(b[y],[f,y],"Property",null);else{if(!m(b[y]))continue;a=new p(b[y],[f,y],null,null)}n.push(a)}}else m(b)&&n.push(new p(b,f,null,null))}}else if(a=i.pop(),d=this.__execute(t.leave,a),this.__state===u||d===u)return},h.prototype.replace=function(e,t){function n(e){var t,n,r,a;if(e.ref.remove())for(n=e.ref.key,a=e.ref.parent,t=i.length;t--;)if((r=i[t]).ref&&r.ref.parent===a){if(r.ref.key=0;)if(S=o[N=C[v]])if(r(S)){for(b=S.length;(b-=1)>=0;)if(S[b]){if(g(d,C[v]))y=new p(S[b],[N,b],"Property",new f(S,b));else{if(!m(S[b]))continue;y=new p(S[b],[N,b],null,new f(S,b))}i.push(y)}}else m(S)&&i.push(new p(S,N,null,new f(o,N)))}}else if(y=a.pop(),void 0!==(h=this.__execute(t.leave,y))&&h!==u&&h!==c&&h!==l&&y.ref.replace(h),this.__state!==l&&h!==l||n(y),this.__state===u||h===u)return E.root;return E.root},t.version="1.8.1-dev",t.Syntax=n,t.traverse=y,t.replace=function(e,t){return(new h).replace(e,t)},t.attachComments=function(e,t,n){var r,a,o,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!n.length){if(t.length){for(o=0,a=t.length;oe.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?i.Break:u[s].extendedRange[0]>e.range[1]?i.Skip:void 0}}),s=0,y(e,{leave:function(e){for(var t;se.range[1]?i.Skip:void 0}}),e},t.VisitorKeys=a,t.VisitorOption=i,t.Controller=h,t.cloneEnvironment=function(){return e({})},t})?r.apply(t,i):r)||(e.exports=a)}()},function(e,t,n){var r=n(60),i=n(73);n(67)("keys",function(){return function(e){return i(r(e))}})},function(e,t,n){n(451),e.exports=n(16).Object.keys},function(e){e.exports={name:"estraverse",description:"ECMAScript JS AST traversal functions",homepage:"https://github.com/estools/estraverse",main:"estraverse.js",version:"4.2.0",engines:{node:">=0.10.0"},maintainers:[{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",web:"http://github.com/Constellation"}],repository:{type:"git",url:"http://github.com/estools/estraverse.git"},devDependencies:{"babel-preset-es2015":"^6.3.13","babel-register":"^6.3.13",chai:"^2.1.1",espree:"^1.11.0",gulp:"^3.8.10","gulp-bump":"^0.2.2","gulp-filter":"^2.0.0","gulp-git":"^1.0.1","gulp-tag-version":"^1.2.1",jshint:"^2.5.6",mocha:"^2.1.0"},license:"BSD-2-Clause",scripts:{test:"npm run-script lint && npm run-script unit-test",lint:"jshint estraverse.js","unit-test":"mocha --compilers js:babel-register"}}},function(e,t,n){var r=n(49),i=n(90).f;n(67)("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},function(e,t,n){n(454);var r=n(16).Object;e.exports=function(e,t){return r.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var r=n(25);r(r.S,"Object",{create:n(74)})},function(e,t,n){n(456);var r=n(16).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){e.exports=n(457)},function(e,t,n){var r=n(60),i=n(72);n(67)("getPrototypeOf",function(){return function(e){return i(r(e))}})},function(e,t,n){n(459),e.exports=n(16).Object.getPrototypeOf},function(e,t,n){e.exports=n(460)},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){n(107)("observable")},function(e,t,n){n(107)("asyncIterator")},function(e,t,n){var r=n(73),i=n(106),a=n(89);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var o,s=n(e),u=a.f,c=0;s.length>c;)u.call(e,o=s[c++])&&t.push(o);return t}},function(e,t,n){"use strict";var r=n(33),i=n(37),a=n(35),o=n(25),s=n(117),u=n(59).KEY,c=n(38),l=n(93),d=n(88),f=n(91),p=n(30),h=n(108),m=n(107),g=n(465),y=n(174),v=n(27),b=n(26),C=n(49),S=n(127),A=n(75),E=n(74),N=n(163),I=n(90),_=n(32),x=n(73),D=I.f,F=_.f,T=N.f,M=r.Symbol,w=r.JSON,k=w&&w.stringify,B=p("_hidden"),R=p("toPrimitive"),O={}.propertyIsEnumerable,P=l("symbol-registry"),j=l("symbols"),L=l("op-symbols"),G=Object.prototype,V="function"==typeof M,U=r.QObject,z=!U||!U.prototype||!U.prototype.findChild,H=a&&c(function(){return 7!=E(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=D(G,t);r&&delete G[t],F(e,t,n),r&&e!==G&&F(G,t,r)}:F,W=function(e){var t=j[e]=E(M.prototype);return t._k=e,t},K=V&&"symbol"==typeof M.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof M},J=function(e,t,n){return e===G&&J(L,t,n),v(e),t=S(t,!0),v(n),i(j,t)?(n.enumerable?(i(e,B)&&e[B][t]&&(e[B][t]=!1),n=E(n,{enumerable:A(0,!1)})):(i(e,B)||F(e,B,A(1,{})),e[B][t]=!0),H(e,t,n)):F(e,t,n)},q=function(e,t){v(e);for(var n,r=g(t=C(t)),i=0,a=r.length;a>i;)J(e,n=r[i++],t[n]);return e},$=function(e){var t=O.call(this,e=S(e,!0));return!(this===G&&i(j,e)&&!i(L,e))&&(!(t||!i(this,e)||!i(j,e)||i(this,B)&&this[B][e])||t)},Y=function(e,t){if(e=C(e),t=S(t,!0),e!==G||!i(j,t)||i(L,t)){var n=D(e,t);return!n||!i(j,t)||i(e,B)&&e[B][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=T(C(e)),r=[],a=0;n.length>a;)i(j,t=n[a++])||t==B||t==u||r.push(t);return r},X=function(e){for(var t,n=e===G,r=T(n?L:C(e)),a=[],o=0;r.length>o;)!i(j,t=r[o++])||n&&!i(G,t)||a.push(j[t]);return a};V||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===G&&t.call(L,n),i(this,B)&&i(this[B],e)&&(this[B][e]=!1),H(this,e,A(1,n))};return a&&z&&H(G,e,{configurable:!0,set:t}),W(e)}).prototype,"toString",function(){return this._k}),I.f=Y,_.f=J,n(162).f=N.f=Z,n(89).f=$,n(106).f=X,a&&!n(92)&&s(G,"propertyIsEnumerable",$,!0),h.f=function(e){return W(p(e))}),o(o.G+o.W+o.F*!V,{Symbol:M});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)p(Q[ee++]);for(var te=x(p.store),ne=0;te.length>ne;)m(te[ne++]);o(o.S+o.F*!V,"Symbol",{for:function(e){return i(P,e+="")?P[e]:P[e]=M(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in P)if(P[t]===e)return t},useSetter:function(){z=!0},useSimple:function(){z=!1}}),o(o.S+o.F*!V,"Object",{create:function(e,t){return void 0===t?E(e):q(E(e),t)},defineProperty:J,defineProperties:q,getOwnPropertyDescriptor:Y,getOwnPropertyNames:Z,getOwnPropertySymbols:X}),w&&o(o.S+o.F*(!V||c(function(){var e=M();return"[null]"!=k([e])||"{}"!=k({a:e})||"{}"!=k(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=t=r[1],(b(t)||void 0!==e)&&!K(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!K(t))return t}),r[1]=t,k.apply(w,r)}}),M.prototype[R]||n(44)(M.prototype,R,M.prototype.valueOf),d(M,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},function(e,t,n){n(466),n(119),n(464),n(463),e.exports=n(16).Symbol},function(e,t,n){e.exports=n(467)},function(e,t,n){n(62),n(71),e.exports=n(108).f("iterator")},function(e,t,n){e.exports=n(469)},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),a=r(n(3)),o=r(n(11)),s=r(n(9)),u=r(n(10)),c=r(n(7)),l=r(n(6)),d=r(n(5)),f=function(e,t,n,r){var i,a=arguments.length,o=a<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,n,o):i(t,n))||o);return a>3&&o&&(0,c.default)(t,n,o),o},p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),m=p(n(24)),g=n(105),y=n(13),v=n(14),b=function(e){function t(){return(0,i.default)(this,t),(0,o.default)(this,(0,s.default)(t).apply(this,arguments))}return(0,u.default)(t,e),(0,a.default)(t,[{key:"extract",value:function(e,t){if(!y.NodeGuards.isIdentifierNode(t))return null;var n=this.getCalleeBlockStatement(v.NodeUtils.getBlockScopeOfNode(e[0]),t.name);return n?{callee:n,name:t.name}:null}},{key:"getCalleeBlockStatement",value:function(e,t){var n=null;return m.traverse(e,{enter:function(e){if(y.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return n=e.body,m.VisitorOption.Break}}),n}}]),t}(g.AbstractCalleeDataExtractor);b=f([h.injectable()],b),t.FunctionDeclarationCalleeDataExtractor=b},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(43),i=n(1),a=n(4),o=n(164),s=n(471),u=n(432),c=n(431),l=n(428);t.analyzersModule=new i.ContainerModule(function(e){e(a.ServiceIdentifiers.IStackTraceAnalyzer).to(l.StackTraceAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(s.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(u.FunctionExpressionCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(c.ObjectExpressionCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(r.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.ICalleeDataExtractor))})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.multiBindToService=function(e){return function(t){return function(){for(var n=[],r=0;r0?t._map.set(r,i):t._map.delete(r)})},e.prototype.hasKey=function(e){if(null===e||void 0===e)throw new Error(r.NULL_ARGUMENT);return this._map.has(e)},e.prototype.clone=function(){var t=new e;return this._map.forEach(function(e,n){e.forEach(function(e){return t.add(n,e.clone())})}),t},e.prototype.traverse=function(e){this._map.forEach(function(t,n){e(n,t)})},e}();t.Lookup=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.of=function(t,n){var r=new e;return r.bindings=t,r.middleware=n,r},e}();t.ContainerSnapshot=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(36),i=n(166),a=function(){function e(e){this._binding=e}return e.prototype.inRequestScope=function(){return this._binding.scope=r.BindingScopeEnum.Request,new i.BindingWhenOnSyntax(this._binding)},e.prototype.inSingletonScope=function(){return this._binding.scope=r.BindingScopeEnum.Singleton,new i.BindingWhenOnSyntax(this._binding)},e.prototype.inTransientScope=function(){return this._binding.scope=r.BindingScopeEnum.Transient,new i.BindingWhenOnSyntax(this._binding)},e}();t.BindingInSyntax=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(485),i=n(110),a=n(109),o=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new a.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new i.BindingOnSyntax(this._binding),this._bindingInSyntax=new r.BindingInSyntax(e)}return e.prototype.inRequestScope=function(){return this._bindingInSyntax.inRequestScope()},e.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},e.prototype.inTransientScope=function(){return this._bindingInSyntax.inTransientScope()},e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e}();t.BindingInWhenOnSyntax=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(29),i=n(36),a=n(486),o=n(166),s=function(){function e(e){this._binding=e}return e.prototype.to=function(e){return this._binding.type=i.BindingTypeEnum.Instance,this._binding.implementationType=e,new a.BindingInWhenOnSyntax(this._binding)},e.prototype.toSelf=function(){if("function"!=typeof this._binding.serviceIdentifier)throw new Error(""+r.INVALID_TO_SELF_VALUE);var e=this._binding.serviceIdentifier;return this.to(e)},e.prototype.toConstantValue=function(e){return this._binding.type=i.BindingTypeEnum.ConstantValue,this._binding.cache=e,this._binding.dynamicValue=null,this._binding.implementationType=null,new o.BindingWhenOnSyntax(this._binding)},e.prototype.toDynamicValue=function(e){return this._binding.type=i.BindingTypeEnum.DynamicValue,this._binding.cache=null,this._binding.dynamicValue=e,this._binding.implementationType=null,new a.BindingInWhenOnSyntax(this._binding)},e.prototype.toConstructor=function(e){return this._binding.type=i.BindingTypeEnum.Constructor,this._binding.implementationType=e,new o.BindingWhenOnSyntax(this._binding)},e.prototype.toFactory=function(e){return this._binding.type=i.BindingTypeEnum.Factory,this._binding.factory=e,new o.BindingWhenOnSyntax(this._binding)},e.prototype.toFunction=function(e){if("function"!=typeof e)throw new Error(r.INVALID_FUNCTION_BINDING);var t=this.toConstantValue(e);return this._binding.type=i.BindingTypeEnum.Function,t},e.prototype.toAutoFactory=function(e){return this._binding.type=i.BindingTypeEnum.Factory,this._binding.factory=function(t){return function(){return t.container.get(e)}},new o.BindingWhenOnSyntax(this._binding)},e.prototype.toProvider=function(e){return this._binding.type=i.BindingTypeEnum.Provider,this._binding.provider=e,new o.BindingWhenOnSyntax(this._binding)},e.prototype.toService=function(e){this.toDynamicValue(function(t){return t.container.get(e)})},e}();t.BindingToSyntax=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(29),i=n(36),a=n(23);t.resolveInstance=function(e,t,n){var o,s,u=null;if(t.length>0){var c=t.filter(function(e){return null!==e.target&&e.target.type===i.TargetTypeEnum.ConstructorArgument}).map(n);s=c,u=function(e,t,n){var r=t.filter(function(e){return null!==e.target&&e.target.type===i.TargetTypeEnum.ClassProperty}),a=r.map(n);return r.forEach(function(t,n){var r;r=t.target.name.value();var i=a[n];e[r]=i}),e}(u=new((o=e).bind.apply(o,[void 0].concat(s))),t,n)}else u=new e;return function(e,t){if(Reflect.hasMetadata(a.POST_CONSTRUCT,e)){var n=Reflect.getMetadata(a.POST_CONSTRUCT,e);try{t[n.value]()}catch(t){throw new Error(r.POST_CONSTRUCT_ERROR(e.name,t.message))}}}(e,u),u}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(29),i=n(36),a=n(169),o=n(68),s=n(488),u=function(e,t,n){try{return n()}catch(n){throw a.isStackOverflowExeption(n)?new Error(r.CIRCULAR_DEPENDENCY_IN_FACTORY(e,t.toString())):n}},c=function(e){return function(t){t.parentContext.setCurrentRequest(t);var n=t.bindings,a=t.childRequests,l=t.target&&t.target.isArray(),d=!(t.parentRequest&&t.parentRequest.target&&t.target&&t.parentRequest.target.matchesArray(t.target.serviceIdentifier));if(l&&d)return a.map(function(t){return c(e)(t)});var f=null;if(!t.target.isOptional()||0!==n.length){var p=n[0],h=p.scope===i.BindingScopeEnum.Singleton,m=p.scope===i.BindingScopeEnum.Request;if(h&&p.activated)return p.cache;if(m&&null!==e&&e.has(p.guid))return e.get(p.guid);if(p.type===i.BindingTypeEnum.ConstantValue)f=p.cache;else if(p.type===i.BindingTypeEnum.Function)f=p.cache;else if(p.type===i.BindingTypeEnum.Constructor)f=p.implementationType;else if(p.type===i.BindingTypeEnum.DynamicValue&&null!==p.dynamicValue)f=u("toDynamicValue",p.serviceIdentifier,function(){return p.dynamicValue(t.parentContext)});else if(p.type===i.BindingTypeEnum.Factory&&null!==p.factory)f=u("toFactory",p.serviceIdentifier,function(){return p.factory(t.parentContext)});else if(p.type===i.BindingTypeEnum.Provider&&null!==p.provider)f=u("toProvider",p.serviceIdentifier,function(){return p.provider(t.parentContext)});else{if(p.type!==i.BindingTypeEnum.Instance||null===p.implementationType){var g=o.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(r.INVALID_BINDING_TYPE+" "+g)}f=s.resolveInstance(p.implementationType,a,c(e))}return"function"==typeof p.onActivation&&(f=p.onActivation(t.parentContext,f)),h&&(p.cache=f,p.activated=!0),m&&null!==e&&!e.has(p.guid)&&e.set(p.guid,f),f}}};t.resolve=function(e){return c(e.plan.rootRequest.requestScope)(e.plan.rootRequest)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(48),i=function(){function e(e,t,n,i,a){this.guid=r.guid(),this.serviceIdentifier=e,this.parentContext=t,this.parentRequest=n,this.target=a,this.childRequests=[],this.bindings=Array.isArray(i)?i:[i],this.requestScope=null===n?new Map:null}return e.prototype.addChildRequest=function(t,n,r){var i=new e(t,this.parentContext,this,n,r);return this.childRequests.push(i),i},e}();t.Request=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.str=e}return e.prototype.startsWith=function(e){return 0===this.str.indexOf(e)},e.prototype.endsWith=function(e){var t,n=e.split("").reverse().join("");return t=this.str.split("").reverse().join(""),this.startsWith.call({str:t},n)},e.prototype.contains=function(e){return-1!==this.str.indexOf(e)},e.prototype.equals=function(e){return this.str===e},e.prototype.value=function(){return this.str},e}();t.QueryableString=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(168),i=n(29),a=n(36),o=n(23),s=n(68);t.getFunctionName=s.getFunctionName;var u=n(167);function c(e,t,n,r){var o=e.getConstructorMetadata(n),s=o.compilerGeneratedMetadata;if(void 0===s){var c=i.MISSING_INJECTABLE_ANNOTATION+" "+t+".";throw new Error(c)}var f=o.userGeneratedMetadata,p=Object.keys(f),h=function(e,t,n,r,i){for(var a=[],o=0;o0?p.length:n.length),m=function e(t,n){var r=t.getPropertiesMetadata(n);var i=[];var o=Object.keys(r);for(var s=0,c=o;s0?l:e(t,r)}return 0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){this.parentContext=e,this.rootRequest=t}}();t.Plan=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(48),i=function(){function e(e){this.guid=r.guid(),this.container=e}return e.prototype.addPlan=function(e){this.plan=e},e.prototype.setCurrentRequest=function(e){this.currentRequest=e},e}();t.Context=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.BindingCount={MultipleBindingsAvailable:2,NoBindingsAvailable:0,OnlyOneBindingAvailable:1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(495),i=n(29),a=n(36),o=n(23),s=n(169),u=n(68),c=n(494),l=n(31),d=n(493),f=n(492),p=n(490),h=n(167);function m(e){return e._bindingDictionary}function g(e,t,n,a,o){var s=y(n.container,o.serviceIdentifier),c=[];return s.length===r.BindingCount.NoBindingsAvailable&&n.container.options.autoBindInjectable&&"function"==typeof o.serviceIdentifier&&e.getConstructorMetadata(o.serviceIdentifier).compilerGeneratedMetadata&&(n.container.bind(o.serviceIdentifier).toSelf(),s=y(n.container,o.serviceIdentifier)),c=t?s:s.filter(function(e){var t=new p.Request(e.serviceIdentifier,n,a,e,o);return e.constraint(t)}),function(e,t,n,a){switch(t.length){case r.BindingCount.NoBindingsAvailable:if(n.isOptional())return t;var o=u.getServiceIdentifierAsString(e),s=i.NOT_REGISTERED;throw s+=u.listMetadataForTarget(o,n),s+=u.listRegisteredBindingsForServiceIdentifier(a,o,y),new Error(s);case r.BindingCount.OnlyOneBindingAvailable:if(!n.isArray())return t;case r.BindingCount.MultipleBindingsAvailable:default:if(n.isArray())return t;var o=u.getServiceIdentifierAsString(e),s=i.AMBIGUOUS_MATCH+" "+o;throw s+=u.listRegisteredBindingsForServiceIdentifier(a,o,y),new Error(s)}}(o.serviceIdentifier,c,o,n.container),c}function y(e,t){var n=[],r=m(e);return r.hasKey(t)?n=r.get(t):null!==e.parent&&(n=y(e.parent,t)),n}t.getBindingDictionary=m,t.plan=function(e,t,n,r,m,y,v,b){void 0===b&&(b=!1);var C=new c.Context(t),S=function(e,t,n,r,i,a){var s=e?o.MULTI_INJECT_TAG:o.INJECT_TAG,u=new l.Metadata(s,n),c=new h.Target(t,r,n,u);if(void 0!==i){var d=new l.Metadata(i,a);c.metadata.push(d)}return c}(n,r,m,"",y,v);try{return function e(t,n,r,o,s,u){var c,l;if(null===s){c=g(t,n,o,null,u),l=new p.Request(r,o,null,c,u);var h=new d.Plan(o,l);o.addPlan(h)}else c=g(t,n,o,s,u),l=s.addChildRequest(u.serviceIdentifier,c,u);c.forEach(function(n){var r=null;if(u.isArray())r=l.addChildRequest(n.serviceIdentifier,n,u);else{if(n.cache)return;r=l}if(n.type===a.BindingTypeEnum.Instance&&null!==n.implementationType){var s=f.getDependencies(t,n.implementationType);if(!o.container.options.skipBaseClassChecks){var c=f.getBaseClassDependencyCount(t,n.implementationType);if(s.length0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var r=n(74),i=n(75),a=n(88),o={};n(44)(o,n(30)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(122),i=n(123);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(a=s.charCodeAt(u))<55296||a>56319||u+1===c||(o=s.charCodeAt(u+1))<56320||o>57343?e?s.charAt(u):a:e?s.slice(u,u+2):o-56320+(a-55296<<10)+65536}}},function(e,t,n){n(119),n(62),n(71),n(178),n(502),n(500),n(499),e.exports=n(16).Map},function(e,t,n){var r=n(26),i=n(27),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(50)(Function.call,n(90).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){var r=n(25);r(r.S,"Object",{setPrototypeOf:n(511).set})},function(e,t,n){n(512),e.exports=n(16).Object.setPrototypeOf},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(76),i=n(26),a=n(514),o=[].slice,s={};e.exports=Function.bind||function(e){var t=r(this),n=o.call(arguments,1),u=function(){var r=n.concat(o.call(arguments));return this instanceof u?function(e,t,n){if(!(t in s)){for(var r=[],i=0;il;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(32),i=n(27),a=n(73);e.exports=n(35)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,u=0;s>u;)r.f(e,n=o[u++],t[n]);return e}},function(e,t,n){var r=n(25),i=n(74),a=n(76),o=n(27),s=n(26),u=n(38),c=n(515),l=(n(33).Reflect||{}).construct,d=u(function(){function e(){}return!(l(function(){},[],e)instanceof e)}),f=!u(function(){l(function(){})});r(r.S+r.F*(d||f),"Reflect",{construct:function(e,t){a(e),o(t);var n=arguments.length<3?e:a(arguments[2]);if(f&&!d)return l(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(c.apply(e,r))}var u=n.prototype,p=i(s(u)?u:Object.prototype),h=Function.apply.call(e,p,t);return s(h)?h:p}})},function(e,t,n){n(520),e.exports=n(16).Reflect.construct},function(e,t,n){e.exports=n(521)},function(e,t,n){var r=n(522),i=n(181);function a(t,n,o){return!function(){if("undefined"==typeof Reflect||!r)return!1;if(r.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(r(Date,[],function(){})),!0}catch(e){return!1}}()?e.exports=a=function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&i(a,n.prototype),a}:e.exports=a=r,a.apply(null,arguments)}e.exports=a},function(e,t,n){(function(e,t){ +e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-o)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],r=0,i=0;r>>6-2*i);return t}},e.exports=r},function(e,t,n){var r,i,o,a,s;r=n(212),i=n(131).utf8,o=n(211),a=n(131).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?a.stringToBytes(e):i.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||(e=e.toString());for(var n=r.bytesToWords(e),u=8*e.length,d=1732584193,l=-271733879,c=-1732584194,p=271733878,f=0;f>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[u>>>5]|=128<>>9<<4)]=u;var h=s._ff,g=s._gg,m=s._hh,y=s._ii;for(f=0;f>>0,l=l+v>>>0,c=c+C>>>0,p=p+S>>>0}return r.endian([d,l,c,p])})._ff=function(e,t,n,r,i,o,a){var s=e+(t&n|~t&r)+(i>>>0)+a;return(s<>>32-o)+t},s._gg=function(e,t,n,r,i,o,a){var s=e+(t&r|n&~r)+(i>>>0)+a;return(s<>>32-o)+t},s._hh=function(e,t,n,r,i,o,a){var s=e+(t^n^r)+(i>>>0)+a;return(s<>>32-o)+t},s._ii=function(e,t,n,r,i,o,a){var s=e+(n^(t|~r))+(i>>>0)+a;return(s<>>32-o)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(void 0===e||null===e)throw new Error("Illegal argument "+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?a.bytesToString(n):r.bytesToHex(n)}},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(8)),s=r(n(7)),u=r(n(6)),d=r(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a},c=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof a.default)return(0,a.default)(e,t)},p=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(4),g=n(132),m=n(64),y=function(){function e(t){(0,i.default)(this,e),this.randomGenerator=t}return(0,o.default)(e,[{key:"btoa",value:function(e){var t="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode(parseInt("".concat(m.Utils.hexadecimalPrefix).concat(t)))});for(var n,r,i=0,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.charAt(0|i)||(o="=",i%1);t+=o.charAt(63&n>>8-i%1*8)){if((r=e.charCodeAt(i+=.75))>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");n=n<<8|r}return t}},{key:"hideString",value:function(e,t){var n=this,r=this.randomGenerator.getRandomGenerator().string({length:t,pool:g.RandomGenerator.randomGeneratorPool}).replace(new RegExp("[".concat(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"]"),"g"),""),i=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(i),[function(e,t){for(var r=-1,i=-1,o="";r=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),g=n(4),m=function(){function e(t){(0,o.default)(this,e),this.randomGenerator=t}return(0,a.default)(e,[{key:"createWithRange",value:function(e){for(var t=[],n=0;n=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)},f=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var h=n(1),g=n(4),m=n(15),y=function(){function e(t,n){(0,o.default)(this,e),this.storageLength=0,this.randomGenerator=t,this.options=n}return(0,a.default)(e,[{key:"initialize",value:function(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}},{key:"get",value:function(e){var t=this.storage[e];if(!t)throw new Error("No value found in array storage with key `".concat(e,"`"));return t}},{key:"getKeyOf",value:function(e){var t=this.storage.indexOf(e);return t>=0?t:null}},{key:"getLength",value:function(){return this.storageLength}},{key:"getStorage",value:function(){return this.storage}},{key:"getStorageId",value:function(){return this.storageId}},{key:"mergeWith",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.storage=(0,i.default)(this.storage).concat((0,i.default)(e.getStorage())),t&&(this.storageId=e.getStorageId())}},{key:"set",value:function(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}}]),e}();c([m.initializable(),p("design:type",Array)],y.prototype,"storage",void 0),c([m.initializable(),p("design:type",String)],y.prototype,"storageId",void 0),c([h.postConstruct(),p("design:type",Function),p("design:paramtypes",[]),p("design:returntype",void 0)],y.prototype,"initialize",null),y=c([h.injectable(),f(0,h.inject(g.ServiceIdentifiers.IRandomGenerator)),f(1,h.inject(g.ServiceIdentifiers.IOptions)),p("design:paramtypes",[Object,Object])],y),t.ArrayStorage=y},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(11)),u=i(n(9)),d=i(n(81)),l=i(n(10)),c=i(n(8)),p=i(n(7)),f=i(n(6)),h=i(n(5)),g=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,p.default)(t,n,a),a},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var b=n(1),v=n(4),C=n(217),S=r=function(e){function t(e,n,r,i){var a;return(0,o.default)(this,t),(a=(0,s.default)(this,(0,u.default)(t).call(this,r,i))).identifierNamesGenerator=e(i),a.arrayUtils=n,a}return(0,l.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){(0,d.default)((0,u.default)(t.prototype),"initialize",this).call(this);var e=this.identifierNamesGenerator.generate().slice(0,r.stringArrayNameLength),n=this.identifierNamesGenerator.generate().slice(0,r.stringArrayNameLength),i="".concat(this.options.identifiersPrefix).concat(e),o="".concat(this.options.identifiersPrefix).concat(n);this.storageId="".concat(i,"|").concat(o)}},{key:"rotateArray",value:function(e){this.storage=this.arrayUtils.rotate(this.storage,e)}},{key:"toString",value:function(){return this.storage.map(function(e){return"'".concat(e,"'")}).toString()}}]),t}(C.ArrayStorage);S.stringArrayNameLength=7,g([b.postConstruct(),m("design:type",Function),m("design:paramtypes",[]),m("design:returntype",void 0)],S.prototype,"initialize",null),S=r=g([b.injectable(),y(0,b.inject(v.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),y(1,b.inject(v.ServiceIdentifiers.IArrayUtils)),y(2,b.inject(v.ServiceIdentifiers.IRandomGenerator)),y(3,b.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object,Object])],S),t.StringArrayStorage=S},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(11)),u=i(n(9)),d=i(n(81)),l=i(n(10)),c=i(n(8)),p=i(n(7)),f=i(n(6)),h=i(n(5)),g=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,p.default)(t,n,a),a},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var b=n(1),v=n(4),C=n(151),S=n(133),N=r=function(e){function t(e,n,r){var i;return(0,o.default)(this,t),(i=(0,s.default)(this,(0,u.default)(t).call(this,n,r))).customNodeGroupFactory=e,i}return(0,l.default)(t,e),(0,a.default)(t,[{key:"initialize",value:function(){var e=this;(0,d.default)((0,u.default)(t.prototype),"initialize",this).call(this),r.customNodeGroupsList.forEach(function(t){var n=e.customNodeGroupFactory(t);n&&e.storage.set(t,n)})}}]),t}(S.MapStorage);N.customNodeGroupsList=[C.CustomNodeGroup.ConsoleOutputCustomNodeGroup,C.CustomNodeGroup.DebugProtectionCustomNodeGroup,C.CustomNodeGroup.DomainLockCustomNodeGroup,C.CustomNodeGroup.SelfDefendingCustomNodeGroup,C.CustomNodeGroup.StringArrayCustomNodeGroup],g([b.postConstruct(),m("design:type",Function),m("design:paramtypes",[]),m("design:returntype",void 0)],N.prototype,"initialize",null),N=r=g([b.injectable(),y(0,b.inject(v.ServiceIdentifiers.Factory__ICustomNodeGroup)),y(1,b.inject(v.ServiceIdentifiers.IRandomGenerator)),y(2,b.inject(v.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Function,Object,Object])],N),t.CustomNodeGroupStorage=N},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(11)),a=r(n(9)),s=r(n(10)),u=r(n(8)),d=r(n(7)),l=r(n(6)),c=r(n(5)),p=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,c.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,d.default)(t,n,a),a},f=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,l.default)(Reflect))&&"function"==typeof u.default)return(0,u.default)(e,t)},h=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var g=n(1),m=n(4),y=function(e){function t(e,n){return(0,i.default)(this,t),(0,o.default)(this,(0,a.default)(t).call(this,e,n))}return(0,s.default)(t,e),t}(n(133).MapStorage);y=p([g.injectable(),h(0,g.inject(m.ServiceIdentifiers.IRandomGenerator)),h(1,g.inject(m.ServiceIdentifiers.IOptions)),f("design:paramtypes",[Object,Object])],y),t.ControlFlowStorage=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),i=n(4),o=n(220),a=n(219),s=n(218);t.storagesModule=new r.ContainerModule(function(e){e(i.ServiceIdentifiers.TCustomNodeGroupStorage).to(a.CustomNodeGroupStorage).inSingletonScope(),e(i.ServiceIdentifiers.TStringArrayStorage).to(s.StringArrayStorage).inSingletonScope(),e(i.ServiceIdentifiers.Newable__TControlFlowStorage).toConstructor(o.ControlFlowStorage),e(i.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(function(e){return function(){var t=new(e.container.get(i.ServiceIdentifiers.Newable__TControlFlowStorage))(e.container.get(i.ServiceIdentifiers.IRandomGenerator),e.container.get(i.ServiceIdentifiers.IOptions));return t.initialize(),t}})})},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(11)),s=r(n(9)),u=r(n(10)),d=r(n(8)),l=r(n(7)),c=r(n(6)),p=r(n(5)),f=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,l.default)(t,n,a),a},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=n(18),v=n(19),C=n(14),S=function(e){function t(e,n){return(0,i.default)(this,t),(0,a.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return C.NodeUtils.parentizeNode(e,t)}}]),t}(v.AbstractNodeTransformer);S=f([m.injectable(),g(0,m.inject(y.ServiceIdentifiers.IRandomGenerator)),g(1,m.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],S),t.ParentificationTransformer=S},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(11)),u=i(n(9)),d=i(n(10)),l=i(n(8)),c=i(n(7)),p=i(n(6)),f=i(n(5)),h=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,f.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,c.default)(t,n,a),a},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),b=n(4),v=n(134),C=n(18),S=n(19),N=n(28),A=r=function(e){function t(e,n,i){var a;return(0,o.default)(this,t),(a=(0,s.default)(this,(0,u.default)(t).call(this,n,i))).obfuscatingGuards=r.obfuscatingGuardsList.map(e),a}return(0,d.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case C.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){var n=this.obfuscatingGuards.every(function(t){return t.check(e)});return N.NodeMetadata.set(e,{ignoredNode:!n}),e}}]),t}(S.AbstractNodeTransformer);A.obfuscatingGuardsList=[v.ObfuscatingGuard.BlackListNodeGuard,v.ObfuscatingGuard.ConditionalCommentNodeGuard],A=r=h([y.injectable(),m(0,y.inject(b.ServiceIdentifiers.Factory__INodeGuard)),m(1,y.inject(b.ServiceIdentifiers.IRandomGenerator)),m(2,y.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Function,Object,Object])],A),t.ObfuscatingGuardsTransformer=A},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(11)),s=r(n(9)),u=r(n(10)),d=r(n(8)),l=r(n(7)),c=r(n(6)),p=r(n(5)),f=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,l.default)(t,n,a),a},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=n(18),v=n(19),C=n(13),S=n(28),N=function(e){function t(e,n){return(0,i.default)(this,t),(0,a.default)(this,(0,s.default)(t).call(this,e,n))}return(0,u.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case b.TransformationStage.Preparing:return{enter:function(e,n){return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return S.NodeMetadata.set(e,{ignoredNode:!1}),C.NodeGuards.isIdentifierNode(e)&&S.NodeMetadata.set(e,{renamedIdentifier:!1}),C.NodeGuards.isLiteralNode(e)&&S.NodeMetadata.set(e,{replacedLiteral:!1}),e}}]),t}(v.AbstractNodeTransformer);N=f([m.injectable(),g(0,m.inject(y.ServiceIdentifiers.IRandomGenerator)),g(1,m.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object])],N),t.MetadataTransformer=N},function(e,t){e.exports=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})}},function(e,t,n){"use strict";var r,i=n(0),o=i(n(57)),a=i(n(2)),s=i(n(3)),u=i(n(11)),d=i(n(9)),l=i(n(10)),c=i(n(8)),p=i(n(7)),f=i(n(6)),h=i(n(5)),g=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,h.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,p.default)(t,n,a),a},m=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,f.default)(Reflect))&&"function"==typeof c.default)return(0,c.default)(e,t)},y=function(e,t){return function(n,r){t(n,r,e)}},b=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var v=n(1),C=n(4),S=b(n(225)),N=n(18),A=n(19),_=n(20),E=n(13),I=n(14),T=r=function(e){function t(e,n){var r;return(0,a.default)(this,t),(r=(0,u.default)(this,(0,d.default)(t).call(this,e,n))).evalRootAstHostNodeSet=new o.default,r}return(0,l.default)(t,e),(0,s.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case N.TransformationStage.Preparing:return{enter:function(e,n){if(n&&E.NodeGuards.isCallExpressionNode(e)&&E.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name)return t.transformNode(e,n)}};case N.TransformationStage.Finalizing:return this.evalRootAstHostNodeSet.size?{leave:function(e,n){if(n&&t.isEvalRootAstHostNode(e))return t.restoreNode(e,n)}}:null;default:return null}}},{key:"transformNode",value:function(e,t){var n=e.arguments[0];if(!n)return e;var i,o=r.extractEvalStringFromCallExpressionArgument(n);if(!o)return e;try{i=I.NodeUtils.convertCodeToStructure(o)}catch(t){return e}var a=_.NodeFactory.functionExpressionNode([],_.NodeFactory.blockStatementNode(i));return this.evalRootAstHostNodeSet.add(a),a}},{key:"restoreNode",value:function(e,t){var n=e.body.body,r=I.NodeUtils.convertStructureToCode(n);return _.NodeFactory.callExpressionNode(_.NodeFactory.identifierNode("eval"),[_.NodeFactory.literalNode(S.default(r))])}},{key:"isEvalRootAstHostNode",value:function(e){return E.NodeGuards.isFunctionExpressionNode(e)&&this.evalRootAstHostNodeSet.has(e)}}],[{key:"extractEvalStringFromCallExpressionArgument",value:function(e){return E.NodeGuards.isLiteralNode(e)?r.extractEvalStringFromLiteralNode(e):E.NodeGuards.isTemplateLiteralNode(e)?r.extractEvalStringFromTemplateLiteralNode(e):null}},{key:"extractEvalStringFromLiteralNode",value:function(e){return"string"==typeof e.value?e.value:null}},{key:"extractEvalStringFromTemplateLiteralNode",value:function(e){var t=e.quasis;return 1!==t.length||e.expressions.length?null:t[0].value.cooked}}]),t}(A.AbstractNodeTransformer);T=r=g([v.injectable(),y(0,v.inject(C.ServiceIdentifiers.IRandomGenerator)),y(1,v.inject(C.ServiceIdentifiers.IOptions)),m("design:paramtypes",[Object,Object])],T),t.EvalCallExpressionTransformer=T},function(e,t,n){"use strict";var r=n(0),i=r(n(2)),o=r(n(3)),a=r(n(11)),s=r(n(9)),u=r(n(10)),d=r(n(8)),l=r(n(7)),c=r(n(6)),p=r(n(5)),f=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,p.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,l.default)(t,n,a),a},h=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,c.default)(Reflect))&&"function"==typeof d.default)return(0,d.default)(e,t)},g=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var m=n(1),y=n(4),b=n(46),v=n(18),C=n(19),S=n(13),N=function(e){function t(e,n,r,o,u){var d;return(0,i.default)(this,t),(d=(0,a.default)(this,(0,s.default)(t).call(this,o,u))).stackTraceData=[],d.stackTraceAnalyzer=e,d.obfuscationEventEmitter=n,d.customNodeGroupStorage=r,d}return(0,u.default)(t,e),(0,o.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Preparing:return{leave:function(e,n){if(S.NodeGuards.isProgramNode(e))return t.analyzeNode(e,n),t.appendCustomNodesBeforeObfuscation(e,n),t.transformNode(e,n)}};case v.TransformationStage.Finalizing:return{leave:function(e,n){S.NodeGuards.isProgramNode(e)&&t.appendCustomNodesAfterObfuscation(e,n)}};default:return null}}},{key:"analyzeNode",value:function(e,t){this.stackTraceData=this.stackTraceAnalyzer.analyze(e)}},{key:"transformNode",value:function(e,t){return e}},{key:"appendCustomNodesBeforeObfuscation",value:function(e,t){var n=this;this.customNodeGroupStorage.getStorage().forEach(function(e){e.initialize(),n.obfuscationEventEmitter.once(e.getAppendEvent(),e.appendCustomNodes.bind(e))}),this.obfuscationEventEmitter.emit(b.ObfuscationEvent.BeforeObfuscation,e,this.stackTraceData)}},{key:"appendCustomNodesAfterObfuscation",value:function(e,t){this.obfuscationEventEmitter.emit(b.ObfuscationEvent.AfterObfuscation,e,this.stackTraceData)}}]),t}(C.AbstractNodeTransformer);N=f([m.injectable(),g(0,m.inject(y.ServiceIdentifiers.IStackTraceAnalyzer)),g(1,m.inject(y.ServiceIdentifiers.IObfuscationEventEmitter)),g(2,m.inject(y.ServiceIdentifiers.TCustomNodeGroupStorage)),g(3,m.inject(y.ServiceIdentifiers.IRandomGenerator)),g(4,m.inject(y.ServiceIdentifiers.IOptions)),h("design:paramtypes",[Object,Object,Object,Object,Object])],N),t.CustomNodesTransformer=N},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(7)),u=i(n(6)),d=i(n(5)),l=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,d.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,u.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,s.default)(t,n,a),a};Object.defineProperty(t,"__esModule",{value:!0});var c=n(1),p=n(13),f=r=function(){function e(){(0,o.default)(this,e),this.obfuscationAllowedForCurrentNode=!0,this.obfuscationAllowedForNextNode=null}return(0,a.default)(e,[{key:"check",value:function(e){if(this.obfuscationAllowedForNextNode&&(this.obfuscationAllowedForCurrentNode=this.obfuscationAllowedForNextNode,this.obfuscationAllowedForNextNode=null),!p.NodeGuards.isNodeWithComments(e))return this.obfuscationAllowedForCurrentNode;var t=e.leadingComments,n=e.trailingComments;return t&&(this.obfuscationAllowedForCurrentNode=this.checkComments(t)),n&&(this.obfuscationAllowedForNextNode=this.checkComments(n)),this.obfuscationAllowedForCurrentNode}},{key:"checkComments",value:function(e){for(var t=e.length,n=this.obfuscationAllowedForCurrentNode,i=0;i=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,c.default)(t,n,a),a},g=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,p.default)(Reflect))&&"function"==typeof l.default)return(0,l.default)(e,t)},m=function(e,t){return function(n,r){t(n,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var y=n(1),b=n(4),v=n(18),C=n(19),S=n(13),N=r=function(e){function t(e,n){return(0,o.default)(this,t),(0,s.default)(this,(0,u.default)(t).call(this,e,n))}return(0,d.default)(t,e),(0,a.default)(t,[{key:"getVisitor",value:function(e){var t=this;switch(e){case v.TransformationStage.Preparing:return{leave:function(e,n){if(n&&S.NodeGuards.isNodeWithComments(e))return t.transformNode(e,n)}};default:return null}}},{key:"transformNode",value:function(e,t){return e.leadingComments&&(e.leadingComments=this.transformComments(e.leadingComments)),e.trailingComments&&(e.trailingComments=this.transformComments(e.trailingComments)),e}},{key:"transformComments",value:function(e){return e.filter(function(e){return r.preservedWords.some(function(t){return e.value.includes(t)})})}}]),t}(C.AbstractNodeTransformer);N.preservedWords=["@license","@preserve"],N=r=h([y.injectable(),m(0,y.inject(b.ServiceIdentifiers.IRandomGenerator)),m(1,y.inject(b.ServiceIdentifiers.IOptions)),g("design:paramtypes",[Object,Object])],N),t.CommentsTransformer=N},function(e,t,n){"use strict";var r,i=n(0),o=i(n(2)),a=i(n(3)),s=i(n(8)),u=i(n(7)),d=i(n(6)),l=i(n(5)),c=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=(0,l.default)(t,n):r;if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,u.default)(t,n,a),a},p=function(e,t){if("object"===("undefined"==typeof Reflect?"undefined":(0,d.default)(Reflect))&&"function"==typeof s.default)return(0,s.default)(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(13),g=r=function(){function e(){(0,o.default)(this,e),this.blackListGuardsLength=r.blackListGuards.length}return(0,a.default)(e,[{key:"check",value:function(e){for(var t=0;t=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&(0,d.default)(t,n,a),a};Object.defineProperty(t,"__esModule",{value:!0});var f=n(1),h=n(242),g=n(241),m=n(240),y=n(239),b=n(238),v=n(237),C=n(236),S=n(235),N=n(234),A=n(233),_=n(232),E=r=function(){function e(){(0,s.default)(this,e)}return(0,u.default)(e,[{key:"normalize",value:function(e){var t=(0,a.default)({},e),n=!0,i=!1,s=void 0;try{for(var u,d=(0,o.default)(r.normalizerRules);!(n=(u=d.next()).done);n=!0){t=(0,u.value)(t)}}catch(e){i=!0,s=e}finally{try{n||null==d.return||d.return()}finally{if(i)throw s}}return t}}]),e}();E.normalizerRules=[h.ControlFlowFlatteningThresholdRule,g.DeadCodeInjectionRule,m.DeadCodeInjectionThresholdRule,y.DomainLockRule,b.InputFileNameRule,v.SelfDefendingRule,C.SourceMapBaseUrlRule,S.SourceMapFileNameRule,N.StringArrayRule,A.StringArrayEncodingRule,_.StringArrayThresholdRule],E=r=p([f.injectable()],E),t.OptionsNormalizer=E},function(e,t,n){"use strict";var r=n(0),i=r(n(105)),o=r(n(56)),a=r(n(2)),s=r(n(3));Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(){(0,a.default)(this,e)}return(0,s.default)(e,null,[{key:"format",value:function(t){return t.reduce(function(t,n){return(0,o.default)(t).concat([e.formatWithNestedConstraints(n)])},[]).join("\n")}},{key:"formatWithNestedConstraints",value:function(e){var t=e.constraints,n="`".concat(e.property,"` errors:\n"),r=(0,i.default)(t).map(function(e){return" - ".concat(t[e],"\n")}).join();return"".concat(n).concat(r)}}]),e}();t.ValidationErrorsFormatter=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(63),i=n(136),o=n(99),a=n(53),s=n(52);t.registerDecorator=function(e){var t;if(e.validator instanceof Function)t=e.validator;else{var n=e.validator;t=function(){function e(){}return e.prototype.validate=function(e,t){return n.validate(e,t)},e.prototype.defaultMessage=function(e){return n.defaultMessage?n.defaultMessage(e):""},e}(),s.getFromContainer(r.MetadataStorage).addConstraintMetadata(new i.ConstraintMetadata(t,e.name,e.async))}var u={type:a.ValidationTypes.CUSTOM_VALIDATION,target:e.target,propertyName:e.propertyName,validationOptions:e.options,constraintCls:t,constraints:e.constraints};s.getFromContainer(r.MetadataStorage).addValidationMetadata(new o.ValidationMetadata(u))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(53),i=n(99),o=n(136),a=n(52),s=n(63);t.ValidatorConstraint=function(e){return function(t){var n=!(!e||!e.async),r=e&&e.name?e.name:"";r||(r=t.name)||(r=r.replace(/\.?([A-Z]+)/g,function(e,t){return"_"+t.toLowerCase()}).replace(/^_/,""));var i=new o.ConstraintMetadata(t,r,n);a.getFromContainer(s.MetadataStorage).addConstraintMetadata(i)}},t.Validate=function(e,t,n){return function(o,u){var d={type:r.ValidationTypes.CUSTOM_VALIDATION,target:o.constructor,propertyName:u,constraintCls:e,constraints:t instanceof Array?t:void 0,validationOptions:t instanceof Array?n:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(d))}},t.ValidateNested=function(e){return function(t,n){var o={type:r.ValidationTypes.NESTED_VALIDATION,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.Allow=function(e){return function(t,n){var o={type:r.ValidationTypes.WHITELIST,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.ValidateIf=function(e,t){return function(n,o){var u={type:r.ValidationTypes.CONDITIONAL_VALIDATION,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsDefined=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_DEFINED,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.Equals=function(e,t){return function(n,o){var u={type:r.ValidationTypes.EQUALS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.NotEquals=function(e,t){return function(n,o){var u={type:r.ValidationTypes.NOT_EQUALS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsEmpty=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsNotEmpty=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_NOT_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsIn=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_IN,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsNotIn=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_NOT_IN,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsOptional=function(e){return function(t,n){var o={type:r.ValidationTypes.CONDITIONAL_VALIDATION,target:t.constructor,propertyName:n,constraints:[function(e,t){return null!==e[n]&&void 0!==e[n]}],validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsBoolean=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_BOOLEAN,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsDate=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_DATE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsNumber=function(e,t){return void 0===e&&(e={}),function(n,o){var u={type:r.ValidationTypes.IS_NUMBER,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsInt=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_INT,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsString=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_STRING,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsDateString=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_DATE_STRING,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsArray=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ARRAY,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsEnum=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_ENUM,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsDivisibleBy=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_DIVISIBLE_BY,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsPositive=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_POSITIVE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsNegative=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_NEGATIVE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.Min=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MIN,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.Max=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MAX,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MinDate=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MIN_DATE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MaxDate=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MAX_DATE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsBooleanString=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_BOOLEAN_STRING,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsNumberString=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_NUMBER_STRING,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.Contains=function(e,t){return function(n,o){var u={type:r.ValidationTypes.CONTAINS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.NotContains=function(e,t){return function(n,o){var u={type:r.ValidationTypes.NOT_CONTAINS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsAlpha=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ALPHA,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsAlphanumeric=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ALPHANUMERIC,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsAscii=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ASCII,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsBase64=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_BASE64,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsByteLength=function(e,t,n){return function(o,u){var d={type:r.ValidationTypes.IS_BYTE_LENGTH,target:o.constructor,propertyName:u,constraints:[e,t],validationOptions:n};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(d))}},t.IsCreditCard=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_CREDIT_CARD,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsCurrency=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_CURRENCY,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsEmail=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_EMAIL,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsFQDN=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_FQDN,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsFullWidth=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_FULL_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsHalfWidth=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_HALF_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsVariableWidth=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_VARIABLE_WIDTH,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsHexColor=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_HEX_COLOR,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsHexadecimal=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_HEXADECIMAL,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsIP=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_IP,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsISBN=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_ISBN,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsISIN=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ISIN,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsISO8601=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_ISO8601,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsJSON=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_JSON,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsLowercase=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_LOWERCASE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsMobilePhone=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_MOBILE_PHONE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsPhoneNumber=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_PHONE_NUMBER,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsMongoId=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_MONGO_ID,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsMultibyte=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_MULTIBYTE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsSurrogatePair=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_SURROGATE_PAIR,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsUrl=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_URL,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsUUID=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_UUID,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.IsUppercase=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_UPPERCASE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.Length=function(e,t,n){return function(o,u){var d={type:r.ValidationTypes.LENGTH,target:o.constructor,propertyName:u,constraints:[e,t],validationOptions:n};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(d))}},t.MinLength=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MIN_LENGTH,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.MaxLength=function(e,t){return function(n,o){var u={type:r.ValidationTypes.MAX_LENGTH,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.Matches=function(e,t,n){var o;return t&&t instanceof Object&&!n?n=t:o=t,function(t,u){var d={type:r.ValidationTypes.MATCHES,target:t.constructor,propertyName:u,constraints:[e,o],validationOptions:n};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(d))}},t.IsMilitaryTime=function(e){return function(t,n){var o={type:r.ValidationTypes.IS_MILITARY_TIME,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.ArrayContains=function(e,t){return function(n,o){var u={type:r.ValidationTypes.ARRAY_CONTAINS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayNotContains=function(e,t){return function(n,o){var u={type:r.ValidationTypes.ARRAY_NOT_CONTAINS,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayNotEmpty=function(e){return function(t,n){var o={type:r.ValidationTypes.ARRAY_NOT_EMPTY,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.ArrayMinSize=function(e,t){return function(n,o){var u={type:r.ValidationTypes.ARRAY_MIN_SIZE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayMaxSize=function(e,t){return function(n,o){var u={type:r.ValidationTypes.ARRAY_MAX_SIZE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}},t.ArrayUnique=function(e){return function(t,n){var o={type:r.ValidationTypes.ARRAY_UNIQUE,target:t.constructor,propertyName:n,validationOptions:e};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(o))}},t.IsInstance=function(e,t){return function(n,o){var u={type:r.ValidationTypes.IS_INSTANCE,target:n.constructor,propertyName:o,constraints:[e],validationOptions:t};a.getFromContainer(s.MetadataStorage).addValidationMetadata(new i.ValidationMetadata(u))}}},function(module,exports,__webpack_require__){var require,require;module.exports=function(){var define,module,exports;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return require(a,!0);if(o)return o(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return i(n||e)},l,l.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if("function"==typeof e.clone)return e.clone();for(var n in t="array"==t?[]:{},e)t[n]=goog.cloneObject(e[n]);return t}return e},goog.bindNative_=function(e,t,n){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,n){if(!e)throw Error();if(2Number(t[1]))&&b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')}),a("es6-impl",function(){return!0}),a("es7",function(){return b("2 ** 2 == 4")}),a("es8",function(){return b("async () => 1, true")}),a("es9",function(){return b("({...rest} = {}), true")}),a("es_next",function(){return!1}),c},goog.Transpiler.prototype.needsTranspile=function(e,t){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_()),e in this.requiresTranspilation_)return!!this.requiresTranspilation_[e]||!(!goog.inHtmlDocument_()||"es6"!=t||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+e)},goog.Transpiler.prototype.transpile=function(e,t){return goog.transpile_(e,t)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(e){return e.replace(/<\/(SCRIPT)/gi,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(e,t){function n(){r&&(goog.global.setTimeout(r,0),r=null)}var r=t;if(e.length){for(var i=[],o=0;o<\/script>")}else{var i=t.createElement("script");i.defer=goog.Dependency.defer_,i.async=!1,i.type="text/javascript",(r=goog.getScriptNonce())&&i.setAttribute("nonce",r),goog.DebugLoader_.IS_OLD_IE_?(e.pause(),i.onreadystatechange=function(){"loaded"!=i.readyState&&"complete"!=i.readyState||(e.loaded(),e.resume())}):i.onload=function(){i.onload=null,e.loaded()},i.src=this.path,t.head.appendChild(i)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or seting CLOSURE_NO_DEPS to true."),e.loaded()):e.pause()},goog.Es6ModuleDependency=function(e,t,n,r,i){goog.Dependency.call(this,e,t,n,r,i)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document,n=this;if(goog.isDocumentLoading_()){var r=function(e,n){n?t.write('