1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{
"uid": "3EAA6BFDKE6F9A4241SA320EB29D6E8E3F3F",
"isLoaded": true,
"lastModificationTime": 1421095529385,
"items": {
"name": "Component_CommonEventBehavior",
"type": "game_script",
"order": 17,
"content": "# ===================================================================\n#\n# Script: Component_CommonEventBehavior\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_CommonEventBehavior extends gs.Component\n ###*\n * Called if this object instance is restored from a data-bundle. It can be used\n * re-assign event-handler, anonymous functions, etc.\n * \n * @method onDataBundleRestore.\n * @param Object data - The data-bundle\n * @param gs.ObjectCodecContext context - The codec-context.\n ###\n onDataBundleRestore: (data, context) ->\n if @object.rid?\n @object.record = RecordManager.commonEvents[@object.rid]\n @object.interpreter?.object = this\n @object.commands = @object.record.commands\n @setupEventHandlers()\n \n ###*\n * A component which allows a game object to execute common-events.\n *\n * @module gs\n * @class Component_CommonEventBehavior\n * @extends gs.Component\n * @memberof gs\n ###\n constructor: () ->\n super()\n \n ###*\n * @property readyToStart\n * @type boolean\n * @private\n ###\n @readyToStart = no\n \n ###*\n * @property initialized\n * @type boolean\n * @private\n ###\n @initialized = no\n \n @callDepth = 0\n \n ###*\n * Serializes the component into a data-bundle.\n *\n * @method toDataBundle\n * @return {Object} The data-bundle.\n ### \n toDataBundle: ->\n return {\n initialized: @initialized,\n readyToStart: @readyToStart\n }\n \n ###*\n * Restores the component from a data-bundle\n *\n * @method restore\n * @param {Object} bundle- The data-bundle.\n ### \n restore: (data) ->\n @setup()\n @readyToStart = data.readyToStart\n @initialized = data.initialized\n \n ###*\n * Adds event-handlers for mouse/touch events\n *\n * @method setupEventHandlers\n ### \n setupEventHandlers: ->\n if !@object.interpreter then return\n \n if @object.record.startCondition == 1\n @object.interpreter.onFinish = => \n if not @object.record.parallel\n @object.events?.emit(\"finish\", this)\n else\n if @object.record.parallel\n @object.interpreter.onFinish = (sender) => @object.removeComponent(sender)\n else\n @object.interpreter.onFinish = (sender) => @object.events.emit(\"finish\", this)\n \n ###*\n * Initializes the common-event.\n *\n * @method setup\n ### \n setup: ->\n GameManager.variableStore.setupLocalVariables(@object.record)\n \n @object.record.parameters = if @object.record.parameters? then @object.record.parameters else []\n @object.record.startCondition = if @object.record.startCondition? then @object.record.startCondition else 0\n @object.record.parallel = if @object.record.parallel? then @object.record.parallel else no\n @object.record.conditionSwitch = if @object.record.conditionSwitch? then @object.record.conditionSwitch else null\n @object.record.conditionEnabled = @object.record.conditionEnabled\n \n if @object.record.startCondition == 1\n @object.interpreter = new gs.Component_CommandInterpreter()\n @object.interpreter.onFinish = => \n if not @object.record.parallel\n @object.events?.emit(\"finish\", this)\n else\n @restart()\n \n \n @object.interpreter.context.set(@object.record.index, @object.record)\n @object.addComponent(@object.interpreter)\n\n @initialized = yes\n \n ###*\n * Starts the common-event interpreter with the specified parameters.\n * \n * @method start\n * @param {Object} parameters The common-event's parameters which can be configured in database.\n ### \n start: (parameters) ->\n @startParameters = parameters \n \n if @object.interpreter? and not @object.interpreter.isRunning\n @object.commands = @object.record.commands\n @readyToStart = yes\n @object.events?.emit(\"start\", this)\n \n if @object.record.startCondition == 0 and @object.record.parallel\n @object.events?.emit(\"finish\", this)\n \n ###*\n * Initializes variable-store with the start-up parameters configured for the\n * common-event in Database.\n *\n * @method setupParameters\n ###\n setupParameters: (parameters, parentContext) ->\n if parameters? and parameters.values?\n for i in [0...parameters.values.length]\n value = parameters.values[i]\n parameter = @object.record.parameters[i]\n if parameter? and value?\n GameManager.variableStore.setupTempVariables(parentContext)\n switch parameter.type\n when 1 # Number\n value = GameManager.variableStore.numberValueOf(value)\n GameManager.variableStore.setupTempVariables(@object.interpreter.context)\n GameManager.variableStore.setNumberValueTo(parameter.numberVariable, value)\n when 2 # Boolean\n value = GameManager.variableStore.booleanValueOf(value)\n GameManager.variableStore.setupTempVariables(@object.interpreter.context)\n GameManager.variableStore.setBooleanValueTo(parameter.booleanVariable, value)\n when 3 # String\n value = GameManager.variableStore.stringValueOf(value)\n GameManager.variableStore.setupTempVariables(@object.interpreter.context)\n GameManager.variableStore.setStringValueTo(parameter.stringVariable, value)\n ###*\n * Calls the common-event with the specified parameters.\n *\n * @method call\n * @param {Object} parameters The common-event's parameters which can be configured in database.\n ### \n call: (parameters, settings, parentContext) ->\n if not @object.record.singleInstance\n interpreter = new gs.Component_CommandInterpreter()\n interpreter.context.set(@object.record.index + \"_\" + @callDepth, @object.record)\n GameManager.variableStore.clearTempVariables(interpreter.context)\n @object.commands = @object.record.commands\n @callDepth++\n else\n interpreter = @object.interpreter || new gs.Component_CommandInterpreter()\n interpreter.context.set(@object.record.index, @object.record)\n @object.commands = @object.record.commands\n \n interpreter.repeat = no\n interpreter.object = @object\n interpreter.settings = settings if settings\n @object.interpreter = interpreter\n \n GameManager.variableStore.setupTempVariables(interpreter.context)\n @setupParameters(parameters, parentContext)\n \n if @object.record.parallel\n interpreter.onFinish = (sender) => \n @object.removeComponent(sender)\n if not @object.record.singleInstance\n @callDepth--\n interpreter.start()\n @object.addComponent(interpreter)\n \n return null\n else\n interpreter.onFinish = (sender) => \n @object.events.emit(\"finish\", this)\n return interpreter\n \n ###*\n * Stops the common-event interpreter.\n *\n * @method stop\n ### \n stop: ->\n if @object.interpreter?\n @object.interpreter.stop()\n @object.events?.emit(\"finish\", this)\n \n ###*\n * Resumes a paused common-event interpreter.\n *\n * @method resume\n ### \n resume: ->\n if @object.interpreter?\n @object.interpreter.resume()\n @object.events?.emit(\"start\", this)\n @object.events?.emit(\"resume\", this)\n \n \n ###*\n * Restarts the common event. If the common event has a condition then the restart\n * will only happen if that condition is true.\n *\n * @method restart\n ### \n restart: ->\n if @object.record.conditionEnabled\n if GameManager.variableStore.booleanValueOf(@object.record.conditionSwitch)\n @start()\n else\n @start()\n \n ###*\n * Restarts the common event if it is parallel and the conditions are met.\n *\n * @method restartIfNecessary\n ### \n restartIfNecessary: ->\n if @object.interpreter? and @object.record.startCondition == 1 and not @object.interpreter.isRunning\n @restart()\n \n ###*\n * Updates the common-event interpreter.\n *\n * @method update\n ### \n update: ->\n if not @initialized\n @setup()\n \n if @object.interpreter? and @readyToStart\n @readyToStart = no\n @setupParameters(@startParameters)\n @object.interpreter.start()\n \n @restartIfNecessary()\n \n ###*\n * Not implemented yet.\n *\n * @method erase\n ### \n erase: ->\n \ngs.Component_CommonEventBehavior = Component_CommonEventBehavior",
"compiledContent": "var Component_CommonEventBehavior,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nComponent_CommonEventBehavior = (function(superClass) {\n extend(Component_CommonEventBehavior, superClass);\n\n\n /**\n * Called if this object instance is restored from a data-bundle. It can be used\n * re-assign event-handler, anonymous functions, etc.\n * \n * @method onDataBundleRestore.\n * @param Object data - The data-bundle\n * @param gs.ObjectCodecContext context - The codec-context.\n */\n\n Component_CommonEventBehavior.prototype.onDataBundleRestore = function(data, context) {\n var ref;\n if (this.object.rid != null) {\n this.object.record = RecordManager.commonEvents[this.object.rid];\n if ((ref = this.object.interpreter) != null) {\n ref.object = this;\n }\n this.object.commands = this.object.record.commands;\n }\n return this.setupEventHandlers();\n };\n\n\n /**\n * A component which allows a game object to execute common-events.\n *\n * @module gs\n * @class Component_CommonEventBehavior\n * @extends gs.Component\n * @memberof gs\n */\n\n function Component_CommonEventBehavior() {\n Component_CommonEventBehavior.__super__.constructor.call(this);\n\n /**\n * @property readyToStart\n * @type boolean\n * @private\n */\n this.readyToStart = false;\n\n /**\n * @property initialized\n * @type boolean\n * @private\n */\n this.initialized = false;\n this.callDepth = 0;\n }\n\n\n /**\n * Serializes the component into a data-bundle.\n *\n * @method toDataBundle\n * @return {Object} The data-bundle.\n */\n\n Component_CommonEventBehavior.prototype.toDataBundle = function() {\n return {\n initialized: this.initialized,\n readyToStart: this.readyToStart\n };\n };\n\n\n /**\n * Restores the component from a data-bundle\n *\n * @method restore\n * @param {Object} bundle- The data-bundle.\n */\n\n Component_CommonEventBehavior.prototype.restore = function(data) {\n this.setup();\n this.readyToStart = data.readyToStart;\n return this.initialized = data.initialized;\n };\n\n\n /**\n * Adds event-handlers for mouse/touch events\n *\n * @method setupEventHandlers\n */\n\n Component_CommonEventBehavior.prototype.setupEventHandlers = function() {\n if (!this.object.interpreter) {\n return;\n }\n if (this.object.record.startCondition === 1) {\n return this.object.interpreter.onFinish = (function(_this) {\n return function() {\n var ref;\n if (!_this.object.record.parallel) {\n return (ref = _this.object.events) != null ? ref.emit(\"finish\", _this) : void 0;\n }\n };\n })(this);\n } else {\n if (this.object.record.parallel) {\n return this.object.interpreter.onFinish = (function(_this) {\n return function(sender) {\n return _this.object.removeComponent(sender);\n };\n })(this);\n } else {\n return this.object.interpreter.onFinish = (function(_this) {\n return function(sender) {\n return _this.object.events.emit(\"finish\", _this);\n };\n })(this);\n }\n }\n };\n\n\n /**\n * Initializes the common-event.\n *\n * @method setup\n */\n\n Component_CommonEventBehavior.prototype.setup = function() {\n GameManager.variableStore.setupLocalVariables(this.object.record);\n this.object.record.parameters = this.object.record.parameters != null ? this.object.record.parameters : [];\n this.object.record.startCondition = this.object.record.startCondition != null ? this.object.record.startCondition : 0;\n this.object.record.parallel = this.object.record.parallel != null ? this.object.record.parallel : false;\n this.object.record.conditionSwitch = this.object.record.conditionSwitch != null ? this.object.record.conditionSwitch : null;\n this.object.record.conditionEnabled = this.object.record.conditionEnabled;\n if (this.object.record.startCondition === 1) {\n this.object.interpreter = new gs.Component_CommandInterpreter();\n this.object.interpreter.onFinish = (function(_this) {\n return function() {\n var ref;\n if (!_this.object.record.parallel) {\n return (ref = _this.object.events) != null ? ref.emit(\"finish\", _this) : void 0;\n } else {\n return _this.restart();\n }\n };\n })(this);\n this.object.interpreter.context.set(this.object.record.index, this.object.record);\n this.object.addComponent(this.object.interpreter);\n }\n return this.initialized = true;\n };\n\n\n /**\n * Starts the common-event interpreter with the specified parameters.\n * \n * @method start\n * @param {Object} parameters The common-event's parameters which can be configured in database.\n */\n\n Component_CommonEventBehavior.prototype.start = function(parameters) {\n var ref, ref1;\n this.startParameters = parameters;\n if ((this.object.interpreter != null) && !this.object.interpreter.isRunning) {\n this.object.commands = this.object.record.commands;\n this.readyToStart = true;\n if ((ref = this.object.events) != null) {\n ref.emit(\"start\", this);\n }\n }\n if (this.object.record.startCondition === 0 && this.object.record.parallel) {\n return (ref1 = this.object.events) != null ? ref1.emit(\"finish\", this) : void 0;\n }\n };\n\n\n /**\n * Initializes variable-store with the start-up parameters configured for the\n * common-event in Database.\n *\n * @method setupParameters\n */\n\n Component_CommonEventBehavior.prototype.setupParameters = function(parameters, parentContext) {\n var i, j, parameter, ref, results, value;\n if ((parameters != null) && (parameters.values != null)) {\n results = [];\n for (i = j = 0, ref = parameters.values.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {\n value = parameters.values[i];\n parameter = this.object.record.parameters[i];\n if ((parameter != null) && (value != null)) {\n GameManager.variableStore.setupTempVariables(parentContext);\n switch (parameter.type) {\n case 1:\n value = GameManager.variableStore.numberValueOf(value);\n GameManager.variableStore.setupTempVariables(this.object.interpreter.context);\n results.push(GameManager.variableStore.setNumberValueTo(parameter.numberVariable, value));\n break;\n case 2:\n value = GameManager.variableStore.booleanValueOf(value);\n GameManager.variableStore.setupTempVariables(this.object.interpreter.context);\n results.push(GameManager.variableStore.setBooleanValueTo(parameter.booleanVariable, value));\n break;\n case 3:\n value = GameManager.variableStore.stringValueOf(value);\n GameManager.variableStore.setupTempVariables(this.object.interpreter.context);\n results.push(GameManager.variableStore.setStringValueTo(parameter.stringVariable, value));\n break;\n default:\n results.push(void 0);\n }\n } else {\n results.push(void 0);\n }\n }\n return results;\n }\n };\n\n\n /**\n * Calls the common-event with the specified parameters.\n *\n * @method call\n * @param {Object} parameters The common-event's parameters which can be configured in database.\n */\n\n Component_CommonEventBehavior.prototype.call = function(parameters, settings, parentContext) {\n var interpreter;\n if (!this.object.record.singleInstance) {\n interpreter = new gs.Component_CommandInterpreter();\n interpreter.context.set(this.object.record.index + \"_\" + this.callDepth, this.object.record);\n GameManager.variableStore.clearTempVariables(interpreter.context);\n this.object.commands = this.object.record.commands;\n this.callDepth++;\n } else {\n interpreter = this.object.interpreter || new gs.Component_CommandInterpreter();\n interpreter.context.set(this.object.record.index, this.object.record);\n this.object.commands = this.object.record.commands;\n }\n interpreter.repeat = false;\n interpreter.object = this.object;\n if (settings) {\n interpreter.settings = settings;\n }\n this.object.interpreter = interpreter;\n GameManager.variableStore.setupTempVariables(interpreter.context);\n this.setupParameters(parameters, parentContext);\n if (this.object.record.parallel) {\n interpreter.onFinish = (function(_this) {\n return function(sender) {\n _this.object.removeComponent(sender);\n if (!_this.object.record.singleInstance) {\n return _this.callDepth--;\n }\n };\n })(this);\n interpreter.start();\n this.object.addComponent(interpreter);\n return null;\n } else {\n interpreter.onFinish = (function(_this) {\n return function(sender) {\n return _this.object.events.emit(\"finish\", _this);\n };\n })(this);\n return interpreter;\n }\n };\n\n\n /**\n * Stops the common-event interpreter.\n *\n * @method stop\n */\n\n Component_CommonEventBehavior.prototype.stop = function() {\n var ref;\n if (this.object.interpreter != null) {\n this.object.interpreter.stop();\n return (ref = this.object.events) != null ? ref.emit(\"finish\", this) : void 0;\n }\n };\n\n\n /**\n * Resumes a paused common-event interpreter.\n *\n * @method resume\n */\n\n Component_CommonEventBehavior.prototype.resume = function() {\n var ref, ref1;\n if (this.object.interpreter != null) {\n this.object.interpreter.resume();\n if ((ref = this.object.events) != null) {\n ref.emit(\"start\", this);\n }\n return (ref1 = this.object.events) != null ? ref1.emit(\"resume\", this) : void 0;\n }\n };\n\n\n /**\n * Restarts the common event. If the common event has a condition then the restart\n * will only happen if that condition is true.\n *\n * @method restart\n */\n\n Component_CommonEventBehavior.prototype.restart = function() {\n if (this.object.record.conditionEnabled) {\n if (GameManager.variableStore.booleanValueOf(this.object.record.conditionSwitch)) {\n return this.start();\n }\n } else {\n return this.start();\n }\n };\n\n\n /**\n * Restarts the common event if it is parallel and the conditions are met.\n *\n * @method restartIfNecessary\n */\n\n Component_CommonEventBehavior.prototype.restartIfNecessary = function() {\n if ((this.object.interpreter != null) && this.object.record.startCondition === 1 && !this.object.interpreter.isRunning) {\n return this.restart();\n }\n };\n\n\n /**\n * Updates the common-event interpreter.\n *\n * @method update\n */\n\n Component_CommonEventBehavior.prototype.update = function() {\n if (!this.initialized) {\n this.setup();\n }\n if ((this.object.interpreter != null) && this.readyToStart) {\n this.readyToStart = false;\n this.setupParameters(this.startParameters);\n this.object.interpreter.start();\n }\n return this.restartIfNecessary();\n };\n\n\n /**\n * Not implemented yet.\n *\n * @method erase\n */\n\n Component_CommonEventBehavior.prototype.erase = function() {};\n\n return Component_CommonEventBehavior;\n\n})(gs.Component);\n\ngs.Component_CommonEventBehavior = Component_CommonEventBehavior;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsNkJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7OzBDQVFBLG1CQUFBLEdBQXFCLFNBQUMsSUFBRCxFQUFPLE9BQVA7QUFDakIsUUFBQTtJQUFBLElBQUcsdUJBQUg7TUFDSSxJQUFDLENBQUEsTUFBTSxDQUFDLE1BQVIsR0FBaUIsYUFBYSxDQUFDLFlBQWEsQ0FBQSxJQUFDLENBQUEsTUFBTSxDQUFDLEdBQVI7O1dBQ3pCLENBQUUsTUFBckIsR0FBOEI7O01BQzlCLElBQUMsQ0FBQSxNQUFNLENBQUMsUUFBUixHQUFtQixJQUFDLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUh0Qzs7V0FJQSxJQUFDLENBQUEsa0JBQUQsQ0FBQTtFQUxpQjs7O0FBT3JCOzs7Ozs7Ozs7RUFRYSx1Q0FBQTtJQUNULDZEQUFBOztBQUVBOzs7OztJQUtBLElBQUMsQ0FBQSxZQUFELEdBQWdCOztBQUVoQjs7Ozs7SUFLQSxJQUFDLENBQUEsV0FBRCxHQUFlO0lBRWYsSUFBQyxDQUFBLFNBQUQsR0FBYTtFQWpCSjs7O0FBbUJiOzs7Ozs7OzBDQU1BLFlBQUEsR0FBYyxTQUFBO0FBQ1YsV0FBTztNQUNILFdBQUEsRUFBYSxJQUFDLENBQUEsV0FEWDtNQUVILFlBQUEsRUFBYyxJQUFDLENBQUEsWUFGWjs7RUFERzs7O0FBTWQ7Ozs7Ozs7MENBTUEsT0FBQSxHQUFTLFNBQUMsSUFBRDtJQUNMLElBQUMsQ0FBQSxLQUFELENBQUE7SUFDQSxJQUFDLENBQUEsWUFBRCxHQUFnQixJQUFJLENBQUM7V0FDckIsSUFBQyxDQUFBLFdBQUQsR0FBZSxJQUFJLENBQUM7RUFIZjs7O0FBS1Q7Ozs7OzswQ0FLQSxrQkFBQSxHQUFvQixTQUFBO0lBQ2hCLElBQUcsQ0FBQyxJQUFDLENBQUEsTUFBTSxDQUFDLFdBQVo7QUFBNkIsYUFBN0I7O0lBRUEsSUFBRyxJQUFDLENBQUEs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QTtJQUNoQixJQUFHLGlDQUFBLElBQXlCLElBQUMsQ0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWYsS0FBaUMsQ0FBMUQsSUFBZ0UsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUEzRjthQUNJLElBQUMsQ0FBQSxPQUFELENBQUEsRUFESjs7RUFEZ0I7OztBQUlwQjs7Ozs7OzBDQUtBLE1BQUEsR0FBUSxTQUFBO0lBQ0osSUFBRyxDQUFJLElBQUMsQ0FBQSxXQUFSO01BQ0ksSUFBQyxDQUFBLEtBQUQsQ0FBQSxFQURKOztJQUdBLElBQUcsaUNBQUEsSUFBeUIsSUFBQyxDQUFBLFlBQTdCO01BQ0ksSUFBQyxDQUFBLFlBQUQsR0FBZ0I7TUFDaEIsSUFBQyxDQUFBLGVBQUQsQ0FBaUIsSUFBQyxDQUFBLGVBQWxCO01BQ0EsSUFBQyxDQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBcEIsQ0FBQSxFQUhKOztXQUtBLElBQUMsQ0FBQSxrQkFBRCxDQUFBO0VBVEk7OztBQVdSOzs7Ozs7MENBS0EsS0FBQSxHQUFPLFNBQUEsR0FBQTs7OztHQXBRaUMsRUFBRSxDQUFDOztBQXNRL0MsRUFBRSxDQUFDLDZCQUFILEdBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfQ29tbW9uRXZlbnRCZWhhdmlvclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgQ29tcG9uZW50X0NvbW1vbkV2ZW50QmVoYXZpb3IgZXh0ZW5kcyBncy5Db21wb25lbnRcbiAgICAjIyMqXG4gICAgKiBDYWxsZWQgaWYgdGhpcyBvYmplY3QgaW5zdGFuY2UgaXMgcmVzdG9yZWQgZnJvbSBhIGRhdGEtYnVuZGxlLiBJdCBjYW4gYmUgdXNlZFxuICAgICogcmUtYXNzaWduIGV2ZW50LWhhbmRsZXIsIGFub255bW91cyBmdW5jdGlvbnMsIGV0Yy5cbiAgICAqIFxuICAgICogQG1ldGhvZCBvbkRhdGFCdW5kbGVSZXN0b3JlLlxuICAgICogQHBhcmFtIE9iamVjdCBkYXRhIC0gVGhlIGRhdGEtYnVuZGxlXG4gICAgKiBAcGFyYW0gZ3MuT2JqZWN0Q29kZWNDb250ZXh0IGNvbnRleHQgLSBUaGUgY29kZWMtY29udGV4dC5cbiAgICAjIyNcbiAgICBvbkRhdGFCdW5kbGVSZXN0b3JlOiAoZGF0YSwgY29udGV4dCkgLT5cbiAgICAgICAgaWYgQG9iamVjdC5yaWQ/XG4gICAgICAgICAgICBAb2JqZWN0LnJlY29yZCA9IFJlY29yZE1hbmFnZXIuY29tbW9uRXZlbnRzW0BvYmplY3QucmlkXVxuICAgICAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlcj8ub2JqZWN0ID0gdGhpc1xuICAgICAgICAgICAgQG9iamVjdC5jb21tYW5kcyA9IEBvYmplY3QucmVjb3JkLmNvbW1hbmRzXG4gICAgICAgIEBzZXR1cEV2ZW50SGFuZGxlcnMoKVxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBBIGNvbXBvbmVudCB3aGljaCBhbGxvd3MgYSBnYW1lIG9iamVjdCB0byBleGVjdXRlIGNvbW1vbi1ldmVudHMuXG4gICAgKlxuICAgICogQG1vZHVsZSBnc1xuICAgICogQGNsYXNzIENvbXBvbmVudF9Db21tb25FdmVudEJlaGF2aW9yXG4gICAgKiBAZXh0ZW5kcyBncy5Db21wb25lbnRcbiAgICAqIEBtZW1iZXJvZiBnc1xuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAoKSAtPlxuICAgICAgICBzdXBlcigpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IHJlYWR5VG9TdGFydFxuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAjIyNcbiAgICAgICAgQHJlYWR5VG9TdGFydCA9IG5vXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IGluaXRpYWxpemVkXG4gICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAaW5pdGlhbGl6ZWQgPSBub1xuICAgICAgICBcbiAgICAgICAgQGNhbGxEZXB0aCA9IDBcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogU2VyaWFsaXplcyB0aGUgY29tcG9uZW50IGludG8gYSBkYXRhLWJ1bmRsZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHRvRGF0YUJ1bmRsZVxuICAgICogQHJldHVybiB7T2JqZWN0fSBUaGUgZGF0YS1idW5kbGUuXG4gICAgIyMjIFxuICAgIHRvRGF0YUJ1bmRsZTogLT5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGluaXRpYWxpemVkOiBAaW5pdGlhbGl6ZWQsXG4gICAgICAgICAgICByZWFkeVRvU3RhcnQ6IEByZWFkeVRvU3RhcnRcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBSZXN0b3JlcyB0aGUgY29tcG9uZW50IGZyb20gYSBkYXRhLWJ1bmRsZVxuICAgICpcbiAgICAqIEBtZXRob2QgcmVzdG9yZVxuICAgICogQHBhcmFtIHtPYmplY3R9IGJ1bmRsZS0gVGhlIGRhdGEtYnVuZGxlLlxuICAgICMjIyAgICBcbiAgICByZXN0b3JlOiAoZGF0YSkgLT5cbiAgICAgICAgQHNldHVwKClcbiAgICAgICAgQHJlYWR5VG9TdGFydCA9IGRhdGEucmVhZHlUb1N0YXJ0XG4gICAgICAgIEBpbml0aWFsaXplZCA9IGRhdGEuaW5pdGlhbGl6ZWRcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogQWRkcyBldmVudC1oYW5kbGVycyBmb3IgbW91c2UvdG91Y2ggZXZlbnRzXG4gICAgKlxuICAgICogQG1ldGhvZCBzZXR1cEV2ZW50SGFuZGxlcnNcbiAgICAjIyMgXG4gICAgc2V0dXBFdmVudEhhbmRsZXJzOiAtPlxuICAgICAgICBpZiAhQG9iamVjdC5pbnRlcnByZXRlciB0aGVuIHJldHVyblxuICAgICAgICBcbiAgICAgICAgaWYgQG9iamVjdC5yZWNvcmQuc3RhcnRDb25kaXRpb24gPT0gMVxuICAgICAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlci5vbkZpbmlzaCA9ID0+IFxuICAgICAgICAgICAgICAgIGlmIG5vdCBAb2JqZWN0LnJlY29yZC5wYXJhbGxlbFxuICAgICAgICAgICAgICAgICAgICBAb2JqZWN0LmV2ZW50cz8uZW1pdChcImZpbmlzaFwiLCB0aGlzKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBAb2JqZWN0LnJlY29yZC5wYXJhbGxlbFxuICAgICAgICAgICAgICAgIEBvYmplY3QuaW50ZXJwcmV0ZXIub25GaW5pc2ggPSAoc2VuZGVyKSA9PiBAb2JqZWN0LnJlbW92ZUNvbXBvbmVudChzZW5kZXIpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlci5vbkZpbmlzaCA9IChzZW5kZXIpID0+IEBvYmplY3QuZXZlbnRzLmVtaXQoXCJmaW5pc2hcIiwgdGhpcylcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgIyMjKlxuICAgICogSW5pdGlhbGl6ZXMgdGhlIGNvbW1vbi1ldmVudC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHNldHVwXG4gICAgIyMjICBcbiAgICBzZXR1cDogLT5cbiAgICAgICAgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5zZXR1cExvY2FsVmFyaWFibGVzKEBvYmplY3QucmVjb3JkKVxuICAgICAgICBcbiAgICAgICAgQG9iamVjdC5yZWNvcmQucGFyYW1ldGVycyA9IGlmIEBvYmplY3QucmVjb3JkLnBhcmFtZXRlcnM/IHRoZW4gQG9iamVjdC5yZWNvcmQucGFyYW1ldGVycyBlbHNlIFtdXG4gICAgICAgIEBvYmplY3QucmVjb3JkLnN0YXJ0Q29uZGl0aW9uID0gaWYgQG9iamVjdC5yZWNvcmQuc3RhcnRDb25kaXRpb24/IHRoZW4gQG9iamVjdC5yZWNvcmQuc3RhcnRDb25kaXRpb24gZWxzZSAwXG4gICAgICAgIEBvYmplY3QucmVjb3JkLnBhcmFsbGVsID0gaWYgQG9iamVjdC5yZWNvcmQucGFyYWxsZWw/IHRoZW4gQG9iamVjdC5yZWNvcmQucGFyYWxsZWwgZWxzZSBub1xuICAgICAgICBAb2JqZWN0LnJlY29yZC5jb25kaXRpb25Td2l0Y2ggPSBpZiBAb2JqZWN0LnJlY29yZC5jb25kaXRpb25Td2l0Y2g/IHRoZW4gQG9iamVjdC5yZWNvcmQuY29uZGl0aW9uU3dpdGNoIGVsc2UgbnVsbFxuICAgICAgICBAb2JqZWN0LnJlY29yZC5jb25kaXRpb25FbmFibGVkID0gQG9iamVjdC5yZWNvcmQuY29uZGl0aW9uRW5hYmxlZFxuICAgICAgICBcbiAgICAgICAgaWYgQG9iamVjdC5yZWNvcmQuc3RhcnRDb25kaXRpb24gPT0gMVxuICAgICAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlciA9IG5ldyBncy5Db21wb25lbnRfQ29tbWFuZEludGVycHJldGVyKClcbiAgICAgICAgICAgIEBvYmplY3QuaW50ZXJwcmV0ZXIub25GaW5pc2ggPSA9PiBcbiAgICAgICAgICAgICAgICBpZiBub3QgQG9iamVjdC5yZWNvcmQucGFyYWxsZWxcbiAgICAgICAgICAgICAgICAgICAgQG9iamVjdC5ldmVudHM/LmVtaXQoXCJmaW5pc2hcIiwgdGhpcylcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIEByZXN0YXJ0KClcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBvYmplY3QuaW50ZXJwcmV0ZXIuY29udGV4dC5zZXQoQG9iamVjdC5yZWNvcmQuaW5kZXgsIEBvYmplY3QucmVjb3JkKVxuICAgICAgICAgICAgQG9iamVjdC5hZGRDb21wb25lbnQoQG9iamVjdC5pbnRlcnByZXRlcilcblxuICAgICAgICBAaW5pdGlhbGl6ZWQgPSB5ZXNcbiAgICBcbiAgICAjIyMqXG4gICAgKiBTdGFydHMgdGhlIGNvbW1vbi1ldmVudCBpbnRlcnByZXRlciB3aXRoIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy5cbiAgICAqIFxuICAgICogQG1ldGhvZCBzdGFydFxuICAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtZXRlcnMgVGhlIGNvbW1vbi1ldmVudCdzIHBhcmFtZXRlcnMgd2hpY2ggY2FuIGJlIGNvbmZpZ3VyZWQgaW4gZGF0YWJhc2UuXG4gICAgIyMjICAgXG4gICAgc3RhcnQ6IChwYXJhbWV0ZXJzKSAtPlxuICAgICAgICBAc3RhcnRQYXJhbWV0ZXJzID0gcGFyYW1ldGVycyAgICAgICAgXG4gICAgICAgICAgICAgICAgXG4gICAgICAgIGlmIEBvYmplY3QuaW50ZXJwcmV0ZXI/IGFuZCBub3QgQG9iamVjdC5pbnRlcnByZXRlci5pc1J1bm5pbmdcbiAgICAgICAgICAgIEBvYmplY3QuY29tbWFuZHMgPSBAb2JqZWN0LnJlY29yZC5jb21tYW5kc1xuICAgICAgICAgICAgQHJlYWR5VG9TdGFydCA9IHllc1xuICAgICAgICAgICAgQG9iamVjdC5ldmVudHM/LmVtaXQoXCJzdGFydFwiLCB0aGlzKVxuICAgICAgICAgICAgXG4gICAgICAgIGlmIEBvYmplY3QucmVjb3JkLnN0YXJ0Q29uZGl0aW9uID09IDAgYW5kIEBvYmplY3QucmVjb3JkLnBhcmFsbGVsXG4gICAgICAgICAgICBAb2JqZWN0LmV2ZW50cz8uZW1pdChcImZpbmlzaFwiLCB0aGlzKVxuICBcbiAgICAjIyMqXG4gICAgKiBJbml0aWFsaXplcyB2YXJpYWJsZS1zdG9yZSB3aXRoIHRoZSBzdGFydC11cCBwYXJhbWV0ZXJzIGNvbmZpZ3VyZWQgZm9yIHRoZVxuICAgICogY29tbW9uLWV2ZW50IGluIERhdGFiYXNlLlxuICAgICpcbiAgICAqIEBtZXRob2Qgc2V0dXBQYXJhbWV0ZXJzXG4gICAgIyMjXG4gICAgc2V0dXBQYXJhbWV0ZXJzOiAocGFyYW1ldGVycywgcGFyZW50Q29udGV4dCkgLT5cbiAgICAgICAgaWYgcGFyYW1ldGVycz8gYW5kIHBhcmFtZXRlcnMudmFsdWVzP1xuICAgICAgICAgICAgZm9yIGkgaW4gWzAuLi5wYXJhbWV0ZXJzLnZhbHVlcy5sZW5ndGhdXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJhbWV0ZXJzLnZhbHVlc1tpXVxuICAgICAgICAgICAgICAgIHBhcmFtZXRlciA9IEBvYmplY3QucmVjb3JkLnBhcmFtZXRlcnNbaV1cbiAgICAgICAgICAgICAgICBpZiBwYXJhbWV0ZXI/IGFuZCB2YWx1ZT9cbiAgICAgICAgICAgICAgICAgICAgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5zZXR1cFRlbXBWYXJpYWJsZXMocGFyZW50Q29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIHBhcmFtZXRlci50eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVuIDEgIyBOdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IEdhbWVNYW5hZ2VyLnZhcmlhYmxlU3RvcmUubnVtYmVyVmFsdWVPZih2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lTWFuYWdlci52YXJpYWJsZVN0b3JlLnNldHVwVGVtcFZhcmlhYmxlcyhAb2JqZWN0LmludGVycHJldGVyLmNvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5zZXROdW1iZXJWYWx1ZVRvKHBhcmFtZXRlci5udW1iZXJWYXJpYWJsZSwgdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVuIDIgIyBCb29sZWFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBHYW1lTWFuYWdlci52YXJpYWJsZVN0b3JlLmJvb2xlYW5WYWx1ZU9mKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdhbWVNYW5hZ2VyLnZhcmlhYmxlU3RvcmUuc2V0dXBUZW1wVmFyaWFibGVzKEBvYmplY3QuaW50ZXJwcmV0ZXIuY29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHYW1lTWFuYWdlci52YXJpYWJsZVN0b3JlLnNldEJvb2xlYW5WYWx1ZVRvKHBhcmFtZXRlci5ib29sZWFuVmFyaWFibGUsIHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiAzICMgU3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBHYW1lTWFuYWdlci52YXJpYWJsZVN0b3JlLnN0cmluZ1ZhbHVlT2YodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5zZXR1cFRlbXBWYXJpYWJsZXMoQG9iamVjdC5pbnRlcnByZXRlci5jb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdhbWVNYW5hZ2VyLnZhcmlhYmxlU3RvcmUuc2V0U3RyaW5nVmFsdWVUbyhwYXJhbWV0ZXIuc3RyaW5nVmFyaWFibGUsIHZhbHVlKVxuICAgICMjIypcbiAgICAqIENhbGxzIHRoZSBjb21tb24tZXZlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuXG4gICAgKlxuICAgICogQG1ldGhvZCBjYWxsXG4gICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1ldGVycyBUaGUgY29tbW9uLWV2ZW50J3MgcGFyYW1ldGVycyB3aGljaCBjYW4gYmUgY29uZmlndXJlZCBpbiBkYXRhYmFzZS5cbiAgICAjIyMgXG4gICAgY2FsbDogKHBhcmFtZXRlcnMsIHNldHRpbmdzLCBwYXJlbnRDb250ZXh0KSAtPlxuICAgICAgICBpZiBub3QgQG9iamVjdC5yZWNvcmQuc2luZ2xlSW5zdGFuY2VcbiAgICAgICAgICAgIGludGVycHJldGVyID0gbmV3IGdzLkNvbXBvbmVudF9Db21tYW5kSW50ZXJwcmV0ZXIoKVxuICAgICAgICAgICAgaW50ZXJwcmV0ZXIuY29udGV4dC5zZXQoQG9iamVjdC5yZWNvcmQuaW5kZXggKyBcIl9cIiArIEBjYWxsRGVwdGgsIEBvYmplY3QucmVjb3JkKVxuICAgICAgICAgICAgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5jbGVhclRlbXBWYXJpYWJsZXMoaW50ZXJwcmV0ZXIuY29udGV4dClcbiAgICAgICAgICAgIEBvYmplY3QuY29tbWFuZHMgPSBAb2JqZWN0LnJlY29yZC5jb21tYW5kc1xuICAgICAgICAgICAgQGNhbGxEZXB0aCsrXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGludGVycHJldGVyID0gQG9iamVjdC5pbnRlcnByZXRlciB8fCBuZXcgZ3MuQ29tcG9uZW50X0NvbW1hbmRJbnRlcnByZXRlcigpXG4gICAgICAgICAgICBpbnRlcnByZXRlci5jb250ZXh0LnNldChAb2JqZWN0LnJlY29yZC5pbmRleCwgQG9iamVjdC5yZWNvcmQpXG4gICAgICAgICAgICBAb2JqZWN0LmNvbW1hbmRzID0gQG9iamVjdC5yZWNvcmQuY29tbWFuZHNcbiAgICAgICAgICAgIFxuICAgICAgICBpbnRlcnByZXRlci5yZXBlYXQgPSBub1xuICAgICAgICBpbnRlcnByZXRlci5vYmplY3QgPSBAb2JqZWN0XG4gICAgICAgIGludGVycHJldGVyLnNldHRpbmdzID0gc2V0dGluZ3MgaWYgc2V0dGluZ3NcbiAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlciA9IGludGVycHJldGVyXG4gICAgICAgIFxuICAgICAgICBHYW1lTWFuYWdlci52YXJpYWJsZVN0b3JlLnNldHVwVGVtcFZhcmlhYmxlcyhpbnRlcnByZXRlci5jb250ZXh0KVxuICAgICAgICBAc2V0dXBQYXJhbWV0ZXJzKHBhcmFtZXRlcnMsIHBhcmVudENvbnRleHQpXG4gICAgICAgICAgICBcbiAgICAgICAgaWYgQG9iamVjdC5yZWNvcmQucGFyYWxsZWxcbiAgICAgICAgICAgIGludGVycHJldGVyLm9uRmluaXNoID0gKHNlbmRlcikgPT4gXG4gICAgICAgICAgICAgICAgQG9iamVjdC5yZW1vdmVDb21wb25lbnQoc2VuZGVyKVxuICAgICAgICAgICAgICAgIGlmIG5vdCBAb2JqZWN0LnJlY29yZC5zaW5nbGVJbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICBAY2FsbERlcHRoLS1cbiAgICAgICAgICAgIGludGVycHJldGVyLnN0YXJ0KClcbiAgICAgICAgICAgIEBvYmplY3QuYWRkQ29tcG9uZW50KGludGVycHJldGVyKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBpbnRlcnByZXRlci5vbkZpbmlzaCA9IChzZW5kZXIpID0+IFxuICAgICAgICAgICAgICAgIEBvYmplY3QuZXZlbnRzLmVtaXQoXCJmaW5pc2hcIiwgdGhpcylcbiAgICAgICAgICAgIHJldHVybiBpbnRlcnByZXRlclxuICAgICAgIFxuICAgICMjIypcbiAgICAqIFN0b3BzIHRoZSBjb21tb24tZXZlbnQgaW50ZXJwcmV0ZXIuXG4gICAgKlxuICAgICogQG1ldGhvZCBzdG9wXG4gICAgIyMjICAgICAgXG4gICAgc3RvcDogLT5cbiAgICAgICAgaWYgQG9iamVjdC5pbnRlcnByZXRlcj9cbiAgICAgICAgICAgIEBvYmplY3QuaW50ZXJwcmV0ZXIuc3RvcCgpXG4gICAgICAgICAgICBAb2JqZWN0LmV2ZW50cz8uZW1pdChcImZpbmlzaFwiLCB0aGlzKVxuICAgIFxuICAgICMjIypcbiAgICAqIFJlc3VtZXMgYSBwYXVzZWQgY29tbW9uLWV2ZW50IGludGVycHJldGVyLlxuICAgICpcbiAgICAqIEBtZXRob2QgcmVzdW1lXG4gICAgIyMjICAgICAgICAgICBcbiAgICByZXN1bWU6IC0+XG4gICAgICAgIGlmIEBvYmplY3QuaW50ZXJwcmV0ZXI/XG4gICAgICAgICAgICBAb2JqZWN0LmludGVycHJldGVyLnJlc3VtZSgpXG4gICAgICAgICAgICBAb2JqZWN0LmV2ZW50cz8uZW1pdChcInN0YXJ0XCIsIHRoaXMpXG4gICAgICAgICAgICBAb2JqZWN0LmV2ZW50cz8uZW1pdChcInJlc3VtZVwiLCB0aGlzKVxuICAgIFxuICAgIFxuICAgICMjIypcbiAgICAqIFJlc3RhcnRzIHRoZSBjb21tb24gZXZlbnQuIElmIHRoZSBjb21tb24gZXZlbnQgaGFzIGEgY29uZGl0aW9uIHRoZW4gdGhlIHJlc3RhcnRcbiAgICAqIHdpbGwgb25seSBoYXBwZW4gaWYgdGhhdCBjb25kaXRpb24gaXMgdHJ1ZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHJlc3RhcnRcbiAgICAjIyMgIFxuICAgIHJlc3RhcnQ6IC0+XG4gICAgICAgICAgICBpZiBAb2JqZWN0LnJlY29yZC5jb25kaXRpb25FbmFibGVkXG4gICAgICAgICAgICAgICAgaWYgR2FtZU1hbmFnZXIudmFyaWFibGVTdG9yZS5ib29sZWFuVmFsdWVPZihAb2JqZWN0LnJlY29yZC5jb25kaXRpb25Td2l0Y2gpXG4gICAgICAgICAgICAgICAgICAgIEBzdGFydCgpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgQHN0YXJ0KClcbiAgICBcbiAgICAjIyMqXG4gICAgKiBSZXN0YXJ0cyB0aGUgY29tbW9uIGV2ZW50IGlmIGl0IGlzIHBhcmFsbGVsIGFuZCB0aGUgY29uZGl0aW9ucyBhcmUgbWV0LlxuICAgICpcbiAgICAqIEBtZXRob2QgcmVzdGFydElmTmVjZXNzYXJ5XG4gICAgIyMjICAgXG4gICAgcmVzdGFydElmTmVjZXNzYXJ5OiAtPlxuICAgICAgICBpZiBAb2JqZWN0LmludGVycHJldGVyPyBhbmQgQG9iamVjdC5yZWNvcmQuc3RhcnRDb25kaXRpb24gPT0gMSBhbmQgbm90IEBvYmplY3QuaW50ZXJwcmV0ZXIuaXNSdW5uaW5nXG4gICAgICAgICAgICBAcmVzdGFydCgpXG4gICAgICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSBjb21tb24tZXZlbnQgaW50ZXJwcmV0ZXIuXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgICBcbiAgICB1cGRhdGU6IC0+XG4gICAgICAgIGlmIG5vdCBAaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgIEBzZXR1cCgpXG4gICAgICAgICAgICBcbiAgICAgICAgaWYgQG9iamVjdC5pbnRlcnByZXRlcj8gYW5kIEByZWFkeVRvU3RhcnRcbiAgICAgICAgICAgIEByZWFkeVRvU3RhcnQgPSBub1xuICAgICAgICAgICAgQHNldHVwUGFyYW1ldGVycyhAc3RhcnRQYXJhbWV0ZXJzKVxuICAgICAgICAgICAgQG9iamVjdC5pbnRlcnByZXRlci5zdGFydCgpXG4gICAgICAgICAgICBcbiAgICAgICAgQHJlc3RhcnRJZk5lY2Vzc2FyeSgpXG4gICAgICAgICAgICAgICAgXG4gICAgIyMjKlxuICAgICogTm90IGltcGxlbWVudGVkIHlldC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGVyYXNlXG4gICAgIyMjIFxuICAgIGVyYXNlOiAtPlxuICAgICAgICBcbmdzLkNvbXBvbmVudF9Db21tb25FdmVudEJlaGF2aW9yID0gQ29tcG9uZW50X0NvbW1vbkV2ZW50QmVoYXZpb3IiXX0=\n//# sourceURL=Component_CommonEventBehavior_162.js",
"parentId": "D3325122KACDEA4515SB731E37A42B9D779F"
},
"summary": [
"name",
"type",
"order"
]
}
|