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
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/task/view/task_notice_view.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, 'e99398X3ZxIIo4+4wEYdA5Z', 'task_notice_view');
// Scripts/mod/task/view/task_notice_view.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
//      一些提示行的父节点
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var TaskController = require("task_controller");
 
var TaskEvent = require("task_event");
 
var TaskConst = require("task_const");
 
var LoaderManager = require("loadermanager");
 
var ViewClass = require("viewclass");
 
var TaskNoticeView = cc.Class({
  "extends": ViewClass,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("task", "task_notice_item");
    this.viewTag = SCENE_TAG.msg;
    this.finish_list = [];
    this.base_view_event_list = {};
    this.res_list = {};
  },
  // 打开窗体的主入口
  open: function open(params) {
    this.open_params = params;
 
    if (this.root_wnd) {
      this.openRootWnd();
    } else {
      var self = this;
      LoaderManager.getInstance().loadRes(this.prefabPath, function (res_object) {
        if (!(res_object instanceof cc.Prefab)) {
          cc.log("你载入的不是预制资源");
          return;
        }
 
        if (this.is_close) {
          return;
        }
 
        this.root_wnd = res_object;
        this.root_wnd.setPosition(-SCREEN_WIDTH * 0.5, -SCREEN_HEIGHT * 0.5);
        ViewManager.getInstance().addToSceneNode(this.root_wnd, this.viewTag); // 还未加载完成的时候设置了不可见,那么直接隐藏掉
 
        if (self.fastShowThenHide) {
          self.fastShowThenHide = false;
          self.setVisible(false);
        } // 打开回调
 
 
        this.openCallBack(); // 开启注册时间
 
        this.registerEvent(); // 数据设置
 
        self.openRootWnd(self.open_params);
      }.bind(this));
    }
  },
  openCallBack: function openCallBack() {
    this.container = this.root_wnd.getChildByName("container");
    var size = this.root_wnd.getContentSize();
    this.root_wnd.setPosition(-size.width / 2, SCREEN_HEIGHT * 0.5 - size.height);
    this.container.active = false;
    this.task_img = this.container.getChildByName("task_img").getComponent(cc.Sprite);
    this.task_name = this.container.getChildByName("task_name").getComponent(cc.Label);
    this.task_desc = this.container.getChildByName("task_desc").getComponent(cc.Label); //移动的位移
 
    this.target_height = this.container.getContentSize().height;
  },
  openRootWnd: function openRootWnd() {},
  registerEvent: function registerEvent() {
    this.addGlobalEvent(TaskEvent.UpdateTaskList, function (is_new, task_list) {
      this.fillFinishData(task_list, TaskConst.type.quest);
    }.bind(this));
    this.addGlobalEvent(TaskEvent.UpdateFeatList, function (feat_list) {
      this.fillFinishData(feat_list, TaskConst.type.feat);
    }.bind(this));
    this.container.on(cc.Node.EventType.TOUCH_END, function () {
      this.doMoveOut();
      if (this.cur_info) TaskController.getInstance().openTaskMainWindow(true, this.cur_info.type);
    }, this);
  },
  //desc:填充待显示的完成数据
  fillFinishData: function fillFinishData(list, type) {
    //引导中不出来
    // if (GuideController.getInstance().isInGuide())
    //     return
    //剧情中也不出来
    // if(storyController.getInstance().getModel().isStoryState())
    // return
    if (list == null || Utils.next(list) == null) return;
 
    for (var i in list) {
      var v = list[i];
      this.finish_list.push({
        id: v,
        type: type
      });
    }
 
    this.doMoveFinishItem();
  },
  doMoveFinishItem: function doMoveFinishItem() {
    if (this.be_in_show == true) return;
    if (this.finish_list == null || Utils.next(this.finish_list) == null) return;
    this.be_in_show = true;
    var cur_data = this.finish_list.splice(0, 1);
    cur_data = cur_data[0];
 
    if (cur_data) {
      var task_model = TaskController.getInstance().getModel();
      if (cur_data.type == TaskConst.type.quest) this.cur_info = task_model.getTaskById(cur_data.id);else if (cur_data.type == TaskConst.type.feat) this.cur_info = task_model.getFeatById(cur_data.id);
    }
 
    if (this.cur_info && this.cur_info.config) {
      var res_name = "quest_item_icon";
 
      if (this.cur_info.type == TaskConst.type.feat) {
        this.task_name.string = Utils.TI18N("成就达成");
        res_name = "quest_item_icon_2";
      } else {
        this.task_name.string = Utils.TI18N("日常完成");
        res_name = "quest_item_icon";
      }
 
      this.task_desc.string = this.cur_info.getTaskContent();
      var path = PathTool.getBigBg("quest/" + res_name);
      this.loadRes(path, function (res_object) {
        this.task_img.spriteFrame = res_object;
      }.bind(this));
      this.doMoveIn();
    }
  },
  doMoveIn: function doMoveIn() {
    this.container.active = true;
    this.container.opacity = 0;
    this.container.y = this.target_height;
    var fadeIn = cc.fadeIn(0.3);
    var moveTo = cc.moveTo(0.3, cc.v2(0, 0));
    var delay = cc.delayTime(3);
    var fadeOut = cc.fadeOut(0.3);
    var moveOut = cc.moveTo(0.3, cc.v2(0, this.target_height));
    var call_fun = cc.callFunc(function () {
      this.doMoveOut();
    }, this);
    this.container.runAction(cc.sequence(cc.spawn(fadeIn, moveTo), delay, cc.spawn(fadeOut, moveOut), call_fun), this);
  },
  doMoveOut: function doMoveOut() {
    this.be_in_show = false;
    this.container.stopAllActions();
    this.container.active = false;
    this.container.opacity = 0;
    this.container.y = this.target_height;
  },
  onDelete: function onDelete() {}
});
module.exports = TaskNoticeView;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx0YXNrXFx2aWV3XFx0YXNrX25vdGljZV92aWV3LmpzIl0sIm5hbWVzIjpbIlBhdGhUb29sIiwicmVxdWlyZSIsIlRhc2tDb250cm9sbGVyIiwiVGFza0V2ZW50IiwiVGFza0NvbnN0IiwiTG9hZGVyTWFuYWdlciIsIlZpZXdDbGFzcyIsIlRhc2tOb3RpY2VWaWV3IiwiY2MiLCJDbGFzcyIsImN0b3IiLCJwcmVmYWJQYXRoIiwiZ2V0UHJlZmFiUGF0aCIsInZpZXdUYWciLCJTQ0VORV9UQUciLCJtc2ciLCJmaW5pc2hfbGlzdCIsImJhc2Vfdmlld19ldmVudF9saXN0IiwicmVzX2xpc3QiLCJvcGVuIiwicGFyYW1zIiwib3Blbl9wYXJhbXMiLCJyb290X3duZCIsIm9wZW5Sb290V25kIiwic2VsZiIsImdldEluc3RhbmNlIiwibG9hZFJlcyIsInJlc19vYmplY3QiLCJQcmVmYWIiLCJsb2ciLCJpc19jbG9zZSIsInNldFBvc2l0aW9uIiwiU0NSRUVOX1dJRFRIIiwiU0NSRUVOX0hFSUdIVCIsIlZpZXdNYW5hZ2VyIiwiYWRkVG9TY2VuZU5vZGUiLCJmYXN0U2hvd1RoZW5IaWRlIiwic2V0VmlzaWJsZSIsIm9wZW5DYWxsQmFjayIsInJlZ2lzdGVyRXZlbnQiLCJiaW5kIiwiY29udGFpbmVyIiwiZ2V0Q2hpbGRCeU5hbWUiLCJzaXplIiwiZ2V0Q29udGVudFNpemUiLCJ3aWR0aCIsImhlaWdodCIsImFjdGl2ZSIsInRhc2tfaW1nIiwiZ2V0Q29tcG9uZW50IiwiU3ByaXRlIiwidGFza19uYW1lIiwiTGFiZWwiLCJ0YXNrX2Rlc2MiLCJ0YXJnZXRfaGVpZ2h0IiwiYWRkR2xvYmFsRXZlbnQiLCJVcGRhdGVUYXNrTGlzdCIsImlzX25ldyIsInRhc2tfbGlzdCIsImZpbGxGaW5pc2hEYXRhIiwidHlwZSIsInF1ZXN0IiwiVXBkYXRlRmVhdExpc3QiLCJmZWF0X2xpc3QiLCJmZWF0Iiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfRU5EIiwiZG9Nb3ZlT3V0IiwiY3VyX2luZm8iLCJvcGVuVGFza01haW5XaW5kb3ciLCJsaXN0IiwiVXRpbHMiLCJuZXh0IiwiaSIsInYiLCJwdXNoIiwiaWQiLCJkb01vdmVGaW5pc2hJdGVtIiwiYmVfaW5fc2hvdyIsImN1cl9kYXRhIiwic3BsaWNlIiwidGFza19tb2RlbCIsImdldE1vZGVsIiwiZ2V0VGFza0J5SWQiLCJnZXRGZWF0QnlJZCIsImNvbmZpZyIsInJlc19uYW1lIiwic3RyaW5nIiwiVEkxOE4iLCJnZXRUYXNrQ29udGVudCIsInBhdGgiLCJnZXRCaWdCZyIsInNwcml0ZUZyYW1lIiwiZG9Nb3ZlSW4iLCJvcGFjaXR5IiwieSIsImZhZGVJbiIsIm1vdmVUbyIsInYyIiwiZGVsYXkiLCJkZWxheVRpbWUiLCJmYWRlT3V0IiwibW92ZU91dCIsImNhbGxfZnVuIiwiY2FsbEZ1bmMiLCJydW5BY3Rpb24iLCJzZXF1ZW5jZSIsInNwYXduIiwic3RvcEFsbEFjdGlvbnMiLCJvbkRlbGV0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxjQUFjLEdBQUdELE9BQU8sQ0FBQyxpQkFBRCxDQUE1Qjs7QUFDQSxJQUFJRSxTQUFTLEdBQUdGLE9BQU8sQ0FBQyxZQUFELENBQXZCOztBQUNBLElBQUlHLFNBQVMsR0FBR0gsT0FBTyxDQUFDLFlBQUQsQ0FBdkI7O0FBQ0EsSUFBSUksYUFBYSxHQUFHSixPQUFPLENBQUMsZUFBRCxDQUEzQjs7QUFDQSxJQUFJSyxTQUFTLEdBQUdMLE9BQU8sQ0FBQyxXQUFELENBQXZCOztBQUVBLElBQUlNLGNBQWMsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDMUIsYUFBU0gsU0FEaUI7QUFFMUJJLEVBQUFBLElBQUksRUFBRSxnQkFBWTtBQUNkLFNB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LyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIEBhdXRob3I6IHNoaXJhaG9Ac3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcclxuLy8gQGRlc2NyaXB0aW9uOlxyXG4vLyAgICAgIOS4gOS6m+aPkOekuuihjOeahOeItuiKgueCuVxyXG4vLyA8YnIvPkNyZWF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG52YXIgUGF0aFRvb2wgPSByZXF1aXJlKFwicGF0aHRvb2xcIik7XHJcbnZhciBUYXNrQ29udHJvbGxlciA9IHJlcXVpcmUoXCJ0YXNrX2NvbnRyb2xsZXJcIik7XHJcbnZhciBUYXNrRXZlbnQgPSByZXF1aXJlKFwidGFza19ldmVudFwiKTtcclxudmFyIFRhc2tDb25zdCA9IHJlcXVpcmUoXCJ0YXNrX2NvbnN0XCIpO1xyXG52YXIgTG9hZGVyTWFuYWdlciA9IHJlcXVpcmUoXCJsb2FkZXJtYW5hZ2VyXCIpO1xyXG52YXIgVmlld0NsYXNzID0gcmVxdWlyZShcInZpZXdjbGFzc1wiKTtcclxuXHJcbnZhciBUYXNrTm90aWNlVmlldyA9IGNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IFZpZXdDbGFzcyxcclxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLnByZWZhYlBhdGggPSBQYXRoVG9vbC5nZXRQcmVmYWJQYXRoKFwidGFza1wiLCBcInRhc2tfbm90aWNlX2l0ZW1cIik7XHJcbiAgICAgICAgdGhpcy52aWV3VGFnID0gU0NFTkVfVEFHLm1zZztcclxuICAgICAgICB0aGlzLmZpbmlzaF9saXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5iYXNlX3ZpZXdfZXZlbnRfbGlzdCA9IHt9O1xyXG4gICAgICAgIHRoaXMucmVzX2xpc3QgPSB7fVxyXG4gICAgfSxcclxuXHJcbiAgICAvLyDmiZPlvIDnqpfkvZPnmoTkuLvlhaXlj6NcclxuICAgIG9wZW46IGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgICB0aGlzLm9wZW5fcGFyYW1zID0gcGFyYW1zO1xyXG4gICAgICAgIGlmICh0aGlzLnJvb3Rfd25kKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlblJvb3RXbmQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgICAgIExvYWRlck1hbmFnZXIuZ2V0SW5zdGFuY2UoKS5sb2FkUmVzKHRoaXMucHJlZmFiUGF0aCwgKGZ1bmN0aW9uIChyZXNfb2JqZWN0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIShyZXNfb2JqZWN0IGluc3RhbmNlb2YgY2MuUHJlZmFiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmxvZyhcIuS9oOi9veWFpeeahOS4jeaYr+mihOWItui1hOa6kFwiKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc19jbG9zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMucm9vdF93bmQgPSByZXNfb2JqZWN0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb290X3duZC5zZXRQb3NpdGlvbigtU0NSRUVOX1dJRFRIICogMC41LCAtU0NSRUVOX0hFSUdIVCAqIDAuNSlcclxuICAgICAgICAgICAgICAgIFZpZXdNYW5hZ2VyLmdldEluc3RhbmNlKCkuYWRkVG9TY2VuZU5vZGUodGhpcy5yb290X3duZCwgdGhpcy52aWV3VGFnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDov5jmnKrliqDovb3lrozmiJDnmoTml7blgJnorr7nva7kuobkuI3lj6/op4Es6YKj5LmI55u05o6l6ZqQ6JeP5o6JXHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5mYXN0U2hvd1RoZW5IaWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXN0U2hvd1RoZW5IaWRlID0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICBzZWxmLnNldFZpc2libGUoZmFsc2UpXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8g5omT5byA5Zue6LCDXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5DYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgICAgLy8g5byA5ZCv5rOo5YaM5pe26Ze0XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnQoKTtcclxuICAgICAgICAgICAgICAgIC8vIOaVsOaNruiuvue9rlxyXG4gICAgICAgICAgICAgICAgc2VsZi5vcGVuUm9vdFduZChzZWxmLm9wZW5fcGFyYW1zKTtcclxuXHJcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgb3BlbkNhbGxCYWNrOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSB0aGlzLnJvb3Rfd25kLmdldENoaWxkQnlOYW1lKFwiY29udGFpbmVyXCIpO1xyXG4gICAgICAgIHZhciBzaXplID0gdGhpcy5yb290X3duZC5nZXRDb250ZW50U2l6ZSgpO1xyXG4gICAgICAgIHRoaXMucm9vdF93bmQuc2V0UG9zaXRpb24oLXNpemUud2lkdGggLyAyLCBTQ1JFRU5fSEVJR0hUICogMC41LXNpemUuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhc2tfaW1nID0gdGhpcy5jb250YWluZXIuZ2V0Q2hpbGRCeU5hbWUoXCJ0YXNrX2ltZ1wiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICB0aGlzLnRhc2tfbmFtZSA9IHRoaXMuY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwidGFza19uYW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCk7XHJcbiAgICAgICAgdGhpcy50YXNrX2Rlc2MgPSB0aGlzLmNvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcInRhc2tfZGVzY1wiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG5cclxuICAgICAgICAvL+enu+WKqOeahOS9jeenu1xyXG4gICAgICAgIHRoaXMudGFyZ2V0X2hlaWdodCA9IHRoaXMuY29udGFpbmVyLmdldENvbnRlbnRTaXplKCkuaGVpZ2h0O1xyXG4gICAgfSxcclxuXHJcbiAgICBvcGVuUm9vdFduZDogZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIH0sXHJcblxyXG4gICAgcmVnaXN0ZXJFdmVudDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnQoVGFza0V2ZW50LlVwZGF0ZVRhc2tMaXN0LCBmdW5jdGlvbiAoaXNfbmV3LCB0YXNrX2xpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxsRmluaXNoRGF0YSh0YXNrX2xpc3QsIFRhc2tDb25zdC50eXBlLnF1ZXN0KVxyXG4gICAgICAgIH0uYmluZCh0aGlzKSlcclxuXHJcbiAgICAgICAgdGhpcy5hZGRHbG9iYWxFdmVudChUYXNrRXZlbnQuVXBkYXRlRmVhdExpc3QsIGZ1bmN0aW9uIChmZWF0X2xpc3QpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxsRmluaXNoRGF0YShmZWF0X2xpc3QsIFRhc2tDb25zdC50eXBlLmZlYXQpXHJcbiAgICAgICAgfS5iaW5kKHRoaXMpKVxyXG5cclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5kb01vdmVPdXQoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VyX2luZm8pXHJcbiAgICAgICAgICAgICAgICBUYXNrQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLm9wZW5UYXNrTWFpbldpbmRvdyh0cnVlLCB0aGlzLmN1cl9pbmZvLnR5cGUpO1xyXG4gICAgICAgIH0sIHRoaXMpXHJcbiAgICB9LFxyXG5cclxuICAgIC8vZGVzYzrloavlhYXlvoXmmL7npLrnmoTlrozmiJDmlbDmja5cclxuICAgIGZpbGxGaW5pc2hEYXRhOiBmdW5jdGlvbiAobGlzdCwgdHlwZSkge1xyXG4gICAgICAgIC8v5byV5a+85Lit5LiN5Ye65p2lXHJcbiAgICAgICAgLy8gaWYgKEd1aWRlQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmlzSW5HdWlkZSgpKVxyXG4gICAgICAgIC8vICAgICByZXR1cm5cclxuICAgICAgICAvL+WJp+aDheS4reS5n+S4jeWHuuadpVxyXG4gICAgICAgIC8vIGlmKHN0b3J5Q29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldE1vZGVsKCkuaXNTdG9yeVN0YXRlKCkpXHJcbiAgICAgICAgLy8gcmV0dXJuXHJcblxyXG4gICAgICAgIGlmIChsaXN0ID09IG51bGwgfHwgVXRpbHMubmV4dChsaXN0KSA9PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICBmb3IgKHZhciBpIGluIGxpc3QpIHtcclxuICAgICAgICAgICAgdmFyIHYgPSBsaXN0W2ldO1xyXG4gICAgICAgICAgICB0aGlzLmZpbmlzaF9saXN0LnB1c2goeyBpZDogdiwgdHlwZTogdHlwZSB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvTW92ZUZpbmlzaEl0ZW0oKTtcclxuICAgIH0sXHJcblxyXG4gICAgZG9Nb3ZlRmluaXNoSXRlbTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmJlX2luX3Nob3cgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgaWYgKHRoaXMuZmluaXNoX2xpc3QgPT0gbnVsbCB8fCBVdGlscy5uZXh0KHRoaXMuZmluaXNoX2xpc3QpID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIHRoaXMuYmVfaW5fc2hvdyA9IHRydWU7XHJcbiAgICAgICAgdmFyIGN1cl9kYXRhID0gdGhpcy5maW5pc2hfbGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgY3VyX2RhdGEgPSBjdXJfZGF0YVswXTtcclxuICAgICAgICBpZiAoY3VyX2RhdGEpIHtcclxuICAgICAgICAgICAgdmFyIHRhc2tfbW9kZWwgPSBUYXNrQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldE1vZGVsKCk7XHJcbiAgICAgICAgICAgIGlmIChjdXJfZGF0YS50eXBlID09IFRhc2tDb25zdC50eXBlLnF1ZXN0KVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJfaW5mbyA9IHRhc2tfbW9kZWwuZ2V0VGFza0J5SWQoY3VyX2RhdGEuaWQpO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjdXJfZGF0YS50eXBlID09IFRhc2tDb25zdC50eXBlLmZlYXQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cl9pbmZvID0gdGFza19tb2RlbC5nZXRGZWF0QnlJZChjdXJfZGF0YS5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmN1cl9pbmZvICYmIHRoaXMuY3VyX2luZm8uY29uZmlnKSB7XHJcbiAgICAgICAgICAgIHZhciByZXNfbmFtZSA9IFwicXVlc3RfaXRlbV9pY29uXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cl9pbmZvLnR5cGUgPT0gVGFza0NvbnN0LnR5cGUuZmVhdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrX25hbWUuc3RyaW5nID0gVXRpbHMuVEkxOE4oXCLmiJDlsLHovr7miJBcIik7XHJcbiAgICAgICAgICAgICAgICByZXNfbmFtZSA9IFwicXVlc3RfaXRlbV9pY29uXzJcIjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFza19uYW1lLnN0cmluZyA9IFV0aWxzLlRJMThOKFwi5pel5bi45a6M5oiQXCIpO1xyXG4gICAgICAgICAgICAgICAgcmVzX25hbWUgPSBcInF1ZXN0X2l0ZW1faWNvblwiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhc2tfZGVzYy5zdHJpbmcgPSB0aGlzLmN1cl9pbmZvLmdldFRhc2tDb250ZW50KCk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcGF0aCA9IFBhdGhUb29sLmdldEJpZ0JnKFwicXVlc3QvXCIgKyByZXNfbmFtZSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZFJlcyhwYXRoLCBmdW5jdGlvbiAocmVzX29iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrX2ltZy5zcHJpdGVGcmFtZSA9IHJlc19vYmplY3RcclxuICAgICAgICAgICAgfS5iaW5kKHRoaXMpKVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kb01vdmVJbigpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgZG9Nb3ZlSW46IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnkgPSB0aGlzLnRhcmdldF9oZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciBmYWRlSW4gPSBjYy5mYWRlSW4oMC4zKTtcclxuICAgICAgICB2YXIgbW92ZVRvID0gY2MubW92ZVRvKDAuMywgY2MudjIoMCwgMCkpO1xyXG4gICAgICAgIHZhciBkZWxheSA9IGNjLmRlbGF5VGltZSgzKTtcclxuICAgICAgICB2YXIgZmFkZU91dCA9IGNjLmZhZGVPdXQoMC4zKTtcclxuICAgICAgICB2YXIgbW92ZU91dCA9IGNjLm1vdmVUbygwLjMsIGNjLnYyKDAsIHRoaXMudGFyZ2V0X2hlaWdodCkpO1xyXG4gICAgICAgIHZhciBjYWxsX2Z1biA9IGNjLmNhbGxGdW5jKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5kb01vdmVPdXQoKTtcclxuICAgICAgICB9LCB0aGlzKVxyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnJ1bkFjdGlvbihjYy5zZXF1ZW5jZShjYy5zcGF3bihmYWRlSW4sIG1vdmVUbyksIGRlbGF5LCBjYy5zcGF3bihmYWRlT3V0LCBtb3ZlT3V0KSwgY2FsbF9mdW4pLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgZG9Nb3ZlT3V0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5iZV9pbl9zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuc3RvcEFsbEFjdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5vcGFjaXR5ID0gMDtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci55ID0gdGhpcy50YXJnZXRfaGVpZ2h0O1xyXG5cclxuICAgIH0sXHJcblxyXG5cclxuICAgIG9uRGVsZXRlOiBmdW5jdGlvbiAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFRhc2tOb3RpY2VWaWV3OyJdfQ==