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
189
190
191
192
193
194
195
196
197
198
199
200
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/mainui/view/function_icon_vo.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, '6323c6c9RBEWoj+IY7WdwxX', 'function_icon_vo');
// Scripts/mod/mainui/view/function_icon_vo.js
 
"use strict";
 
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
 
/*-----------------------------------------------------+
 * 图标数据内存缓存数据,数据事件,更新自身
 * @author zys
 +-----------------------------------------------------*/
var FunctionIconVo = cc.Class({
  "extends": gcore.BaseEvent,
  ctor: function ctor() {
    this.config = arguments[0] || {};
    this.pos = this.config.type || 1;
    this.sort = this.config && this.config.index || 1;
    this.is_new = false;
    this.is_lock = arguments[1];
    this.tips_status = false;
    this.res_id = this.config.icon_res;
    this.unclick = false;
    this.status = 0;
    this.end_time = 0;
    this.action_id = 0;
    this.dynamicres_id = 0;
    this.real_name = ""; //动态调整的名字
 
    this.tips_status_list = {};
    this.real_res_id = ""; //动态调整的资源
  },
  setConfig: function setConfig(conf) {
    this.config = conf;
  },
  setLock: function setLock(status) {
    this.is_lock = status;
  },
  //刚进入主场景的时候锁定点击状态,避免引导出问题
  setUnclick: function setUnclick(status) {
    this.unclick = status;
  },
  update: function update(params) {
    if (params == null || Utils.next(params) == null) return;
 
    if (Utils.getArrLen(params) == 1) {
      var arg = params[0];
 
      if (_typeof(arg) == "object") {
        if (arg instanceof Object) {
          this.id = arg.id;
          this.status = arg.status; // 活动状态 0结束,1开始, 2准备
 
          this.int_args = arg.int_args; //整型数组: 默认第一个参数为持续时间(单位秒),第二个是图标资源
        }
 
        if (this.int_args && Utils.next(this.int_args) != null) {
          this.end_time = this.int_args[0].val || 0;
        }
 
        var ext_args = arg.ext_args;
 
        if (ext_args && Utils.next(ext_args)) {
          for (var k in ext_args) {
            var v = ext_args[k];
 
            if (v.type == 1) {
              this.dynamicres_id = v.val;
              this.real_name = v.str;
 
              if (v.val != 0) {
                this.changeDynamicResId();
              }
 
              break;
            }
          }
        }
      } else if (typeof arg == "number") {
        this.status = arg;
      } else if (typeof arg == "string") {
        var config = Config.function_data.data_convert_icon[arg];
 
        if (config) {
          this.real_name = config.icon_name;
          this.real_res_id = config.icon_res;
        }
      }
    } else if (Utils.getArrLen(params) >= 2) {
      this.status = params[0] || 0;
      this.end_time = params[1] || 0;
    }
 
    this.fire(FunctionIconVo.UPDATE_SELF_EVENT);
  },
  //设置图标红点状态, 如果是table则必须包含 bid 这个作为唯一标志去储存的
  setTipsStatus: function setTipsStatus(data) {
    if (data instanceof Object) {
      if (data.bid != null) {
        this.tips_status_list[data.bid] = data;
      } else {
        for (var k in data) {
          var v = data[k];
 
          if (data[k].bid != null) {
            this.tips_status_list[v.bid] = v;
          }
        }
      }
    } else {
      if (data != null) {
        this.tips_status = data;
      } else {
        this.tips_status = !this.tips_status;
      }
    }
 
    this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "tips_status");
  },
  //获取图标红点状态
  getTipsStatus: function getTipsStatus() {
    for (var k in this.tips_status_list) {
      var v = this.tips_status_list[k];
 
      if (v.num != null && typeof v.num == "number" && v.num > 0) {
        return true;
      }
    }
 
    return this.tips_status;
  },
  //获取当前红点的总数量
  getTipsNum: function getTipsNum() {
    var num = 0;
 
    if (this.tips_status_list && Utils.next(this.tips_status_list)) {
      for (var k in this.tips_status_list) {
        var v = this.tips_status_list[k];
        num = num + (v.num || 0);
      }
    }
 
    return num;
  },
  changeDynamicResId: function changeDynamicResId() {
    if (this.dynamicres_id == 0) return;
    var res_id = "icon" + this.dynamicres_id;
    this.changeIcon(res_id);
  },
  getBattleIconRes: function getBattleIconRes() {
    return this.dynamicres_id || 1;
  },
  changeIcon: function changeIcon(id) {
    this.res_id = id;
    this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "res_id");
  },
  changeTime: function changeTime(time) {
    this.end_time = time;
    this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "end_time");
  },
  //获取配置表的id
  getID: function getID() {
    if (this.config != null) {
      return this.config.id;
    }
  },
  _delete: function _delete() {}
});
FunctionIconVo.UPDATE_SELF_EVENT = "FunctionIconVo.UPDATE_SELF_EVENT";
FunctionIconVo.type = {
  right_top_1: 1,
  right_top_2: 2,
  right_bottom_1: 3,
  right_bottom_2: 4
};
module.exports = FunctionIconVo;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxtYWludWlcXHZpZXdcXGZ1bmN0aW9uX2ljb25fdm8uanMiXSwibmFtZXMiOlsiRnVuY3Rpb25JY29uVm8iLCJjYyIsIkNsYXNzIiwiZ2NvcmUiLCJCYXNlRXZlbnQiLCJjdG9yIiwiY29uZmlnIiwiYXJndW1lbnRzIiwicG9zIiwidHlwZSIsInNvcnQiLCJpbmRleCIsImlzX25ldyIsImlzX2xvY2siLCJ0aXBzX3N0YXR1cyIsInJlc19pZCIsImljb25fcmVzIiwidW5jbGljayIsInN0YXR1cyIsImVuZF90aW1lIiwiYWN0aW9uX2lkIiwiZHluYW1pY3Jlc19pZCIsInJlYWxfbmFtZSIsInRpcHNfc3RhdHVzX2xpc3QiLCJyZWFsX3Jlc19pZCIsInNldENvbmZpZyIsImNvbmYiLCJzZXRMb2NrIiwic2V0VW5jbGljayIsInVwZGF0ZSIsInBhcmFtcyIsIlV0aWxzIiwibmV4dCIsImdldEFyckxlbiIsImFyZyIsIk9iamVjdCIsImlkIiwiaW50X2FyZ3MiLCJ2YWwiLCJleHRfYXJncyIsImsiLCJ2Iiwic3RyIiwiY2hhbmdlRHluYW1pY1Jlc0lkIiwiQ29uZmlnIiwiZnVuY3Rpb25fZGF0YSIsImRhdGFfY29udmVydF9pY29uIiwiaWNvbl9uYW1lIiwiZmlyZSIsIlVQREFURV9TRUxGX0VWRU5UIiwic2V0VGlwc1N0YXR1cyIsImRhdGEiLCJiaWQiLCJnZXRUaXBzU3RhdHVzIiwibnVtIiwiZ2V0VGlwc051bSIsImNoYW5nZUljb24iLCJnZXRCYXR0bGVJY29uUmVzIiwiY2hhbmdlVGltZSIsInRpbWUiLCJnZXRJRCIsIl9kZWxldGUiLCJyaWdodF90b3BfMSIsInJpZ2h0X3RvcF8yIiwicmlnaHRfYm90dG9tXzEiLCJyaWdodF9ib3R0b21fMiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQUlBLGNBQWMsR0FBR0MsRUFBRSxDQUFDQyxLQUFI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Y0FBYyxDQUFDUyxJQUFmLEdBQXNCO0FBQ2xCcUQsRUFBQUEsV0FBVyxFQUFFLENBREs7QUFFbEJDLEVBQUFBLFdBQVcsRUFBRSxDQUZLO0FBR2xCQyxFQUFBQSxjQUFjLEVBQUUsQ0FIRTtBQUlsQkMsRUFBQUEsY0FBYyxFQUFFO0FBSkUsQ0FBdEI7QUFRQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkUsY0FBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAqIOWbvuagh+aVsOaNruWGheWtmOe8k+WtmOaVsOaNrizmlbDmja7kuovku7Ys5pu05paw6Ieq6LqrXHJcbiAqIEBhdXRob3IgenlzXHJcbiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxudmFyIEZ1bmN0aW9uSWNvblZvID0gY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogZ2NvcmUuQmFzZUV2ZW50LFxyXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gYXJndW1lbnRzWzBdIHx8IHt9O1xyXG4gICAgICAgIHRoaXMucG9zID0gdGhpcy5jb25maWcudHlwZSB8fCAxO1xyXG4gICAgICAgIHRoaXMuc29ydCA9IHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmluZGV4IHx8IDE7XHJcbiAgICAgICAgdGhpcy5pc19uZXcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzX2xvY2sgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgdGhpcy50aXBzX3N0YXR1cyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVzX2lkID0gdGhpcy5jb25maWcuaWNvbl9yZXM7XHJcbiAgICAgICAgdGhpcy51bmNsaWNrID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAwO1xyXG4gICAgICAgIHRoaXMuZW5kX3RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uX2lkID0gMDtcclxuICAgICAgICB0aGlzLmR5bmFtaWNyZXNfaWQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVhbF9uYW1lID0gXCJcIjsgICAgICAgIC8v5Yqo5oCB6LCD5pW055qE5ZCN5a2XXHJcbiAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0ID0ge307XHJcbiAgICAgICAgdGhpcy5yZWFsX3Jlc19pZCA9IFwiXCI7ICAgICAgLy/liqjmgIHosIPmlbTnmoTotYTmupBcclxuICAgIH0sXHJcblxyXG4gICAgc2V0Q29uZmlnOiBmdW5jdGlvbiAoY29uZikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZjtcclxuICAgIH0sXHJcblxyXG4gICAgc2V0TG9jazogZnVuY3Rpb24gKHN0YXR1cykge1xyXG4gICAgICAgIHRoaXMuaXNfbG9jayA9IHN0YXR1cztcclxuICAgIH0sXHJcblxyXG4gICAgLy/liJrov5vlhaXkuLvlnLrmma/nmoTml7blgJnplIHlrprngrnlh7vnirbmgIEs6YG/5YWN5byV5a+85Ye66Zeu6aKYXHJcbiAgICBzZXRVbmNsaWNrOiBmdW5jdGlvbiAoc3RhdHVzKSB7XHJcbiAgICAgICAgdGhpcy51bmNsaWNrID0gc3RhdHVzO1xyXG4gICAgfSxcclxuXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgICBpZiAocGFyYW1zID09IG51bGwgfHwgVXRpbHMubmV4dChwYXJhbXMpID09IG51bGwpIHJldHVyblxyXG4gICAgICAgIGlmIChVdGlscy5nZXRBcnJMZW4ocGFyYW1zKSA9PSAxKSB7XHJcbiAgICAgICAgICAgIGxldCBhcmcgPSBwYXJhbXNbMF1cclxuICAgICAgICAgICAgaWYodHlwZW9mKGFyZykgID09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBhcmcuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBhcmcuc3RhdHVzOyAgICAgICAvLyDmtLvliqjnirbmgIEgMOe7k+adn++8jDHlvIDlp4vvvIwgMuWHhuWkh1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50X2FyZ3MgPSBhcmcuaW50X2FyZ3M7ICAgLy/mlbTlnovmlbDnu4Q6IOm7mOiupOesrOS4gOS4quWPguaVsOS4uuaMgee7reaXtumXtCjljZXkvY3np5IpLOesrOS6jOS4quaYr+Wbvuagh+i1hOa6kFxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmludF9hcmdzICYmIFV0aWxzLm5leHQodGhpcy5pbnRfYXJncykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kX3RpbWUgPSB0aGlzLmludF9hcmdzWzBdLnZhbCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBleHRfYXJncyA9IGFyZy5leHRfYXJncztcclxuICAgICAgICAgICAgICAgIGlmIChleHRfYXJncyAmJiBVdGlscy5uZXh0KGV4dF9hcmdzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgaW4gZXh0X2FyZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSBleHRfYXJnc1trXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYudHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNyZXNfaWQgPSB2LnZhbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhbF9uYW1lID0gdi5zdHI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodi52YWwgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRHluYW1pY1Jlc0lkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiAoYXJnKSA9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IGFyZztcclxuICAgICAgICAgICAgfWVsc2UgaWYgKHR5cGVvZihhcmcpID09IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IENvbmZpZy5mdW5jdGlvbl9kYXRhLmRhdGFfY29udmVydF9pY29uW2FyZ107XHJcbiAgICAgICAgICAgICAgICBpZihjb25maWcpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhbF9uYW1lID0gY29uZmlnLmljb25fbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWxfcmVzX2lkID0gY29uZmlnLmljb25fcmVzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYgKFV0aWxzLmdldEFyckxlbihwYXJhbXMpID49IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBwYXJhbXNbMF0gfHwgMDtcclxuICAgICAgICAgICAgdGhpcy5lbmRfdGltZSA9IHBhcmFtc1sxXSB8fCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpcmUoRnVuY3Rpb25JY29uVm8uVVBEQVRFX1NFTEZfRVZFTlQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+iuvue9ruWbvuagh+e6oueCueeKtuaAgSwg5aaC5p6c5pivdGFibGXliJnlv4XpobvljIXlkKsgYmlkIOi/meS4quS9nOS4uuWUr+S4gOagh+W/l+WOu+WCqOWtmOeahFxyXG4gICAgc2V0VGlwc1N0YXR1czogZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5iaWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0W2RhdGEuYmlkXSA9IGRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBrIGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IGRhdGFba107XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba10uYmlkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0W3YuYmlkXSA9IHY7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1cyA9IGRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpcHNfc3RhdHVzID0gIXRoaXMudGlwc19zdGF0dXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maXJlKEZ1bmN0aW9uSWNvblZvLlVQREFURV9TRUxGX0VWRU5ULCBcInRpcHNfc3RhdHVzXCIpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPluWbvuagh+e6oueCueeKtuaAgVxyXG4gICAgZ2V0VGlwc1N0YXR1czogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gdGhpcy50aXBzX3N0YXR1c19saXN0KSB7XHJcbiAgICAgICAgICAgIHZhciB2ID0gdGhpcy50aXBzX3N0YXR1c19saXN0W2tdO1xyXG4gICAgICAgICAgICBpZiAodi5udW0gIT0gbnVsbCAmJiB0eXBlb2YgKHYubnVtKSA9PSBcIm51bWJlclwiICYmIHYubnVtID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGlwc19zdGF0dXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W5b2T5YmN57qi54K555qE5oC75pWw6YePXHJcbiAgICBnZXRUaXBzTnVtOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIG51bSA9IDA7XHJcbiAgICAgICAgaWYgKHRoaXMudGlwc19zdGF0dXNfbGlzdCAmJiBVdGlscy5uZXh0KHRoaXMudGlwc19zdGF0dXNfbGlzdCkpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnRpcHNfc3RhdHVzX2xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHZhciB2ID0gdGhpcy50aXBzX3N0YXR1c19saXN0W2tdO1xyXG4gICAgICAgICAgICAgICAgbnVtID0gbnVtICsgKHYubnVtIHx8IDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1cclxuICAgIH0sXHJcblxyXG4gICAgY2hhbmdlRHluYW1pY1Jlc0lkOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY3Jlc19pZCA9PSAwKSByZXR1cm5cclxuICAgICAgICB2YXIgcmVzX2lkID0gXCJpY29uXCIgKyB0aGlzLmR5bmFtaWNyZXNfaWQ7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJY29uKHJlc19pZCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldEJhdHRsZUljb25SZXM6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5keW5hbWljcmVzX2lkIHx8IDE7XHJcbiAgICB9LFxyXG5cclxuICAgIGNoYW5nZUljb246IGZ1bmN0aW9uIChpZCkge1xyXG4gICAgICAgIHRoaXMucmVzX2lkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5maXJlKEZ1bmN0aW9uSWNvblZvLlVQREFURV9TRUxGX0VWRU5ULCBcInJlc19pZFwiKVxyXG4gICAgfSxcclxuXHJcbiAgICBjaGFuZ2VUaW1lOiBmdW5jdGlvbiAodGltZSkge1xyXG4gICAgICAgIHRoaXMuZW5kX3RpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMuZmlyZShGdW5jdGlvbkljb25Wby5VUERBVEVfU0VMRl9FVkVOVCwgXCJlbmRfdGltZVwiKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPlumFjee9ruihqOeahGlkXHJcbiAgICBnZXRJRDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5pZDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIF9kZWxldGU6IGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICB9LFxyXG5cclxufSk7XHJcblxyXG5GdW5jdGlvbkljb25Wby5VUERBVEVfU0VMRl9FVkVOVCA9IFwiRnVuY3Rpb25JY29uVm8uVVBEQVRFX1NFTEZfRVZFTlRcIjtcclxuRnVuY3Rpb25JY29uVm8udHlwZSA9IHtcclxuICAgIHJpZ2h0X3RvcF8xOiAxLFxyXG4gICAgcmlnaHRfdG9wXzI6IDIsXHJcbiAgICByaWdodF9ib3R0b21fMTogMyxcclxuICAgIHJpZ2h0X2JvdHRvbV8yOiA0LFxyXG59XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbkljb25WbzsiXX0=