LaserView.js
19.5 KB
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
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/scripts/prefabs/LaserView.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, '77f68MKJu5LhIKTBkqEdTqp', 'LaserView');
// scripts/prefabs/LaserView.ts
"use strict";
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var BattleConst_1 = require("../kernel/battle/BattleConst");
var BattleManager_1 = require("../kernel/battle/BattleManager");
var ObjBaseView_1 = require("./ObjBaseView");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var LaserView = /** @class */ (function (_super) {
__extends(LaserView, _super);
function LaserView() {
return _super !== null && _super.apply(this, arguments) || this;
}
//#region interface
LaserView.prototype.onHit = function () {
var ani = this._effect.getComponent(cc.Animation);
!ani.getAnimationState('ani_yxz_tsfk_jg02').isPlaying && ani.play('ani_yxz_tsfk_jg02', 0);
if (this._laser) {
!this._laser.active && (this._laser.active = true);
var laserAni = this._laser.getComponent(cc.Animation);
!laserAni.getAnimationState('fx_laser_02').isPlaying && laserAni.play('fx_laser_02', 0);
}
if (this._vLaser) {
!this._vLaser.active && (this._vLaser.active = true);
var laserAni = this._vLaser.getComponent(cc.Animation);
!laserAni.getAnimationState('fx_laser_02').isPlaying && laserAni.play('fx_laser_02', 0);
}
};
//#endregion
//#region LIFE-CYCLE CALLBACKS:
LaserView.prototype.init = function (owner, mapView) {
var _this = this;
var laserObj = owner;
if (laserObj.dir == BattleConst_1.LASER_DIR.HORIZEN || laserObj.dir == BattleConst_1.LASER_DIR.COMBINE) {
this._laser = cc.instantiate(mapView.prefabCollection.getChildByName('skillSpine').getChildByName('laser'));
this._laser.scaleX = mapView.width / this._laser.width;
this._laser.active = false;
var laserAni = this._laser.getComponent(cc.Animation);
laserAni.on('finished', function () { _this._laser.active = false; }, this);
}
if (laserObj.dir == BattleConst_1.LASER_DIR.VERTICAL || laserObj.dir == BattleConst_1.LASER_DIR.COMBINE) {
this._vLaser = cc.instantiate(mapView.prefabCollection.getChildByName('skillSpine').getChildByName('laser'));
this._vLaser.scaleX = mapView.height / this._vLaser.width;
this._vLaser.angle = 90;
this._vLaser.active = false;
var vlaserAni = this._vLaser.getComponent(cc.Animation);
vlaserAni.on('finished', function () { _this._vLaser.active = false; }, this);
}
this._effect = this.node.getChildByName('UI_yxz_tsfk_jg2');
this._effect.removeFromParent();
_super.prototype.init.call(this, owner, mapView);
this._img.active = false;
mapView.effectLayer.addChild(this._effect);
this._laser && mapView.effectLayer.addChild(this._laser);
this._vLaser && mapView.effectLayer.addChild(this._vLaser);
BattleManager_1.BattleManager.ins.eventNode.on(BattleConst_1.BattleEvent.BATTLE_START, this.onBattleStart, this);
};
LaserView.prototype.onPositionChange = function (x, y) {
_super.prototype.onPositionChange.call(this, x, y);
this._effect.setPosition(x, y);
this._laser && this._laser.setPosition(0, y);
this._vLaser && this._vLaser.setPosition(x, 0);
};
LaserView.prototype.onVisibleChange = function () {
this._img.active = false; //图片一直隐藏
};
LaserView.prototype.onDestroy = function () {
BattleManager_1.BattleManager.ins.eventNode.off(BattleConst_1.BattleEvent.BATTLE_START, this.onBattleStart, this);
this._effect.destroy();
this._laser && this._laser.destroy();
this._vLaser && this._vLaser.destroy();
};
LaserView.prototype.onImageLoaded = function () {
var _this = this;
//更新特效的图片
this._effect.getChildByName('UI_yxz_tsfk_jg2').getComponent(cc.Sprite).spriteFrame = this._img.getComponent(cc.Sprite).spriteFrame;
cc.resources.load('battle/' + this.owner.imgName + 'a', cc.SpriteFrame, function (error, asset) {
if (!_this._destroyed) {
_this._effect.getChildByName('UI_yxz_tsfk_jg2a').getComponent(cc.Sprite).spriteFrame = asset;
}
});
};
// update (dt) {}
//#endregion
LaserView.prototype.onBattleStart = function () {
var ani = this._effect.getComponent(cc.Animation);
ani.play("ani_yxz_tsfk_jg01", 0);
};
LaserView = __decorate([
ccclass
], LaserView);
return LaserView;
}(ObjBaseView_1.default));
exports.default = LaserView;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcTGFzZXJWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDREQUFzRTtBQUN0RSxnRUFBK0Q7QUFJL0QsNkNBQXdDO0FBRWxDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXVDLDZCQUFXO0lBQWxEOztJQTJHQSxDQUFDO0lBckdHLG1CQUFtQjtJQUVuQix5QkFBSyxHQUFMO1FBRUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFMUYsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxD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aXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBCYXR0bGVFdmVudCwgTEFTRVJfRElSIH0gZnJvbSBcIi4uL2tlcm5lbC9iYXR0bGUvQmF0dGxlQ29uc3RcIjtcclxuaW1wb3J0IHsgQmF0dGxlTWFuYWdlciB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL0JhdHRsZU1hbmFnZXJcIjtcclxuaW1wb3J0IHsgTGFzZXJPYmogfSBmcm9tIFwiLi4va2VybmVsL2JhdHRsZS9tYXAvTGFzZXJPYmpcIjtcclxuaW1wb3J0IHsgTWFwVmlldyB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL21hcC9NYXBWaWV3XCI7XHJcbmltcG9ydCB7IE9iakRhdGEgfSBmcm9tIFwiLi4va2VybmVsL2JhdHRsZS9tYXAvT2JqRGF0YVwiO1xyXG5pbXBvcnQgT2JqQmFzZVZpZXcgZnJvbSBcIi4vT2JqQmFzZVZpZXdcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMYXNlclZpZXcgZXh0ZW5kcyBPYmpCYXNlVmlldyB7XHJcblxyXG4gICAgcHJpdmF0ZSBfZWZmZWN0OiBjYy5Ob2RlO1xyXG4gICAgcHJpdmF0ZSBfbGFzZXI6IGNjLk5vZGU7XHJcbiAgICBwcml2YXRlIF92TGFzZXI6IGNjLk5vZGU7XHJcblxyXG4gICAgLy8jcmVnaW9uIGludGVyZmFjZVxyXG5cclxuICAgIG9uSGl0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBsZXQgYW5pID0gdGhpcy5fZWZmZWN0LmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgICFhbmkuZ2V0QW5pbWF0aW9uU3RhdGUoJ2FuaV95eHpfdHNma19qZzAyJykuaXNQbGF5aW5nICYmIGFuaS5wbGF5KCdhbmlfeXh6X3RzZmtfamcwMicsIDApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGFzZXIpIHtcclxuICAgICAgICAgICAgIXRoaXMuX2xhc2VyLmFjdGl2ZSAmJiAodGhpcy5fbGFzZXIuYWN0aXZlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGxldCBsYXNlckFuaSA9IHRoaXMuX2xhc2VyLmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgICAgICAhbGFzZXJBbmkuZ2V0QW5pbWF0aW9uU3RhdGUoJ2Z4X2xhc2VyXzAyJykuaXNQbGF5aW5nICYmIGxhc2VyQW5pLnBsYXkoJ2Z4X2xhc2VyXzAyJywgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fdkxhc2VyKSB7XHJcbiAgICAgICAgICAgICF0aGlzLl92TGFzZXIuYWN0aXZlICYmICh0aGlzLl92TGFzZXIuYWN0aXZlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGxldCBsYXNlckFuaSA9IHRoaXMuX3ZMYXNlci5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKTtcclxuICAgICAgICAgICAgIWxhc2VyQW5pLmdldEFuaW1hdGlvblN0YXRlKCdmeF9sYXNlcl8wMicpLmlzUGxheWluZyAmJiBsYXNlckFuaS5wbGF5KCdmeF9sYXNlcl8wMicsIDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIGluaXQob3duZXI6IE9iakRhdGEsIG1hcFZpZXc6IE1hcFZpZXcpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgbGV0IGxhc2VyT2JqID0gb3duZXIgYXMgTGFzZXJPYmo7XHJcblxyXG4gICAgICAgIGlmIChsYXNlck9iai5kaXIgPT0gTEFTRVJfRElSLkhPUklaRU4gfHwgbGFzZXJPYmouZGlyID09IExBU0VSX0RJUi5DT01CSU5FKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc2VyID0gY2MuaW5zdGFudGlhdGUobWFwVmlldy5wcmVmYWJDb2xsZWN0aW9uLmdldENoaWxkQnlOYW1lKCdza2lsbFNwaW5lJykuZ2V0Q2hpbGRCeU5hbWUoJ2xhc2VyJykpO1xyXG4gICAgICAgICAgICB0aGlzLl9sYXNlci5zY2FsZVggPSBtYXBWaWV3LndpZHRoIC8gdGhpcy5fbGFzZXIud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc2VyLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgbGV0IGxhc2VyQW5pID0gdGhpcy5fbGFzZXIuZ2V0Q29tcG9uZW50KGNjLkFuaW1hdGlvbik7XHJcbiAgICAgICAgICAgIGxhc2VyQW5pLm9uKCdmaW5pc2hlZCcsICgpID0+IHsgdGhpcy5fbGFzZXIuYWN0aXZlID0gZmFsc2U7IH0sIHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGxhc2VyT2JqLmRpciA9PSBMQVNFUl9ESVIuVkVSVElDQUwgfHwgbGFzZXJPYmouZGlyID09IExBU0VSX0RJUi5DT01CSU5FKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZMYXNlciA9IGNjLmluc3RhbnRpYXRlKG1hcFZpZXcucHJlZmFiQ29sbGVjdGlvbi5nZXRDaGlsZEJ5TmFtZSgnc2tpbGxTcGluZScpLmdldENoaWxkQnlOYW1lKCdsYXNlcicpKTtcclxuICAgICAgICAgICAgdGhpcy5fdkxhc2VyLnNjYWxlWCA9IG1hcFZpZXcuaGVpZ2h0IC8gdGhpcy5fdkxhc2VyLndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLl92TGFzZXIuYW5nbGUgPSA5MDtcclxuICAgICAgICAgICAgdGhpcy5fdkxhc2VyLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsYXNlckFuaSA9IHRoaXMuX3ZMYXNlci5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKTtcclxuICAgICAgICAgICAgdmxhc2VyQW5pLm9uKCdmaW5pc2hlZCcsICgpID0+IHsgdGhpcy5fdkxhc2VyLmFjdGl2ZSA9IGZhbHNlOyB9LCB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VmZmVjdCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnVUlfeXh6X3RzZmtfamcyJyk7XHJcbiAgICAgICAgdGhpcy5fZWZmZWN0LnJlbW92ZUZyb21QYXJlbnQoKTtcclxuXHJcbiAgICAgICAgc3VwZXIuaW5pdChvd25lciwgbWFwVmlldyk7XHJcbiAgICAgICAgdGhpcy5faW1nLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBtYXBWaWV3LmVmZmVjdExheWVyLmFkZENoaWxkKHRoaXMuX2VmZmVjdCk7XHJcbiAgICAgICAgdGhpcy5fbGFzZXIgJiYgbWFwVmlldy5lZmZlY3RMYXllci5hZGRDaGlsZCh0aGlzLl9sYXNlcik7XHJcbiAgICAgICAgdGhpcy5fdkxhc2VyICYmIG1hcFZpZXcuZWZmZWN0TGF5ZXIuYWRkQ2hpbGQodGhpcy5fdkxhc2VyKTtcclxuXHJcbiAgICAgICAgQmF0dGxlTWFuYWdlci5pbnMuZXZlbnROb2RlLm9uKEJhdHRsZUV2ZW50LkJBVFRMRV9TVEFSVCwgdGhpcy5vbkJhdHRsZVN0YXJ0LCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Qb3NpdGlvbkNoYW5nZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uUG9zaXRpb25DaGFuZ2UoeCwgeSk7XHJcbiAgICAgICAgdGhpcy5fZWZmZWN0LnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuX2xhc2VyICYmIHRoaXMuX2xhc2VyLnNldFBvc2l0aW9uKDAsIHkpO1xyXG4gICAgICAgIHRoaXMuX3ZMYXNlciAmJiB0aGlzLl92TGFzZXIuc2V0UG9zaXRpb24oeCwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVmlzaWJsZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pbWcuYWN0aXZlID0gZmFsc2U7IC8v5Zu+54mH5LiA55u06ZqQ6JePXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBCYXR0bGVNYW5hZ2VyLmlucy5ldmVudE5vZGUub2ZmKEJhdHRsZUV2ZW50LkJBVFRMRV9TVEFSVCwgdGhpcy5vbkJhdHRsZVN0YXJ0LCB0aGlzKTtcclxuICAgICAgICB0aGlzLl9lZmZlY3QuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX2xhc2VyICYmIHRoaXMuX2xhc2VyLmRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLl92TGFzZXIgJiYgdGhpcy5fdkxhc2VyLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25JbWFnZUxvYWRlZCgpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgLy/mm7TmlrDnibnmlYjnmoTlm77niYdcclxuICAgICAgICB0aGlzLl9lZmZlY3QuZ2V0Q2hpbGRCeU5hbWUoJ1VJX3l4el90c2ZrX2pnMicpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5faW1nLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZCgnYmF0dGxlLycgKyB0aGlzLm93bmVyLmltZ05hbWUgKyAnYScsIGNjLlNwcml0ZUZyYW1lLCAoZXJyb3IsIGFzc2V0KSA9PiB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWZmZWN0LmdldENoaWxkQnlOYW1lKCdVSV95eHpfdHNma19qZzJhJykuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBhc3NldCBhcyBjYy5TcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBvbkJhdHRsZVN0YXJ0KCkge1xyXG5cclxuICAgICAgICBsZXQgYW5pID0gdGhpcy5fZWZmZWN0LmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgIGFuaS5wbGF5KFwiYW5pX3l4el90c2ZrX2pnMDFcIiwgMCk7XHJcbiAgICB9XHJcbn1cclxuIl19