difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/battle/battle_data.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, 'ce9eapVbdhKR6CjQwid529Q', 'battle_data');
// Scripts/mod/battle/battle_data.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
//      当前战斗的详细数据,包含双方数据
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
var BattleRoleData = require("battle_role_data");
 
var BattleBuffData = require("battle_buff_data");
 
var BattleData = cc.Class({
  "extends": BaseClass,
  ctor: function ctor() {
    this.fight_object_list = {};
    this.buff_play_list = {};
    this.halo_list = {};
    this.formation = {};
  },
  properties: {
    fight_object_list: null,
    // 双方战斗单位数据
    buff_play_list: null,
    // 拥有buff
    halo_list: null,
    // 两边阵营光环信息 group, type
    formation: null,
    // 战法信息,包含 group, formation_type, formation_lev
    combat_type: 0,
    // 战斗类型
    current_wave: 0,
    // 当前波数
    total_wave: 0,
    // 总波数
    action_count: 0,
    // 当前回合数
    target_role_name: "",
    // 如果对方是玩家,则是对方的角色名
    actor_role_name: "",
    // 发起方的玩家名字,用于看录像
    flag: 0,
    // 标识(0:正常进入 1:断线重连 2:切入观战)
    extra_args: [],
    // 战斗的额外参数,比如当前副本id,具体值跟战斗类型有关系
    is_active: false // 当前战斗是否处于激活状态
 
  },
  // 更新详细数据
  updateData: function updateData(data) {
    this.combat_type = data.combat_type;
    this.current_wave = data.current_wave;
    this.total_wave = data.total_wave;
    this.target_role_name = data.target_role_name;
    this.actor_role_name = data.actor_role_name;
    this.flag = data.flag ? data.flag : 0;
 
    if (data.extra_args) {
      this.extra_args = data.extra_args;
    }
 
    if (data.action_count) {
      this.action_count = data.action_count;
    } // 单位
 
 
    this.updateObjectData(data.objects); // buff
 
    this.updateBuffData(data.buffs); // 阵营
 
    this.updateHaloData(data.halo_list); // 阵法
 
    this.updateFormationData(data.formation);
    this.is_active = true;
  },
  // 更新单位数据
  updateObjectData: function updateObjectData(array) {
    if (array == null) {
      return;
    }
 
    for (var index = 0; index < array.length; index++) {
      var element = array[index];
 
      if (this.fight_object_list[element.pos] == null) {
        this.fight_object_list[element.pos] = new BattleRoleData();
      }
 
      this.fight_object_list[element.pos].updateData(element);
    }
  },
  // 更新BUFF数据
  updateBuffData: function updateBuffData(array) {
    if (array == null) {
      return;
    }
 
    for (var index = 0; index < array.length; index++) {
      var element = array[index];
 
      if (this.buff_play_list[element.target] == null) {
        this.buff_play_list[element.target] = {};
      }
 
      if (this.buff_play_list[element.target][element.id] == null) {
        this.buff_play_list[element.target][element.id] = new BattleBuffData();
      }
 
      this.buff_play_list[element.target][element.id].updateData(element);
    }
  },
  // 更新阵营数据
  updateHaloData: function updateHaloData(array) {
    if (array == null) {
      return;
    }
 
    for (var index = 0; index < array.length; index++) {
      var element = array[index];
 
      if (this.halo_list[element.group] == null) {
        this.halo_list[element.group] = {
          group: 0,
          type: 0
        };
      }
 
      this.halo_list[element.group].group = element.group;
      this.halo_list[element.group].type = element.type;
    }
  },
  // 更新阵法数据
  updateFormationData: function updateFormationData(array) {
    if (array == null) {
      return;
    }
 
    for (var index = 0; index < array.length; index++) {
      var element = array[index];
 
      if (this.formation[element.group] == null) {
        this.formation[element.group] = {
          formation_type: 0,
          formation_lev: 0
        };
      }
 
      this.formation[element.group].formation_type = element.formation_type;
      this.formation[element.group].formation_lev = element.formation_lev;
    }
  },
  // 当前战斗是否是激活,不清除数据是想重复利用
  setActive: function setActive(status) {
    if (status == false) {
      this.buff_play_list = {};
      this.is_active = false;
    }
  }
});
module.exports = BattleData;
 
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxiYXR0bGVcXGJhdHRsZV9kYXRhLmpzIl0sIm5hbWVzIjpbIkJhdHRsZVJvbGVEYXRhIiwicmVxdWlyZSIsIkJhdHRsZUJ1ZmZEYXRhIiwiQmF0dGxlRGF0YSIsImNjIiwiQ2xhc3MiLCJCYXNlQ2xhc3MiLCJjdG9yIiwiZmlnaHRfb2JqZWN0X2xpc3QiLCJidWZmX3BsYXlfbGlzdCIsImhhbG9fbGlzdCIsImZvcm1hdGlvbiIsInByb3BlcnRpZXMiLCJjb21iYXRfdHlwZSIsImN1cnJlbnRfd2F2ZSIsInRvdGFsX3dhdmUiLCJhY3Rpb25fY291bnQiLCJ0YXJnZXRfcm9sZV9uYW1lIiwiYWN0b3Jfcm9sZV9uYW1lIiwiZmxhZyIsImV4dHJhX2FyZ3MiLCJpc19hY3RpdmUiLCJ1cGRhdGVEYXRhIiwiZGF0YSIsInVwZGF0ZU9iamVjdERhdGEiLCJvYmplY3RzIiwidXBkYXRlQnVmZkRhdGEiLCJidWZmcyIsInVwZGF0ZUhhbG9EYXRhIiwidXBkYXRlRm9ybWF0aW9uRGF0YSIsImFycmF5IiwiaW5kZXgiLCJsZW5ndGgiLCJlbGVtZW50IiwicG9zIiwidGFyZ2V0IiwiaWQiLCJncm91cCIsInR5cGUiLCJmb3JtYXRpb25fdHlwZSIsImZvcm1hdGlvbl9sZXYiLCJzZXRBY3RpdmUiLCJzdGF0dXMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLGNBQWMsR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQTVCOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQTVCOztBQUVBLElBQUlFLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDdEIsYUFBU0MsU0FEYTtBQUV0QkMsRUFBQUEsSUFBSSxFQUFDLGdCQUFVO0FBQ1gsU0FBS0MsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxTQUFLQyxjQUFMLEdBQXNCLEVBQXRCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQixFQUFqQjtBQUNBLFNBQUtDLFNBQUwsR0FBaUIsRUFBakI7QUFDSCxHQVBxQjtBQVF0QkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JKLElBQUFBLGlCQUFpQixFQUFFLElBRFg7QUFDd0I7QUFDaENDLElBQUFBLGNBQWMsRUFBRSxJQUZSO0FBRXdCO0FBQ2hDQyxJQUFBQSxTQUFTLEVBQUUsSUFISDtBQUd3QjtBQUNoQ0MsSUFBQUEsU0FBUyxFQUFFLElBSkg7QUFJd0I7QUFDaENFLElBQUFBLFdBQVcsRUFBRSxDQUxMO0FBS3dCO0FBQ2hDQyxJQUFBQSxZQUFZLEVBQUUsQ0FOTjtBQU13QjtBQUNoQ0MsSUFBQUEsVUFBVSxFQUFFLENBUEo7QUFPd0I7QUFDaENDLElBQUFBLFlBQVksRUFBRSxDQVJOO0FBUXdCO0FBQ2hDQyxJQUFBQSxnQkFBZ0IsRUFBRSxFQVRWO0FBU3dCO0FBQ2hDQyxJQUFBQSxlQUFlLEVBQUUsRUFWVDtBQVV3QjtBQUNoQ0MsSUFBQUEsSUFBSSxFQUFFLENBWEU7QUFXd0I7QUFDaENDLElBQUFBLFVBQVUsRUFBRSxFQVpKO0FBWXdCO0FBQ2hDQyxJQUFBQSxTQUFTLEVBQUUsS0FiSCxDQWF3Qjs7QUFieEIsR0FSVTtBQXdCdEI7QUFDQUMsRUFBQUEsVUFBVSxFQUFDLG9CQUFTQyxJQUFULEVBQWM7QUFDckIsU0FBS1YsV0FBTCxHQUFtQlUsSUFBSSxDQUFDVixXQUF4QjtBQUNBLFNBQUtDLFlBQUwsR0FBb0JTLElBQUksQ0FBQ1QsWUFBekI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCUSxJQUFJLENBQUNSLFVBQXZCO0FBQ0EsU0FBS0UsZ0JBQUwsR0FBd0JNLElBQUksQ0FBQ04sZ0JBQTdCO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QkssSUFBSSxDQUFDTCxlQUE1QjtBQUNBLFNBQUtDLElBQUwsR0FBYUksSUFBSSxDQUFDSixJQUFOLEdBQWNJLElBQUksQ0FBQ0osSUFBbkIsR0FBMEIsQ0FBdEM7O0FBRUEsUUFBSUksSUFBSSxDQUFDSCxVQUFULEVBQXFCO0FBQ2pCLFdBQUtBLFVBQUwsR0FBa0JHLElBQUksQ0FBQ0gsVUFBdkI7QUFDSDs7QUFDRCxRQUFJRyxJQUFJLENBQUNQLFlBQVQsRUFBdUI7QUFDbkIsV0FBS0EsWUFBTCxHQUFvQk8sSUFBSSxDQUFDUCxZQUF6QjtBQUNILEtBYm9CLENBY3JCOzs7QUFDQSxTQUFLUSxnQkFBTCxDQUFzQkQsSUFBSSxDQUFDRSxPQUEzQixFQWZxQixDQWdCckI7O0FBQ0EsU0FBS0MsY0FBTCxDQUFvQkgsSUFBSSxDQUFDSSxLQUF6QixFQWpCcUIsQ0FrQnJCOztBQUNBLFNBQUtDLGNBQUwsQ0FBb0JMLElBQUksQ0FBQ2IsU0FBekIsRUFuQnFCLENBb0JyQjs7QUFDQSxTQUFLbUIsbUJBQUwsQ0FBeUJOLElBQUksQ0FBQ1osU0FBOUI7QUFDQSxTQUFLVSxTQUFMLEdBQWlCLElBQWpCO0FBQ0gsR0FoRHFCO0FBa0R0QjtBQUNBRyxFQUFBQSxnQkFBZ0IsRUFBQywwQkFBU00sS0FBVCxFQUFlO0FBQzVCLFFBQUdBLEtBQUssSUFBSSxJQUFaLEVBQWtCO0FBQUM7QUFBUTs7QUFDM0IsU0FBSyxJQUFJQyxLQUFLLEdBQUcsQ0FBakIsRUFBb0JBLEtBQUssR0FBR0QsS0FBSyxDQUFDRSxNQUFsQyxFQUEwQ0QsS0FBSyxFQUEvQyxFQUFtRDtBQUMvQyxVQUFNRSxPQUFPLEdBQUdILEtBQUssQ0FBQ0MsS0FBRCxDQUFyQjs7QUFDQSxVQUFJLEtBQUt2QixpQkFBTCxDQUF1QnlCLE9BQU8sQ0FBQ0MsR0FBL0IsS0FBdUMsSUFBM0MsRUFBaUQ7QUFDN0MsYUFBSzFCLGlCQUFMLENBQXVCeUIsT0FBTyxDQUFDQyxHQUEvQixJQUFzQyxJQUFJbEMsY0FBSixFQUF0QztBQUNIOztBQUNELFdBQUtRLGlCQUFMLENBQXVCeUIsT0FBTyxDQUFDQyxHQUEvQixFQUFvQ1osVUFBcEMsQ0FBK0NXLE9BQS9DO0FBQ0g7QUFDSixHQTVEcUI7QUE4RHRCO0FBQ0FQLEVBQUFBLGNBQWMsRUFBRSx3QkFBVUksS0FBVixFQUFpQjtBQUM3QixRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUFFO0FBQVM7O0FBQzlCLFNBQUssSUFBSUMsS0FBSyxHQUFHLENBQWpCLEVBQW9CQSxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsTUFBbEMsRUFBMENELEtBQUssRUFBL0MsRUFBbUQ7QUFDL0MsVUFBTUUsT0FBTyxHQUFHSCxLQUFLLENBQUNDLEtBQUQsQ0FBckI7O0FBQ0EsVUFBSSxLQUFLdEIsY0FBTCxDQUFvQndCLE9BQU8sQ0FBQ0UsTUFBNUIsS0FBdUMsSUFBM0MsRUFBaUQ7QUFDN0MsYUFBSzFCLGNBQUwsQ0FBb0J3QixPQUFPLENBQUNFLE1BQTVCLElBQXNDLEVBQXRDO0FBQ0g7O0FBQ0QsVUFBSSxLQUFLMUIsY0FBTCxDQUFvQndCLE9BQU8sQ0FBQ0UsTUFBNUIsRUFBb0NGLE9BQU8sQ0FBQ0csRUFBNUMsS0FBbUQsSUFBdkQsRUFBNkQ7QUFDekQsYUFBSzNCLGNBQUwsQ0FBb0J3QixPQUFPLENBQUNFLE1BQTVCLEVBQW9DRixPQUFPLENBQUNHLEVBQTVDLElBQWtELElBQUlsQyxjQUFKLEVBQWxEO0FBQ0g7O0FBQ0QsV0FBS08sY0FBTCxDQUFvQndCLE9BQU8sQ0FBQ0UsTUFBNUIsRUFBb0NGLE9BQU8sQ0FBQ0csRUFBNUMsRUFBZ0RkLFVBQWhELENBQTJEVyxPQUEzRDtBQUNIO0FBQ0osR0EzRXFCO0FBNkV0QjtBQUNBTCxFQUFBQSxjQUFjLEVBQUMsd0JBQVNFLEtBQVQsRUFBZTtBQUMxQixRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUFDO0FBQVE7O0FBQzVCLFNBQUssSUFBSUMsS0FBSyxHQUFHLENBQWpCLEVBQW9CQSxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsTUFBbEMsRUFBMENELEtBQUssRUFBL0MsRUFBbUQ7QUFDL0MsVUFBTUUsT0FBTyxHQUFHSCxLQUFLLENBQUNDLEtBQUQsQ0FBckI7O0FBQ0EsVUFBSSxLQUFLckIsU0FBTCxDQUFldUIsT0FBTyxDQUFDSSxLQUF2QixLQUFpQyxJQUFyQyxFQUEyQztBQUN2QyxhQUFLM0IsU0FBTCxDQUFldUIsT0FBTyxDQUFDSSxLQUF2QixJQUFnQztBQUFDQSxVQUFBQSxLQUFLLEVBQUUsQ0FBUjtBQUFXQyxVQUFBQSxJQUFJLEVBQUM7QUFBaEIsU0FBaEM7QUFDSDs7QUFDRCxXQUFLNUIsU0FBTCxDQUFldUIsT0FBTyxDQUFDSSxLQUF2QixFQUE4QkEsS0FBOUIsR0FBc0NKLE9BQU8sQ0FBQ0ksS0FBOUM7QUFDQSxXQUFLM0IsU0FBTCxDQUFldUIsT0FBTyxDQUFDSSxLQUF2QixFQUE4QkMsSUFBOUIsR0FBcUNMLE9BQU8sQ0FBQ0ssSUFBN0M7QUFDSDtBQUNKLEdBeEZxQjtBQTBGdEI7QUFDQVQsRUFBQUEsbUJBQW1CLEVBQUUsNkJBQVVDLEtBQVYsRUFBaUI7QUFDbEMsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBa0I7QUFBQztBQUFROztBQUMzQixTQUFLLElBQUlDLEtBQUssR0FBRyxDQUFqQixFQUFvQkEsS0FBSyxHQUFHRCxLQUFLLENBQUNFLE1BQWxDLEVBQTBDRCxLQUFLLEVBQS9DLEVBQW1EO0FBQy9DLFVBQU1FLE9BQU8sR0FBR0gsS0FBSyxDQUFDQyxLQUFELENBQXJCOztBQUNBLFVBQUksS0FBS3BCLFNBQUwsQ0FBZXNCLE9BQU8sQ0FBQ0ksS0FBdkIsS0FBaUMsSUFBckMsRUFBMkM7QUFDdkMsYUFBSzFCLFNBQUwsQ0FBZXNCLE9BQU8sQ0FBQ0ksS0FBdkIsSUFBZ0M7QUFBQ0UsVUFBQUEsY0FBYyxFQUFFLENBQWpCO0FBQW9CQyxVQUFBQSxhQUFhLEVBQUM7QUFBbEMsU0FBaEM7QUFDSDs7QUFDRCxXQUFLN0IsU0FBTCxDQUFlc0IsT0FBTyxDQUFDSSxLQUF2QixFQUE4QkUsY0FBOUIsR0FBK0NOLE9BQU8sQ0FBQ00sY0FBdkQ7QUFDQSxXQUFLNUIsU0FBTCxDQUFlc0IsT0FBTyxDQUFDSSxLQUF2QixFQUE4QkcsYUFBOUIsR0FBOENQLE9BQU8sQ0FBQ08sYUFBdEQ7QUFDSDtBQUNKLEdBckdxQjtBQXVHdEI7QUFDQUMsRUFBQUEsU0FBUyxFQUFDLG1CQUFTQyxNQUFULEVBQWdCO0FBQ3RCLFFBQUlBLE1BQU0sSUFBSSxLQUFkLEVBQW9CO0FBQ2hCLFdBQUtqQyxjQUFMLEdBQXNCLEVBQXRCO0FBQ0EsV0FBS1ksU0FBTCxHQUFpQixLQUFqQjtBQUNIO0FBQ0o7QUE3R3FCLENBQVQsQ0FBakI7QUFnSEFzQixNQUFNLENBQUNDLE9BQVAsR0FBaUJ6QyxVQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHNoaXJhaG9Ac3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg5b2T5YmN5oiY5paX55qE6K+m57uG5pWw5o2uLOWMheWQq+WPjOaWueaVsOaNrlxuLy8gPGJyLz5DcmVhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIEJhdHRsZVJvbGVEYXRhID0gcmVxdWlyZShcImJhdHRsZV9yb2xlX2RhdGFcIik7XG52YXIgQmF0dGxlQnVmZkRhdGEgPSByZXF1aXJlKFwiYmF0dGxlX2J1ZmZfZGF0YVwiKTtcblxudmFyIEJhdHRsZURhdGEgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNsYXNzLFxuICAgIGN0b3I6ZnVuY3Rpb24oKXtcbiAgICAgICAgdGhpcy5maWdodF9vYmplY3RfbGlzdCA9IHt9O1xuICAgICAgICB0aGlzLmJ1ZmZfcGxheV9saXN0ID0ge307XG4gICAgICAgIHRoaXMuaGFsb19saXN0ID0ge307XG4gICAgICAgIHRoaXMuZm9ybWF0aW9uID0ge307XG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZpZ2h0X29iamVjdF9saXN0OiBudWxsLCAgICAgICAgLy8g5Y+M5pa55oiY5paX5Y2V5L2N5pWw5o2uXG4gICAgICAgIGJ1ZmZfcGxheV9saXN0OiBudWxsLCAgICAgICAgICAgLy8g5oul5pyJYnVmZlxuICAgICAgICBoYWxvX2xpc3Q6IG51bGwsICAgICAgICAgICAgICAgIC8vIOS4pOi+uemYteiQpeWFieeOr+S/oeaBryBncm91cCwgdHlwZVxuICAgICAgICBmb3JtYXRpb246IG51bGwsICAgICAgICAgICAgICAgIC8vIOaImOazleS/oeaBryzljIXlkKsgZ3JvdXAsIGZvcm1hdGlvbl90eXBlLCBmb3JtYXRpb25fbGV2XG4gICAgICAgIGNvbWJhdF90eXBlOiAwLCAgICAgICAgICAgICAgICAgLy8g5oiY5paX57G75Z6LXG4gICAgICAgIGN1cnJlbnRfd2F2ZTogMCwgICAgICAgICAgICAgICAgLy8g5b2T5YmN5rOi5pWwXG4gICAgICAgIHRvdGFsX3dhdmU6IDAsICAgICAgICAgICAgICAgICAgLy8g5oC75rOi5pWwXG4gICAgICAgIGFjdGlvbl9jb3VudDogMCwgICAgICAgICAgICAgICAgLy8g5b2T5YmN5Zue5ZCI5pWwXG4gICAgICAgIHRhcmdldF9yb2xlX25hbWU6IFwiXCIsICAgICAgICAgICAvLyDlpoLmnpzlr7nmlrnmmK/njqnlrrbvvIzliJnmmK/lr7nmlrnnmoTop5LoibLlkI1cbiAgICAgICAgYWN0b3Jfcm9sZV9uYW1lOiBcIlwiLCAgICAgICAgICAgIC8vIOWPkei1t+aWueeahOeOqeWutuWQjeWtl++8jOeUqOS6jueci+W9leWDj1xuICAgICAgICBmbGFnOiAwLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIOagh+ivhigwOuato+W4uOi/m+WFpSAxOuaWree6v+mHjei/niAyOuWIh+WFpeinguaImClcbiAgICAgICAgZXh0cmFfYXJnczogW10sICAgICAgICAgICAgICAgICAvLyDmiJjmlpfnmoTpop3lpJblj4LmlbDvvIzmr5TlpoLlvZPliY3lia/mnKxpZO+8jOWFt+S9k+WAvOi3n+aImOaWl+exu+Wei+acieWFs+ezu1xuICAgICAgICBpc19hY3RpdmU6IGZhbHNlLCAgICAgICAgICAgICAgIC8vIOW9k+WJjeaImOaWl+aYr+WQpuWkhOS6jua/gOa0u+eKtuaAgVxuICAgIH0sXG5cbiAgICAvLyDmm7TmlrDor6bnu4bmlbDmja5cbiAgICB1cGRhdGVEYXRhOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICB0aGlzLmNvbWJhdF90eXBlID0gZGF0YS5jb21iYXRfdHlwZTtcbiAgICAgICAgdGhpcy5jdXJyZW50X3dhdmUgPSBkYXRhLmN1cnJlbnRfd2F2ZTtcbiAgICAgICAgdGhpcy50b3RhbF93YXZlID0gZGF0YS50b3RhbF93YXZlO1xuICAgICAgICB0aGlzLnRhcmdldF9yb2xlX25hbWUgPSBkYXRhLnRhcmdldF9yb2xlX25hbWU7XG4gICAgICAgIHRoaXMuYWN0b3Jfcm9sZV9uYW1lID0gZGF0YS5hY3Rvcl9yb2xlX25hbWU7XG4gICAgICAgIHRoaXMuZmxhZyA9IChkYXRhLmZsYWcpID8gZGF0YS5mbGFnIDogMDtcblxuICAgICAgICBpZiAoZGF0YS5leHRyYV9hcmdzKSB7XG4gICAgICAgICAgICB0aGlzLmV4dHJhX2FyZ3MgPSBkYXRhLmV4dHJhX2FyZ3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYWN0aW9uX2NvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbl9jb3VudCA9IGRhdGEuYWN0aW9uX2NvdW50O1xuICAgICAgICB9XG4gICAgICAgIC8vIOWNleS9jVxuICAgICAgICB0aGlzLnVwZGF0ZU9iamVjdERhdGEoZGF0YS5vYmplY3RzKTtcbiAgICAgICAgLy8gYnVmZlxuICAgICAgICB0aGlzLnVwZGF0ZUJ1ZmZEYXRhKGRhdGEuYnVmZnMpO1xuICAgICAgICAvLyDpmLXokKVcbiAgICAgICAgdGhpcy51cGRhdGVIYWxvRGF0YShkYXRhLmhhbG9fbGlzdCk7XG4gICAgICAgIC8vIOmYteazlVxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1hdGlvbkRhdGEoZGF0YS5mb3JtYXRpb24pO1xuICAgICAgICB0aGlzLmlzX2FjdGl2ZSA9IHRydWU7XG4gICAgfSxcblxuICAgIC8vIOabtOaWsOWNleS9jeaVsOaNrlxuICAgIHVwZGF0ZU9iamVjdERhdGE6ZnVuY3Rpb24oYXJyYXkpe1xuICAgICAgICBpZihhcnJheSA9PSBudWxsKSB7cmV0dXJuO31cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZ2h0X29iamVjdF9saXN0W2VsZW1lbnQucG9zXSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWdodF9vYmplY3RfbGlzdFtlbGVtZW50LnBvc10gPSBuZXcgQmF0dGxlUm9sZURhdGEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmlnaHRfb2JqZWN0X2xpc3RbZWxlbWVudC5wb3NdLnVwZGF0ZURhdGEoZWxlbWVudClcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDmm7TmlrBCVUZG5pWw5o2uXG4gICAgdXBkYXRlQnVmZkRhdGE6IGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICBpZiAoYXJyYXkgPT0gbnVsbCkgeyByZXR1cm47IH1cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgICAgIGlmICh0aGlzLmJ1ZmZfcGxheV9saXN0W2VsZW1lbnQudGFyZ2V0XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmX3BsYXlfbGlzdFtlbGVtZW50LnRhcmdldF0gPSB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYnVmZl9wbGF5X2xpc3RbZWxlbWVudC50YXJnZXRdW2VsZW1lbnQuaWRdID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZfcGxheV9saXN0W2VsZW1lbnQudGFyZ2V0XVtlbGVtZW50LmlkXSA9IG5ldyBCYXR0bGVCdWZmRGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idWZmX3BsYXlfbGlzdFtlbGVtZW50LnRhcmdldF1bZWxlbWVudC5pZF0udXBkYXRlRGF0YShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDmm7TmlrDpmLXokKXmlbDmja5cbiAgICB1cGRhdGVIYWxvRGF0YTpmdW5jdGlvbihhcnJheSl7XG4gICAgICAgIGlmIChhcnJheSA9PSBudWxsKSB7cmV0dXJuO31cbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhbG9fbGlzdFtlbGVtZW50Lmdyb3VwXSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYWxvX2xpc3RbZWxlbWVudC5ncm91cF0gPSB7Z3JvdXA6IDAsIHR5cGU6MH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFsb19saXN0W2VsZW1lbnQuZ3JvdXBdLmdyb3VwID0gZWxlbWVudC5ncm91cDtcbiAgICAgICAgICAgIHRoaXMuaGFsb19saXN0W2VsZW1lbnQuZ3JvdXBdLnR5cGUgPSBlbGVtZW50LnR5cGU7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8g5pu05paw6Zi15rOV5pWw5o2uXG4gICAgdXBkYXRlRm9ybWF0aW9uRGF0YTogZnVuY3Rpb24gKGFycmF5KSB7XG4gICAgICAgIGlmIChhcnJheSA9PSBudWxsKXtyZXR1cm47fVxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXkubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0aW9uW2VsZW1lbnQuZ3JvdXBdID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdGlvbltlbGVtZW50Lmdyb3VwXSA9IHtmb3JtYXRpb25fdHlwZTogMCwgZm9ybWF0aW9uX2xldjowfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mb3JtYXRpb25bZWxlbWVudC5ncm91cF0uZm9ybWF0aW9uX3R5cGUgPSBlbGVtZW50LmZvcm1hdGlvbl90eXBlO1xuICAgICAgICAgICAgdGhpcy5mb3JtYXRpb25bZWxlbWVudC5ncm91cF0uZm9ybWF0aW9uX2xldiA9IGVsZW1lbnQuZm9ybWF0aW9uX2xldjtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDlvZPliY3miJjmlpfmmK/lkKbmmK/mv4DmtLss5LiN5riF6Zmk5pWw5o2u5piv5oOz6YeN5aSN5Yip55SoXG4gICAgc2V0QWN0aXZlOmZ1bmN0aW9uKHN0YXR1cyl7XG4gICAgICAgIGlmIChzdGF0dXMgPT0gZmFsc2Upe1xuICAgICAgICAgICAgdGhpcy5idWZmX3BsYXlfbGlzdCA9IHt9XG4gICAgICAgICAgICB0aGlzLmlzX2FjdGl2ZSA9IGZhbHNlXG4gICAgICAgIH1cbiAgICB9LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQmF0dGxlRGF0YTsiXX0=