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
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/hero/equip/equip_cloth_window.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, '256db95kRdLz64F9e8mhsqK', 'equip_cloth_window');
// Scripts/mod/hero/equip/equip_cloth_window.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//     这里是描述这个窗体的作用的
// <br/>Create: 2019-03-26 10:00:54
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var EquipClothItem = require("equip_cloth_item");
 
var BackpackController = require("backpack_controller");
 
var BackPackConst = require("backpack_const");
 
var CommonScrollView = require("common_scrollview");
 
var ListHeight = {
  "NORMAL": 690,
  "CHANGE": 550
};
var EquipClothWindow = cc.Class({
  "extends": BaseView,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("hero", "equip_cloth_window");
    this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
 
    this.win_type = WinType.Full; //是否是全屏窗体  WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
 
    this.ctrl = arguments[0];
    this.model = this.ctrl.getModel();
  },
  // 初始化一些配置数据,可以用于声明一些变量之类的
  initConfig: function initConfig() {},
  // 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
  openCallBack: function openCallBack() {
    this.mask_nd = this.seekChild("mask");
    this.close_btn_nd = this.seekChild("close_btn");
    this.list_view_nd = this.seekChild("list_view");
    this.empty_tips_nd = this.seekChild("empty_tips");
    this.cur_equip_nd = this.seekChild("cur_equip");
    this.item_con_nd = this.seekChild("item_con");
    this.unequip_btn_nd = this.seekChild("unequip_btn");
    this.equip_name_lb = this.seekChild("equip_name", cc.Label);
    this.equip_lev_lb = this.seekChild("equip_lev", cc.Label);
    this.equip_score_lb = this.seekChild("equip_score", cc.Label);
    this.backpack_item = ItemsPool.getInstance().getItem("backpack_item");
    this.backpack_item.setParent(this.item_con_nd);
    this.backpack_item.setExtendData({
      effect: false,
      scale: 0.9
    });
    this.backpack_item.show();
    this.mask_nd.on(cc.Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
    this.close_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
    this.unequip_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickUnEquipBtn, this);
  },
  // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
  registerEvent: function registerEvent() {},
  // 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
  openRootWnd: function openRootWnd(params) {
    if (!params) return;
    this.equip_type = params.equip_type;
    this.partner_id = params.partner_id;
 
    if (params.data) {
      // 更换
      this.cur_equip_nd.active = true;
      this.list_view_nd.height = ListHeight.CHANGE;
      this.cur_equip_data = params.data;
      this.updateCurEquip(params.data);
    } else {
      // 添加
      this.cur_equip_nd.active = false;
      this.list_view_nd.height = ListHeight.NORMAL;
    }
 
    this.initRankList();
    this.updateWidgets();
  },
  // 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
  closeCallBack: function closeCallBack() {
    if (this.item_list) this.item_list.deleteMe();
 
    if (this.backpack_item) {
      this.backpack_item.deleteMe();
    }
 
    this.ctrl.openEquipPanel(false);
  },
  updateWidgets: function updateWidgets() {
    this.updateItemList();
  },
  onClickCloseBtn: function onClickCloseBtn() {
    this.ctrl.openEquipPanel(false);
  },
  initRankList: function initRankList() {
    var scorll_size = this.list_view_nd.getContentSize();
    var size = cc.size(scorll_size.width, scorll_size.height);
    var setting = {
      item_class: EquipClothItem,
      start_x: 0,
      space_x: 0,
      start_y: 0,
      space_y: 0,
      item_width: 620,
      item_height: 150,
      row: 0,
      col: 1,
      need_dynamic: true
    };
    this.item_list = new CommonScrollView();
    this.item_list.createScroll(this.list_view_nd, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, size, setting, cc.v2(0.5, 0));
  },
  updateItemList: function updateItemList() {
    var cur_eqips = [];
    var equip_list = BackpackController.getInstance().getModel().getBagItemList(BackPackConst.Bag_Code.EQUIPS) || {};
 
    for (var equip_i in equip_list) {
      var equip_info = equip_list[equip_i];
 
      if (equip_info && equip_info.config) {
        if (equip_info.config.type == this.equip_type) cur_eqips.push(equip_info);
      }
    }
 
    if (cur_eqips.length > 0) {
      this.empty_tips_nd.active = false;
      cur_eqips.sort(Utils.tableUpperSorter(["all_score"]));
    } else {
      this.empty_tips_nd.active = true;
    }
 
    this.item_list.setData(cur_eqips, this.selectItemEquip.bind(this));
  },
  selectItemEquip: function selectItemEquip(good_vo) {
    if (good_vo && this.partner_id) {
      this.ctrl.sender11010(this.partner_id, good_vo.id);
    }
 
    this.ctrl.openEquipPanel(false);
  },
  updateCurEquip: function updateCurEquip(equip_data) {
    this.equip_name_lb.string = equip_data.config.name;
    this.equip_lev_lb.string = equip_data.lev;
    this.equip_score_lb.string = equip_data.score;
    this.backpack_item.setData(equip_data);
  },
  onClickUnEquipBtn: function onClickUnEquipBtn() {
    if (this.partner_id && this.cur_equip_data) {
      this.ctrl.sender11011(this.partner_id, this.cur_equip_data.id);
    }
 
    this.ctrl.openEquipPanel(false);
  }
});
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxoZXJvXFxlcXVpcFxcZXF1aXBfY2xvdGhfd2luZG93LmpzIl0sIm5hbWVzIjpbIlBhdGhUb29sIiwicmVxdWlyZSIsIkVxdWlwQ2xvdGhJdGVtIiwiQmFja3BhY2tDb250cm9sbGVyIiwiQmFja1BhY2tDb25zdCIsIkNvbW1vblNjcm9sbFZpZXciLCJMaXN0SGVpZ2h0IiwiRXF1aXBDbG90aFdpbmRvdyIsImNjIiwiQ2xhc3MiLCJCYXNlVmlldyIsImN0b3IiLCJwcmVmYWJQYXRoIiwiZ2V0UHJlZmFiUGF0aCIsInZpZXdUYWciLCJTQ0VORV9UQUciLCJkaWFsb2d1ZSIsIndpbl90eXBlIiwiV2luVHlwZSIsIkZ1bGwiLCJjdHJsIiwiYXJndW1lbnRzIiwibW9kZWwiLCJnZXRNb2RlbCIsImluaXRDb25maWciLCJvcGVuQ2FsbEJhY2siLCJtYXNrX25kIiwic2Vla0NoaWxkIiwiY2xvc2VfYnRuX25kIiwibGlzdF92aWV3X25kIiwiZW1wdHlfdGlwc19uZCIsImN1cl9lcXVpcF9uZCIsIml0ZW1fY29uX25kIiwidW5lcXVpcF9idG5fbmQiLCJlcXVpcF9uYW1lX2xiIiwiTGFiZWwiLCJlcXVpcF9sZXZfbGIiLCJlcXVpcF9zY29yZV9sYiIsImJhY2twYWNrX2l0ZW0iLCJJdGVtc1Bvb2wiLCJnZXRJbnN0YW5jZSIsImdldEl0ZW0iLCJzZXRQYXJlbnQiLCJzZXRFeHRlbmREYXRhIiwiZWZmZWN0Iiwic2NhbGUiLCJzaG93Iiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfRU5EIiwib25DbGlja0Nsb3NlQnRuIiwib25DbGlja1VuRXF1aXBCdG4iLCJyZWdpc3RlckV2ZW50Iiwib3BlblJvb3RXbmQiLCJwYXJhbXMiLCJlcXVpcF90eXBlIiwicGFydG5lcl9pZCIsImRhdGEiLCJhY3RpdmUiLCJoZWlnaHQiLCJDSEFOR0UiLCJjdXJfZXF1aXBfZGF0YSIsInVwZGF0ZUN1ckVxdWlwIiwiTk9STUFMIiwiaW5pdFJhbmtMaXN0IiwidXBkYXRlV2lkZ2V0cyIsImNsb3NlQ2FsbEJhY2siLCJpdGVtX2xpc3QiLCJkZWxldGVNZSIsIm9wZW5FcXVpcFBhbmVsIiwidXBkYXRlSXRlbUxpc3QiLCJzY29ybGxfc2l6ZSIsImdldENvbnRlbnRTaXplIiwic2l6ZSIsIndpZHRoIiwic2V0dGluZyIsIml0ZW1fY2xhc3MiLCJzdGFydF94Iiwic3BhY2VfeCIsInN0YXJ0X3kiLCJzcGFjZV95IiwiaXRlbV93aWR0aCIsIml0ZW1faGVpZ2h0Iiwicm93IiwiY29sIiwibmVlZF9keW5hbWljIiwiY3JlYXRlU2Nyb2xsIiwidjIiLCJTY3JvbGxWaWV3RGlyIiwidmVydGljYWwiLCJTY3JvbGxWaWV3U3RhcnRQb3MiLCJ0b3AiLCJjdXJfZXFpcHMiLCJlcXVpcF9saXN0IiwiZ2V0QmFnSXRlbUxpc3QiLCJCYWdfQ29kZSIsIkVRVUlQUyIsImVxdWlwX2kiLCJlcXVpcF9pbmZvIiwiY29uZmlnIiwidHlwZSIsInB1c2giLCJsZW5ndGgiLCJzb3J0IiwiVXRpbHMiLCJ0YWJsZVVwcGVyU29ydGVyIiwic2V0RGF0YSIsInNlbGVjdEl0ZW1FcXVpcCIsImJpbmQiLCJnb29kX3ZvIiwic2VuZGVyMTEwMTAiLCJpZCIsImVxdWlwX2RhdGEiLCJzdHJpbmciLCJuYW1lIiwibGV2Iiwic2NvcmUiLCJzZW5kZXIxMTAxMSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxRQUFRLEdBQWFDLE9BQU8sQ0FBQyxVQUFELENBQWhDOztBQUNBLElBQUlDLGNBQWMsR0FBT0QsT0FBTyxDQUFDLGtCQUFELENBQWhDOztBQUNBLElBQUlFLGtCQUFrQixHQUFHRixPQUFPLENBQUMscUJBQUQsQ0FBaEM7O0FBQ0EsSUFBSUcsYUFBYSxHQUFRSCxPQUFPLENBQUMsZ0JBQUQsQ0FBaEM7O0FBQ0EsSUFBSUksZ0JBQWdCLEdBQUtKLE9BQU8sQ0FBQyxtQkFBRCxDQUFoQzs7QUFF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QUFMLENBQW9CNkUsTUFBcEIsR0FBNkJELFVBQVUsQ0FBQ0ksS0FBeEM7QUFDQSxTQUFLL0UsYUFBTCxDQUFtQnFFLE9BQW5CLENBQTJCTSxVQUEzQjtBQUNILEdBdkkyQjtBQXlJNUI3RCxFQUFBQSxpQkFBaUIsRUFBRSw2QkFBVztBQUMxQixRQUFHLEtBQUtLLFVBQUwsSUFBbUIsS0FBS0ssY0FBM0IsRUFBMkM7QUFDdkMsV0FBSzFDLElBQUwsQ0FBVWtHLFdBQVYsQ0FBc0IsS0FBSzdELFVBQTNCLEVBQXVDLEtBQUtLLGNBQUwsQ0FBb0JrRCxFQUEzRDtBQUNIOztBQUNELFNBQUs1RixJQUFMLENBQVVrRCxjQUFWLENBQXlCLEtBQXpCO0FBQ0g7QUE5STJCLENBQVQsQ0FBdkIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICDov5nph4zmmK/mj4/ov7Dov5nkuKrnqpfkvZPnmoTkvZznlKjnmoRcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTI2IDEwOjAwOjU0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFBhdGhUb29sICAgICAgICAgICA9IHJlcXVpcmUoXCJwYXRodG9vbFwiKTtcbnZhciBFcXVpcENsb3RoSXRlbSAgICAgPSByZXF1aXJlKFwiZXF1aXBfY2xvdGhfaXRlbVwiKTtcbnZhciBCYWNrcGFja0NvbnRyb2xsZXIgPSByZXF1aXJlKFwiYmFja3BhY2tfY29udHJvbGxlclwiKTtcbnZhciBCYWNrUGFja0NvbnN0ICAgICAgPSByZXF1aXJlKFwiYmFja3BhY2tfY29uc3RcIik7XG52YXIgQ29tbW9uU2Nyb2xsVmlldyAgID0gcmVxdWlyZShcImNvbW1vbl9zY3JvbGx2aWV3XCIpO1xuXG52YXIgTGlzdEhlaWdodCA9IHtcbiAgICBcIk5PUk1BTFwiOiA2OTAsXG4gICAgXCJDSEFOR0VcIjogNTUwLFxufVxuXG52YXIgRXF1aXBDbG90aFdpbmRvdyA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlVmlldyxcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMucHJlZmFiUGF0aCA9IFBhdGhUb29sLmdldFByZWZhYlBhdGgoXCJoZXJvXCIsIFwiZXF1aXBfY2xvdGhfd2luZG93XCIpO1xuICAgICAgICB0aGlzLnZpZXdUYWcgPSBTQ0VORV9UQUcuZGlhbG9ndWU7ICAgICAgICAgICAgICAgIC8v6K+l56qX5L2T5omA5bGedWnlsYLnuqcs5YWo5bGPdWnpnIDopoHlnKh1aeWxgizpnZ7lhajlsY91aeWcqGRpYWxvZ3Vl5bGCLOi/meS4quimgeazqOaEj1xuICAgICAgICB0aGlzLndpbl90eXBlID0gV2luVHlwZS5GdWxsOyAgICAgICAgICAgICAgIC8v5piv5ZCm5piv5YWo5bGP56qX5L2TICBXaW5UeXBlLkZ1bGwsIFdpblR5cGUuQmlnLCBXaW5UeXBlLk1pbmksIFdpblR5cGUuVGlwc1xuXG4gICAgICAgIHRoaXMuY3RybCA9IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuY3RybC5nZXRNb2RlbCgpO1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbkuIDkupvphY3nva7mlbDmja4s5Y+v5Lul55So5LqO5aOw5piO5LiA5Lqb5Y+Y6YeP5LmL57G755qEXG4gICAgaW5pdENvbmZpZzpmdW5jdGlvbigpe1xuXG4gICAgfSxcblxuICAgIC8vIOmihOWItuS9k+WKoOi9veWujOaIkOS5i+WQjueahOWbnuiwgyzlj6/ku6XlnKjov5nph4zmjZXojrfnm7jlhbPoioLngrnmiJbogIXnu4Tku7ZcbiAgICBvcGVuQ2FsbEJhY2s6ZnVuY3Rpb24oKXtcbiAgICAgICAgdGhpcy5tYXNrX25kICAgICAgICA9IHRoaXMuc2Vla0NoaWxkKFwibWFza1wiKTtcbiAgICAgICAgdGhpcy5jbG9zZV9idG5fbmQgICA9IHRoaXMuc2Vla0NoaWxkKFwiY2xvc2VfYnRuXCIpO1xuICAgICAgICB0aGlzLmxpc3Rfdmlld19uZCAgID0gdGhpcy5zZWVrQ2hpbGQoXCJsaXN0X3ZpZXdcIik7XG4gICAgICAgIHRoaXMuZW1wdHlfdGlwc19uZCAgPSB0aGlzLnNlZWtDaGlsZChcImVtcHR5X3RpcHNcIik7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmN1cl9lcXVpcF9uZCAgID0gdGhpcy5zZWVrQ2hpbGQoXCJjdXJfZXF1aXBcIik7XG4gICAgICAgIHRoaXMuaXRlbV9jb25fbmQgICAgPSB0aGlzLnNlZWtDaGlsZChcIml0ZW1fY29uXCIpO1xuICAgICAgICB0aGlzLnVuZXF1aXBfYnRuX25kICAgPSB0aGlzLnNlZWtDaGlsZChcInVuZXF1aXBfYnRuXCIpO1xuXG4gICAgICAgIHRoaXMuZXF1aXBfbmFtZV9sYiAgPSB0aGlzLnNlZWtDaGlsZChcImVxdWlwX25hbWVcIiwgY2MuTGFiZWwpO1xuICAgICAgICB0aGlzLmVxdWlwX2xldl9sYiAgID0gdGhpcy5zZWVrQ2hpbGQoXCJlcXVpcF9sZXZcIiwgY2MuTGFiZWwpO1xuICAgICAgICB0aGlzLmVxdWlwX3Njb3JlX2xiID0gdGhpcy5zZWVrQ2hpbGQoXCJlcXVpcF9zY29yZVwiLCBjYy5MYWJlbCk7XG5cbiAgICAgICAgdGhpcy5iYWNrcGFja19pdGVtID0gSXRlbXNQb29sLmdldEluc3RhbmNlKCkuZ2V0SXRlbShcImJhY2twYWNrX2l0ZW1cIik7XG4gICAgICAgIHRoaXMuYmFja3BhY2tfaXRlbS5zZXRQYXJlbnQodGhpcy5pdGVtX2Nvbl9uZCk7XG4gICAgICAgIHRoaXMuYmFja3BhY2tfaXRlbS5zZXRFeHRlbmREYXRhKHtlZmZlY3Q6IGZhbHNlLCBzY2FsZTogMC45fSk7XG4gICAgICAgIHRoaXMuYmFja3BhY2tfaXRlbS5zaG93KCk7XG5cbiAgICAgICAgdGhpcy5tYXNrX25kLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgdGhpcy5vbkNsaWNrQ2xvc2VCdG4sIHRoaXMpO1xuICAgICAgICB0aGlzLmNsb3NlX2J0bl9uZC5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsIHRoaXMub25DbGlja0Nsb3NlQnRuLCB0aGlzKTtcbiAgICAgICAgdGhpcy51bmVxdWlwX2J0bl9uZC5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsIHRoaXMub25DbGlja1VuRXF1aXBCdG4sIHRoaXMpO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozkuovku7bnm5HlkKznmoTmjqXlj6Ms5LiN6ZyA6KaB5omL5Yqo6LCD55SoLOWmguaenOaYr+S9v+eUqGdjb3JlLkdsb2JhbEV2ZW5055uR5ZCsLOWPr+S7peebtOaOpeiwg+eUqGFkZEdsb2JhbEV2ZW50XG4gICAgcmVnaXN0ZXJFdmVudDpmdW5jdGlvbigpe1xuXG4gICAgfSxcblxuICAgIC8vIOmihOWItuS9k+WKoOi9veWujOaIkOS5i+WQjizmt7vliqDliLDlr7nlupTkuLvoioLngrnkuYvlkI7nmoTlm57osIMs5Lmf5bCx5piv5LiA5Liq56qX5L2T55qE5q2j5byP5YWl5Y+jLOWPr+S7peiuvue9ruS4gOS6m+aVsOaNruS6hlxuICAgIG9wZW5Sb290V25kOmZ1bmN0aW9uKHBhcmFtcyl7XG4gICAgICAgIGlmICghcGFyYW1zKSByZXR1cm47XG4gICAgICAgIHRoaXMuZXF1aXBfdHlwZSA9IHBhcmFtcy5lcXVpcF90eXBlO1xuICAgICAgICB0aGlzLnBhcnRuZXJfaWQgPSBwYXJhbXMucGFydG5lcl9pZDtcbiAgICAgICAgaWYgKHBhcmFtcy5kYXRhKSB7ICAgICAgICAgICAgIC8vIOabtOaNolxuICAgICAgICAgICAgdGhpcy5jdXJfZXF1aXBfbmQuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubGlzdF92aWV3X25kLmhlaWdodCA9IExpc3RIZWlnaHQuQ0hBTkdFO1xuICAgICAgICAgICAgdGhpcy5jdXJfZXF1aXBfZGF0YSA9IHBhcmFtcy5kYXRhO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDdXJFcXVpcChwYXJhbXMuZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAvLyDmt7vliqBcbiAgICAgICAgICAgIHRoaXMuY3VyX2VxdWlwX25kLmFjdGl2ZSA9IGZhbHNlOyAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5saXN0X3ZpZXdfbmQuaGVpZ2h0ID0gTGlzdEhlaWdodC5OT1JNQUw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0UmFua0xpc3QoKTtcbiAgICAgICAgdGhpcy51cGRhdGVXaWRnZXRzKCk7XG4gICAgfSxcblxuICAgIC8vIOWFs+mXreeql+S9k+WbnuiwgyzpnIDopoHlnKjov5nph4zosIPnlKjor6XnqpfkvZPmiYDlsZ5jb250cm9sbGVy55qEY2xvc2Xmlrnms5XmsqHnlKjkuo7nva7nqbror6XnqpfkvZPlrp7kvovlr7nosaFcbiAgICBjbG9zZUNhbGxCYWNrOmZ1bmN0aW9uKCl7XG4gICAgICAgIGlmICh0aGlzLml0ZW1fbGlzdClcbiAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0LmRlbGV0ZU1lKCk7XG4gICAgICAgIGlmKHRoaXMuYmFja3BhY2tfaXRlbSl7XG4gICAgICAgICAgICB0aGlzLmJhY2twYWNrX2l0ZW0uZGVsZXRlTWUoKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3RybC5vcGVuRXF1aXBQYW5lbChmYWxzZSk7XG4gICAgfSxcblxuICAgIHVwZGF0ZVdpZGdldHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1MaXN0KCk7XG4gICAgfSxcblxuICAgIG9uQ2xpY2tDbG9zZUJ0bjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuY3RybC5vcGVuRXF1aXBQYW5lbChmYWxzZSk7XG4gICAgfSxcblxuICAgIGluaXRSYW5rTGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBzY29ybGxfc2l6ZSA9IHRoaXMubGlzdF92aWV3X25kLmdldENvbnRlbnRTaXplKCk7XG4gICAgICAgIHZhciBzaXplID0gY2Muc2l6ZShzY29ybGxfc2l6ZS53aWR0aCwgc2NvcmxsX3NpemUuaGVpZ2h0KTtcbiAgICAgICAgdmFyIHNldHRpbmcgPSB7XG4gICAgICAgICAgICBpdGVtX2NsYXNzOiBFcXVpcENsb3RoSXRlbSxcbiAgICAgICAgICAgIHN0YXJ0X3g6IDAsXG4gICAgICAgICAgICBzcGFjZV94OiAwLFxuICAgICAgICAgICAgc3RhcnRfeTogMCxcbiAgICAgICAgICAgIHNwYWNlX3k6IDAsXG4gICAgICAgICAgICBpdGVtX3dpZHRoOiA2MjAsXG4gICAgICAgICAgICBpdGVtX2hlaWdodDogMTUwLFxuICAgICAgICAgICAgcm93OiAwLFxuICAgICAgICAgICAgY29sOiAxLFxuICAgICAgICAgICAgbmVlZF9keW5hbWljOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtX2xpc3QgPSBuZXcgQ29tbW9uU2Nyb2xsVmlldygpO1xuICAgICAgICB0aGlzLml0ZW1fbGlzdC5jcmVhdGVTY3JvbGwodGhpcy5saXN0X3ZpZXdfbmQsIGNjLnYyKDAsIDApLCBTY3JvbGxWaWV3RGlyLnZlcnRpY2FsLCBTY3JvbGxWaWV3U3RhcnRQb3MudG9wLCBzaXplLCBzZXR0aW5nLCBjYy52MigwLjUsIDApKTtcbiAgICB9LFxuXG4gICAgdXBkYXRlSXRlbUxpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY3VyX2VxaXBzID0gW107XG4gICAgICAgIHZhciBlcXVpcF9saXN0ID0gQmFja3BhY2tDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0TW9kZWwoKS5nZXRCYWdJdGVtTGlzdChCYWNrUGFja0NvbnN0LkJhZ19Db2RlLkVRVUlQUykgfHwge307XG5cbiAgICAgICAgZm9yICh2YXIgZXF1aXBfaSBpbiBlcXVpcF9saXN0KSB7XG4gICAgICAgICAgICB2YXIgZXF1aXBfaW5mbyA9IGVxdWlwX2xpc3RbZXF1aXBfaV07XG4gICAgICAgICAgICBpZiAoZXF1aXBfaW5mbyAmJiBlcXVpcF9pbmZvLmNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChlcXVpcF9pbmZvLmNvbmZpZy50eXBlID09IHRoaXMuZXF1aXBfdHlwZSlcbiAgICAgICAgICAgICAgICAgICAgY3VyX2VxaXBzLnB1c2goZXF1aXBfaW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VyX2VxaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHlfdGlwc19uZC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGN1cl9lcWlwcy5zb3J0KFV0aWxzLnRhYmxlVXBwZXJTb3J0ZXIoW1wiYWxsX3Njb3JlXCJdKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHlfdGlwc19uZC5hY3RpdmUgPSB0cnVlOyAgICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pdGVtX2xpc3Quc2V0RGF0YShjdXJfZXFpcHMsIHRoaXMuc2VsZWN0SXRlbUVxdWlwLmJpbmQodGhpcykpO1xuICAgIH0sXG5cbiAgICBzZWxlY3RJdGVtRXF1aXA6IGZ1bmN0aW9uKGdvb2Rfdm8pIHtcbiAgICAgICAgaWYgKGdvb2Rfdm8gJiYgdGhpcy5wYXJ0bmVyX2lkKSB7XG4gICAgICAgICAgICB0aGlzLmN0cmwuc2VuZGVyMTEwMTAodGhpcy5wYXJ0bmVyX2lkLCBnb29kX3ZvLmlkKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN0cmwub3BlbkVxdWlwUGFuZWwoZmFsc2UpO1xuICAgIH0sXG5cbiAgICB1cGRhdGVDdXJFcXVpcDogZnVuY3Rpb24oZXF1aXBfZGF0YSkge1xuICAgICAgICB0aGlzLmVxdWlwX25hbWVfbGIuc3RyaW5nID0gZXF1aXBfZGF0YS5jb25maWcubmFtZTtcbiAgICAgICAgdGhpcy5lcXVpcF9sZXZfbGIuc3RyaW5nID0gZXF1aXBfZGF0YS5sZXY7XG4gICAgICAgIHRoaXMuZXF1aXBfc2NvcmVfbGIuc3RyaW5nID0gZXF1aXBfZGF0YS5zY29yZTsgIFxuICAgICAgICB0aGlzLmJhY2twYWNrX2l0ZW0uc2V0RGF0YShlcXVpcF9kYXRhKTtcbiAgICB9LFxuXG4gICAgb25DbGlja1VuRXF1aXBCdG46IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZih0aGlzLnBhcnRuZXJfaWQgJiYgdGhpcy5jdXJfZXF1aXBfZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5jdHJsLnNlbmRlcjExMDExKHRoaXMucGFydG5lcl9pZCwgdGhpcy5jdXJfZXF1aXBfZGF0YS5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdHJsLm9wZW5FcXVpcFBhbmVsKGZhbHNlKTtcbiAgICB9LFxuXG59KSJdfQ==