238 lines
21 KiB
JavaScript
238 lines
21 KiB
JavaScript
|
|
(function() {
|
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
|
var __module = nodeEnv ? module : {exports:{}};
|
|
var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.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, '58403/n16JCa5sZhNMjZzGo', 'AudioManager');
|
|
// Script/module/Music/AudioManager.ts
|
|
|
|
"use strict";
|
|
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 });
|
|
exports.AudioManager = void 0;
|
|
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
|
|
var AudioManager = /** @class */ (function () {
|
|
function AudioManager() {
|
|
//背景音乐
|
|
this.audioGameBgm0 = null;
|
|
//跳跃
|
|
this.audioButtonClick = null;
|
|
//落地上
|
|
this.audioWarning = null;
|
|
//碰撞
|
|
this.audioWin = null;
|
|
}
|
|
AudioManager_1 = AudioManager;
|
|
AudioManager.playWarning = function () {
|
|
throw new Error('Method not implemented.');
|
|
};
|
|
AudioManager.prototype.ctor = function () {
|
|
this.mAudioMap = {};
|
|
/**
|
|
* 默认音量大小
|
|
* @type {number}
|
|
*/
|
|
this.bgMusicVolume = 0.1;
|
|
this.effectMusicVolume = 1;
|
|
this.mMusicSwitch = 1;
|
|
this.mEffectSwitch = 1;
|
|
};
|
|
AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) {
|
|
if (isBgMusic && !this.mMusicSwitch)
|
|
return;
|
|
if (!isBgMusic && !this.mEffectSwitch)
|
|
return;
|
|
var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;
|
|
if (cc.sys.isBrowser) {
|
|
if (audioSource == this.brickSound) {
|
|
volume = 0.1;
|
|
}
|
|
volume = 1;
|
|
var context = cc.audioEngine.play(audioSource, loop, volume);
|
|
if (callback) {
|
|
cc.audioEngine.setFinishCallback(context, function () {
|
|
callback.call(this);
|
|
}.bind(this));
|
|
}
|
|
// cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);
|
|
this.mAudioMap[audioSource] = context;
|
|
return audioSource;
|
|
}
|
|
else {
|
|
return audioSource;
|
|
}
|
|
};
|
|
AudioManager.prototype.save = function () {
|
|
// cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);
|
|
// cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);
|
|
};
|
|
Object.defineProperty(AudioManager, "Instance", {
|
|
get: function () {
|
|
if (this._instance == null) {
|
|
this._instance = new AudioManager_1();
|
|
}
|
|
return this._instance;
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
AudioManager.prototype.init = function () {
|
|
this.reward = false;
|
|
this.finish = false;
|
|
this.rewardCount = 0;
|
|
this.ctor();
|
|
this.preload();
|
|
};
|
|
AudioManager.prototype.preload = function () {
|
|
if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) {
|
|
return;
|
|
}
|
|
var musics = [
|
|
this.audioGameBgm0,
|
|
];
|
|
musics.forEach(function (path) {
|
|
});
|
|
};
|
|
AudioManager.prototype.getAudioMusicSwitch = function () {
|
|
return this.mMusicSwitch;
|
|
};
|
|
AudioManager.prototype.getAudioEffectSwitch = function () {
|
|
return this.mEffectSwitch;
|
|
};
|
|
AudioManager.prototype.trunAudioSound = function (on) {
|
|
this.switchMusic(on);
|
|
this.switchEffect(on);
|
|
};
|
|
AudioManager.prototype.switchMusic = function (on) {
|
|
if (this.mMusicSwitch != (on ? 1 : 0)) {
|
|
this.mMusicSwitch = 1 - this.mMusicSwitch;
|
|
// this.save();
|
|
}
|
|
if (on) {
|
|
this.playMusicGame();
|
|
}
|
|
else {
|
|
this.stopMusic();
|
|
}
|
|
};
|
|
AudioManager.prototype.switchEffect = function (on) {
|
|
if (this.mEffectSwitch != (on ? 1 : 0)) {
|
|
this.mEffectSwitch = 1 - this.mEffectSwitch;
|
|
// this.save();
|
|
}
|
|
};
|
|
AudioManager.prototype.onHide = function () {
|
|
cc.audioEngine.pauseAll();
|
|
};
|
|
AudioManager.prototype.onShow = function () {
|
|
cc.audioEngine.resumeAll();
|
|
};
|
|
AudioManager.prototype.playMusic = function (key, callback, loop) {
|
|
loop = typeof loop == 'undefined' || loop ? true : false;
|
|
this.stopMusic();
|
|
this.mMusicKey = this.play(key, loop, callback, true);
|
|
};
|
|
/**
|
|
* 游戏背景音乐
|
|
*/
|
|
AudioManager.prototype.playMusicGame = function () {
|
|
this.playMusic(this.audioGameBgm0, {}, true);
|
|
};
|
|
/**
|
|
* 停止背景音乐播放
|
|
*/
|
|
AudioManager.prototype.stopMusic = function () {
|
|
// cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);
|
|
var context = this.mAudioMap[this.mMusicKey];
|
|
if (typeof (context) != 'undefined') {
|
|
if (cc.sys.isBrowser) {
|
|
cc.audioEngine.stop(context);
|
|
}
|
|
else {
|
|
context.stop();
|
|
}
|
|
cc.audioEngine.stop(context);
|
|
}
|
|
};
|
|
//播放音效
|
|
AudioManager.prototype.playEffect = function (name, callback) {
|
|
if (this[name])
|
|
return this.play(this[name], false, callback, this.mEffectSwitch);
|
|
};
|
|
/*
|
|
* 游戏开始音效
|
|
*
|
|
*/
|
|
AudioManager.prototype.playGameStart = function () {
|
|
};
|
|
/*
|
|
* 失败的游戏结束
|
|
*/
|
|
AudioManager.prototype.playGameOver = function () {
|
|
};
|
|
/*
|
|
* 成功的游戏结束
|
|
*/
|
|
AudioManager.prototype.playGameResultFailed = function () {
|
|
};
|
|
/*
|
|
* 成功的游戏结束
|
|
*/
|
|
AudioManager.prototype.playGameResultSuccess = function () {
|
|
};
|
|
/**
|
|
* 报警的音效
|
|
*/
|
|
/**
|
|
* 按钮
|
|
*/
|
|
AudioManager.prototype.playAudioButton = function () {
|
|
return this.play(this.audioButtonClick, false, null, this.mEffectSwitch);
|
|
};
|
|
var AudioManager_1;
|
|
AudioManager._instance = null;
|
|
__decorate([
|
|
property(cc.AudioClip)
|
|
], AudioManager.prototype, "audioGameBgm0", void 0);
|
|
__decorate([
|
|
property(cc.AudioClip)
|
|
], AudioManager.prototype, "audioButtonClick", void 0);
|
|
__decorate([
|
|
property(cc.AudioClip)
|
|
], AudioManager.prototype, "audioWarning", void 0);
|
|
__decorate([
|
|
property(cc.AudioClip)
|
|
], AudioManager.prototype, "audioWin", void 0);
|
|
AudioManager = AudioManager_1 = __decorate([
|
|
ccclass('AudioManager')
|
|
], AudioManager);
|
|
return AudioManager;
|
|
}());
|
|
exports.AudioManager = AudioManager;
|
|
;
|
|
// export { AudioManager };
|
|
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBQTtRQUdJLE1BQU07UUFFTixrQkFBYSxHQUFpQixJQUFJLENBQUM7UUFDbkMsSUFBSTtRQUVKLHFCQUFnQixHQUFpQixJQUFJLENBQUM7UUFDdEMsS0FBSztRQUVMLGlCQUFZLEdBQWlCLElBQUksQ0FBQztRQUNsQyxJQUFJO1FBRUosYUFBUSxHQUFpQixJQUFJLENBQUM7SUEwTWxDLENBQUM7cUJBeE5ZLFlBQVk7SUE0QmQsd0JBQVcsR0FBbEI7UUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELDJCQUFJLEdBQUo7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCwyQkFBSSxHQUFKLFVBQU0sV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUztRQUN4QyxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUM1QyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBQzlDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMs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QUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xuQGNjY2xhc3MoJ0F1ZGlvTWFuYWdlcicpXG5leHBvcnQgY2xhc3MgQXVkaW9NYW5hZ2VyICB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2UgOiBBdWRpb01hbmFnZXIgPSBudWxsO1xuICAgIC8v6IOM5pmv6Z+z5LmQXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0dhbWVCZ20wOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIC8v6Lez6LeDXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0J1dHRvbkNsaWNrOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIC8v6JC95Zyw5LiKXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb1dhcm5pbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgLy/norDmkp5cbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGF1ZGlvV2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIC8v6JC95pa55Z2X5LiKXG5cbiAgICBtQXVkaW9NYXA6IHt9O1xuICAgIGJnTXVzaWNWb2x1bWU6IG51bWJlcjtcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xuICAgIG1FZmZlY3RTd2l0Y2g6IG51bWJlcjtcbiAgICBicmlja1NvdW5kOiBhbnk7XG4gICAgcmV3YXJkOiBib29sZWFuO1xuICAgIGZpbmlzaDogYm9vbGVhbjtcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xuICAgIG1NdXNpY0tleTogYW55O1xuXG4gICAgc3RhdGljIHBsYXlXYXJuaW5nKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gICAgfVxuXG4gICAgY3RvciAoKSB7XG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDpu5jorqTpn7Pph4/lpKflsI9cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmdNdXNpY1ZvbHVtZSA9IDAuMTtcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XG5cbiAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxO1xuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xuICAgIH1cbiAgICBwbGF5IChhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xuXG4gICAgICAgIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICBpZihhdWRpb1NvdXJjZSA9PSB0aGlzLmJyaWNrU291bmQpe1xuICAgICAgICAgICAgICAgIHZvbHVtZSA9IDAuMTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB2b2x1bWUgPSAxO1xuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvU291cmNlLCBsb29wLCB2b2x1bWUpO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrKXtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhjb250ZXh0LCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygncGxheSBhdWRpbyBlZmZlY3QgaXNCcm93c2VyOiAnICsgY29udGV4dC5zcmMpO1xuXG4gICAgICAgICAgICB0aGlzLm1BdWRpb01hcFthdWRpb1NvdXJjZV0gPSBjb250ZXh0O1xuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGF1ZGlvU291cmNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZSAoKSB7XG4gICAgICAgIC8vIGNjLnd3eC5TdG9yYWdlLnNldEl0ZW0oY2Mud3d4LlN0b3JhZ2UuS2V5X1NldHRpbmdfTXVzaWNfVm9sdW1lLCB0aGlzLm1NdXNpY1N3aXRjaCk7XG4gICAgICAgIC8vIGNjLnd3eC5TdG9yYWdlLnNldEl0ZW0oY2Mud3d4LlN0b3JhZ2UuS2V5X1NldHRpbmdfRWZmZWN0X1ZvbHVtZSwgdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IEluc3RhbmNlKClcbiAgICB7XG4gICAgICAgIGlmICh0aGlzLl9pbnN0YW5jZSA9PSBudWxsKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBBdWRpb01hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoKSB7XG4gICAgICAgIHRoaXMucmV3YXJkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluaXNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmV3YXJkQ291bnQgPSAwO1xuICAgICAgICB0aGlzLmN0b3IoKTtcbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuICAgIHByZWxvYWQgKCkge1xuICAgICAgICBpZiAoIShjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdmFyIG11c2ljcyA9IFtcbiAgICAgICAgICAgIHRoaXMuYXVkaW9HYW1lQmdtMCxcbiAgICAgICAgXTtcbiAgICAgICAgbXVzaWNzLmZvckVhY2goZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGdldEF1ZGlvTXVzaWNTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfVxuICAgIGdldEF1ZGlvRWZmZWN0U3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgfVxuICAgIHRydW5BdWRpb1NvdW5kKG9uKVxuICAgIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hNdXNpYyhvbik7XG4gICAgICAgIHRoaXMuc3dpdGNoRWZmZWN0KG9uKVxuICAgIH1cbiAgICBzd2l0Y2hNdXNpYyAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubU11c2ljU3dpdGNoICE9IChvbj8xOjApKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IDEtdGhpcy5tTXVzaWNTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZihvbilcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN3aXRjaEVmZmVjdCAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubUVmZmVjdFN3aXRjaCAhPSAob24/MTowKSl7XG4gICAgICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxLXRoaXMubUVmZmVjdFN3aXRjaDtcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25IaWRlICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcbiAgICB9XG5cbiAgICBvblNob3cgKCkge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVBbGwoKTtcbiAgICB9XG4gICAgcGxheU11c2ljIChrZXksIGNhbGxiYWNrLCBsb29wKSB7XG4gICAgICAgIGxvb3AgPSB0eXBlb2YgbG9vcCA9PSAndW5kZWZpbmVkJyAgfHwgbG9vcCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5tTXVzaWNLZXkgPSB0aGlzLnBsYXkoa2V5LCBsb29wLCBjYWxsYmFjaywgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIOa4uOaIj+iDjOaZr+mfs+S5kFxuICAgICAqL1xuICAgIHBsYXlNdXNpY0dhbWUgKCkge1xuICAgICAgICB0aGlzLnBsYXlNdXNpYyh0aGlzLmF1ZGlvR2FtZUJnbTAse30sdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIOWBnOatouiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHN0b3BNdXNpYyAoKSB7XG4gICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdzdG9wTXVzaWMgYXVkaW8gZWZmZWN0IHd4OiAnICsgdGhpcy5tTXVzaWNLZXkpO1xuXG4gICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5tQXVkaW9NYXBbdGhpcy5tTXVzaWNLZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YoY29udGV4dCkgIT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcChjb250ZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zdG9wKGNvbnRleHQpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy/mkq3mlL7pn7PmlYhcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xuICAgICAgICBpZih0aGlzW25hbWVdKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxheSh0aGlzW25hbWVdLCBmYWxzZSxjYWxsYmFjayx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19
|