Commit c7bec52f authored by Li MingZhe's avatar Li MingZhe

fix: preload img

parent 14802b2f
No preview for this file type
/node_modules
/publish
\ No newline at end of file
...@@ -188,7 +188,7 @@ cc.Class({ ...@@ -188,7 +188,7 @@ cc.Class({
this._audioResList.push({url: item.audio_url}); this._audioResList.push({url: item.audio_url});
}) })
this._audioResList.push({url: this.bg_audio_url}); this._audioResList.push({url: this.data.bg_audio_url});
}, },
addPreloadAnima() { addPreloadAnima() {
......
...@@ -42,6 +42,7 @@ window.__require = function e(t, n, r) { ...@@ -42,6 +42,7 @@ window.__require = function e(t, n, r) {
_maxPage: null, _maxPage: null,
_lineMaxCount: null, _lineMaxCount: null,
_disW: null, _disW: null,
_maxW: null,
onLoad: function onLoad() { onLoad: function onLoad() {
this._canTouch = true; this._canTouch = true;
this._isTop = false; this._isTop = false;
...@@ -52,8 +53,8 @@ window.__require = function e(t, n, r) { ...@@ -52,8 +53,8 @@ window.__require = function e(t, n, r) {
this._pageIndex = 0; this._pageIndex = 0;
this._maxPage = 0; this._maxPage = 0;
this._disW = 5; this._disW = 5;
var maxW = 1190; this._maxW = 1190;
this._lineMaxCount = Math.floor(maxW / (this._disW + this._itemLen)); this._lineMaxCount = Math.floor(this._maxW / (this._disW + this._itemLen));
}, },
start: function start() { start: function start() {
this._initListener(); this._initListener();
...@@ -103,7 +104,7 @@ window.__require = function e(t, n, r) { ...@@ -103,7 +104,7 @@ window.__require = function e(t, n, r) {
var pageDown = this.node.getChildByName("pageDown"); var pageDown = this.node.getChildByName("pageDown");
pageDown.on("click", function() { pageDown.on("click", function() {
if (!_this2._canTouch) return; if (!_this2._canTouch) return;
if (_this2._pageIndex >= _this2._maxPage) return; if (_this2._pageIndex >= _this2._maxPage - 1) return;
_this2._pageIndex++; _this2._pageIndex++;
_this2._refreshPage(); _this2._refreshPage();
_this2._showBtnAnima(pageDown); _this2._showBtnAnima(pageDown);
...@@ -127,7 +128,7 @@ window.__require = function e(t, n, r) { ...@@ -127,7 +128,7 @@ window.__require = function e(t, n, r) {
return; return;
} }
0 == this._pageIndex ? this._pageUpBtn.opacity = 100 : this._pageUpBtn.opacity = 255; 0 == this._pageIndex ? this._pageUpBtn.opacity = 100 : this._pageUpBtn.opacity = 255;
this._pageIndex == this._maxPage ? this._pageDownBtn.opacity = 100 : this._pageDownBtn.opacity = 255; this._pageIndex == this._maxPage - 1 ? this._pageDownBtn.opacity = 100 : this._pageDownBtn.opacity = 255;
}, },
_setTopBtnState: function _setTopBtnState(time) { _setTopBtnState: function _setTopBtnState(time) {
var arrow1, arrow2; var arrow1, arrow2;
...@@ -156,10 +157,26 @@ window.__require = function e(t, n, r) { ...@@ -156,10 +157,26 @@ window.__require = function e(t, n, r) {
console.log(" in setItemData", dataArr); console.log(" in setItemData", dataArr);
if (!dataArr || 0 == dataArr.length) return; if (!dataArr || 0 == dataArr.length) return;
this._dataArr = dataArr; this._dataArr = dataArr;
this._maxPage = Math.ceil(dataArr.length / this._lineMaxCount) - 1; this._initPageArr();
this._pageIndex = 0; this._pageIndex = 0;
this._refreshPage(); this._refreshPage();
}, },
_pageArr: null,
_initPageArr: function _initPageArr() {
var tmpArr = [];
this._pageArr = [ tmpArr ];
var curLen = this._disW;
for (var i = 0; i < this._dataArr.length; i++) {
var item = this._addOneItem(this._dataArr[i]);
curLen += item.width + this._disW;
if (curLen > this._maxW) {
tmpArr = [ item ];
this._pageArr.push(tmpArr);
} else tmpArr.push(item);
}
this._maxPage = this._pageArr.length;
console.log("this._maxPage: ", this._maxPage);
},
_itemLen: null, _itemLen: null,
_addOneItem: function _addOneItem(data) { _addOneItem: function _addOneItem(data) {
var item = new cc.Node(); var item = new cc.Node();
...@@ -168,6 +185,7 @@ window.__require = function e(t, n, r) { ...@@ -168,6 +185,7 @@ window.__require = function e(t, n, r) {
this._addItemPic(item, data.pic_url); this._addItemPic(item, data.pic_url);
this._addItemLabel(item, data.text); this._addItemLabel(item, data.text);
this._addItemAudio(item, data.audio_url); this._addItemAudio(item, data.audio_url);
item.data = data;
return item; return item;
}, },
_addItemPic: function _addItemPic(item, url) { _addItemPic: function _addItemPic(item, url) {
...@@ -201,6 +219,8 @@ window.__require = function e(t, n, r) { ...@@ -201,6 +219,8 @@ window.__require = function e(t, n, r) {
this._labelFont = fontLabel.font; this._labelFont = fontLabel.font;
} }
label.font = this._labelFont; label.font = this._labelFont;
label._forceUpdateRenderData(true);
labelNode.width > this._itemLen && (item.width = labelNode.width);
}, },
_addItemAudio: function _addItemAudio(item, url) { _addItemAudio: function _addItemAudio(item, url) {
var _this4 = this; var _this4 = this;
...@@ -214,8 +234,8 @@ window.__require = function e(t, n, r) { ...@@ -214,8 +234,8 @@ window.__require = function e(t, n, r) {
item.addComponent(cc.Button); item.addComponent(cc.Button);
item.on("click", function() { item.on("click", function() {
if (item.audioClip) { if (item.audioClip) {
cc.audioEngine.stopAll(); cc.audioEngine.stopAllEffects();
cc.audioEngine.play(item.audioClip, false, .5); cc.audioEngine.playEffect(item.audioClip, false, .5);
} }
}); });
}, },
...@@ -225,16 +245,24 @@ window.__require = function e(t, n, r) { ...@@ -225,16 +245,24 @@ window.__require = function e(t, n, r) {
var dataArr = this._dataArr; var dataArr = this._dataArr;
var disW = this._disW; var disW = this._disW;
var startIndex = this._pageIndex * this._lineMaxCount; var startIndex = this._pageIndex * this._lineMaxCount;
var showArr = dataArr.slice(startIndex, startIndex + this._lineMaxCount); var showArr = this._pageArr[this._pageIndex];
var baseX = -(disW + this._itemLen) * (showArr.length - 1) / 2; var baseX = this._getCurPageBaseX();
var baseY = -25; var baseY = -25;
showArr.forEach(function(data, i) { showArr.forEach(function(el, i) {
var item = _this5._addOneItem(data); var item = _this5._addOneItem(el.data);
_this5._itemLayer.addChild(item); _this5._itemLayer.addChild(item);
item.x = baseX + (disW + _this5._itemLen) * i; item.x = baseX + (disW + item.width) / 2;
item.y = baseY; item.y = baseY;
baseX = item.x + (disW + item.width) / 2;
}); });
this._setPageBtnState(); this._setPageBtnState();
},
_getCurPageBaseX: function _getCurPageBaseX() {
var arr = this._pageArr[this._pageIndex];
console.log("arr: ", arr);
var curLen = this._disW;
for (var i = 0; i < arr.length; i++) curLen += arr[i].width + this._disW;
return -curLen / 2;
} }
}); });
cc._RF.pop(); cc._RF.pop();
...@@ -295,7 +323,7 @@ window.__require = function e(t, n, r) { ...@@ -295,7 +323,7 @@ window.__require = function e(t, n, r) {
func(this.getDefaultData()); func(this.getDefaultData());
}, },
getDefaultData: function getDefaultData() { getDefaultData: function getDefaultData() {
var dataJson = '{"bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/cea0606b09735d7346dc57626f0a0a9b.png","rect":{"x":205.28,"y":0,"width":844.44,"height":475}},"hotZoneItemArr":[{"id":"1597805601321","index":0,"pic_url":"http://staging-teach.cdn.ireadabc.com/ddf2a304102c90bd2ed1cadf27f8feb7.png","text":"arrow","audio_url":"http://staging-teach.cdn.ireadabc.com/1961d807c944e6551af02c7b57e117f3.mp3","itemType":"rect","fontScale":0.98046875,"imgScale":4.139756944444445,"mapScale":0.98046875,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/ab66b9d704187f60fd8a61c981435b8e.json","name":"finish2_ske.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/a4b74d67df855493b394c7df9625ba24.json","name":"finish2_tex.json"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/e485027385bab93761a5d1749166ba83.png","name":"finish2_tex.png"},"gIdx":"0","fontSize":50,"fontName":"BRLNSR_1","ontColor":"#8f3758","rect":{"x":75.22,"y":135.5,"width":200,"height":200}},{"id":"1597805655229","index":1,"pic_url":"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png","text":"home","audio_url":"http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3","itemType":"rect","fontScale":0.98046875,"imgScale":3.72578125,"mapScale":0.98046875,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json","name":"finish1_ske.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json","name":"finish1_tex.json"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png","name":"finish1_tex.png"},"gIdx":"0","fontSize":50,"fontName":"BRLNSR_1","ontColor":"#8f3758","rect":{"x":661.72,"y":69,"width":77,"height":77}}],"picArr":[{"pic_url":"http://staging-teach.cdn.ireadabc.com/29cdcc64c0898a1ec63f89b8b2fdd0e6.png","audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3","text":"arrow"},{"pic_url":"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png","audio_url":"http://staging-teach.cdn.ireadabc.com/fbe2f23b9eb191a9330f99800e0d54d5.mp3","text":"home"}]}'; var dataJson = '{"bgColorId":0,"bgColor":"#f9bd03","bgItem":{"url":"http://staging-teach.cdn.ireadabc.com/539e2f58cb1817f852d9c09ec1ac7c8b.png","rect":{"x":265.18,"y":0,"width":776.65,"height":500}},"hotZoneItemArr":[{"id":"1611197962070","index":0,"pic_url":"http://staging-teach.cdn.ireadabc.com/8ce25a36313edb9dfa3de77ba85cb6b9.png","text":"aaa","audio_url":"http://staging-teach.cdn.ireadabc.com/cd8daa8b4d8ff707b3a3680e80bc4761.mp3","itemType":"rect","fontScale":1.02109375,"imgScale":0.7029268568840579,"mapScale":1.02109375,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/3db1a0ed6b7e33d5f9f284e1a5980349.json","name":"Ubbie_ske.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/4232e00c9b1d272e650e51dbb785e498.json","name":"Ubbie_tex.json"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/2e56dbe3134380952a725eacceb86359.png","name":"Ubbie_tex.png"},"gIdx":"0","rect":{"x":-1.68,"y":-1,"width":200,"height":200}},{"id":"1611197966644","index":1,"pic_url":"http://staging-teach.cdn.ireadabc.com/c8abf7383d65bcbdba8f390785cece60.png","audio_url":"http://staging-teach.cdn.ireadabc.com/1961d807c944e6551af02c7b57e117f3.mp3","itemType":"pic","fontScale":1.02109375,"imgScale":0.2536231884057971,"mapScale":1.02109375,"gIdx":"1","rect":{"x":7.32,"y":424,"width":70,"height":70}},{"id":"1611197971104","index":2,"audio_url":"http://staging-teach.cdn.ireadabc.com/694a80e21cefd6e53880d61e684e1c94.mp3","itemType":"rect","fontScale":1.02109375,"imgScale":1,"mapScale":1.02109375,"skeJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/7efceac56cc9a61b107a11457390d3c6.json","name":"finish1_ske.json"},"texJsonData":{"url":"http://staging-teach.cdn.ireadabc.com/d6e8db4fb385127de9e3cd9d8a9530f7.json","name":"finish1_tex.json"},"texPngData":{"url":"http://staging-teach.cdn.ireadabc.com/96f5c7a9ac9f433c9c870c38b0811a38.png","name":"finish1_tex.png"},"gIdx":"2","rect":{"x":575.32,"y":303,"width":200,"height":200}}],"bg_audio_url":"http://staging-teach.cdn.ireadabc.com/3fa65d5f667a2ef9059d3dfc5df74a4d.mp3"}';
var data1 = JSON.parse(dataJson); var data1 = JSON.parse(dataJson);
return data1; return data1;
var data; var data;
...@@ -310,22 +338,45 @@ window.__require = function e(t, n, r) { ...@@ -310,22 +338,45 @@ window.__require = function e(t, n, r) {
}); });
}, },
addPreloadImage: function addPreloadImage() { addPreloadImage: function addPreloadImage() {
var _this3 = this;
this.data.bgItem && this._imageResList.push({ this.data.bgItem && this._imageResList.push({
url: this.data.bgItem.url url: this.data.bgItem.url
}); });
if (!this.data.hotZoneItemArr) return;
this.data.hotZoneItemArr.forEach(function(item) {
item.pic_url && _this3._imageResList.push({
url: item.pic_url
});
});
}, },
addPreloadAudio: function addPreloadAudio() { addPreloadAudio: function addPreloadAudio() {
var _this3 = this; var _this4 = this;
if (!this.data.hotZoneItemArr) return; if (!this.data.hotZoneItemArr) return;
this.data.hotZoneItemArr.forEach(function(item) { this.data.hotZoneItemArr.forEach(function(item) {
_this3._audioResList.push({ _this4._audioResList.push({
url: item.audio_url url: item.audio_url
}); });
}); });
this._audioResList.push({
url: this.bg_audio_url
});
}, },
addPreloadAnima: function addPreloadAnima() { addPreloadAnima: function addPreloadAnima() {
var _this5 = this;
if (!this.data.hotZoneItemArr) return; if (!this.data.hotZoneItemArr) return;
this.data.hotZoneItemArr.forEach(function(item) {}); this.data.hotZoneItemArr.forEach(function(item) {
if (item.skeJsonData) {
_this5._animaResList.push({
url: item.skeJsonData.url || ""
});
_this5._animaResList.push({
url: item.texJsonData.url || ""
});
_this5._animaResList.push({
url: item.texPngData.url || ""
});
}
});
}, },
loadEnd: function loadEnd() { loadEnd: function loadEnd() {
this.initView(); this.initView();
...@@ -336,6 +387,13 @@ window.__require = function e(t, n, r) { ...@@ -336,6 +387,13 @@ window.__require = function e(t, n, r) {
this.initBottomPart(); this.initBottomPart();
this.initCircle(); this.initCircle();
this.initListener(); this.initListener();
this.initMusic();
},
initMusic: function initMusic() {
cc.assetManager.loadRemote(this.data.bg_audio_url, function(err, clip) {
cc.audioEngine.setMusicVolume(.3);
var audioID = cc.audioEngine.playMusic(clip, true);
});
}, },
_cocosScale: null, _cocosScale: null,
initBg: function initBg() { initBg: function initBg() {
...@@ -369,7 +427,7 @@ window.__require = function e(t, n, r) { ...@@ -369,7 +427,7 @@ window.__require = function e(t, n, r) {
}, },
hotZoneBg: null, hotZoneBg: null,
initHotZoneBg: function initHotZoneBg() { initHotZoneBg: function initHotZoneBg() {
var _this4 = this; var _this6 = this;
this.hotZoneBg = new cc.Node(); this.hotZoneBg = new cc.Node();
this.hotZoneBg.name = "hotZoneBg"; this.hotZoneBg.name = "hotZoneBg";
this.hotZoneBg.parent = cc.find("Canvas"); this.hotZoneBg.parent = cc.find("Canvas");
...@@ -379,37 +437,37 @@ window.__require = function e(t, n, r) { ...@@ -379,37 +437,37 @@ window.__require = function e(t, n, r) {
cc.loader.load({ cc.loader.load({
url: this.data.bgItem.url url: this.data.bgItem.url
}, function(err, img) { }, function(err, img) {
_this4.addMask(_this4.hotZoneBg); _this6.addMask(_this6.hotZoneBg);
_this4.hotZoneBg.width = img.width; _this6.hotZoneBg.width = img.width;
_this4.hotZoneBg.height = img.height; _this6.hotZoneBg.height = img.height;
var box = _this4.hotZoneBg.getBoundingBox(); var box = _this6.hotZoneBg.getBoundingBox();
var tmpS = 640 / 720; var tmpS = 640 / 720;
var subNum = 80; var subNum = 80;
var frameSize = cc.view.getFrameSize(); var frameSize = cc.view.getFrameSize();
var winSize = cc.winSize; var winSize = cc.winSize;
console.log("this.hotZoneBg.box: ", _this4.hotZoneBg.getBoundingBox()); console.log("this.hotZoneBg.box: ", _this6.hotZoneBg.getBoundingBox());
console.log("let visiSize=cc.director.getVisibleSize();: ", cc.view.getVisibleSize()); console.log("let visiSize=cc.director.getVisibleSize();: ", cc.view.getVisibleSize());
console.log("lframeSize: ", frameSize); console.log("lframeSize: ", frameSize);
var sx = frameSize.width / _this4._designSize.width; var sx = frameSize.width / _this6._designSize.width;
var sy = frameSize.height / _this4._designSize.height; var sy = frameSize.height / _this6._designSize.height;
var mapS = Math.min(sx, sy); var mapS = Math.min(sx, sy);
var bgBottom = cc.find("Canvas/bgBottom"); var bgBottom = cc.find("Canvas/bgBottom");
bgBottom.scale = mapS * _this4._cocosScale; bgBottom.scale = mapS * _this6._cocosScale;
sx = frameSize.width * _this4._cocosScale / img.width; sx = frameSize.width * _this6._cocosScale / img.width;
sy = (frameSize.height * _this4._cocosScale - subNum * mapS * _this4._cocosScale) / img.height; sy = (frameSize.height * _this6._cocosScale - subNum * mapS * _this6._cocosScale) / img.height;
var sprNode = new cc.Node(); var sprNode = new cc.Node();
var sf = new cc.SpriteFrame(img); var sf = new cc.SpriteFrame(img);
var spr = sprNode.addComponent(cc.Sprite); var spr = sprNode.addComponent(cc.Sprite);
spr.spriteFrame = sf; spr.spriteFrame = sf;
sprNode.width = _this4.hotZoneBg.width; sprNode.width = _this6.hotZoneBg.width;
sprNode.height = _this4.hotZoneBg.height; sprNode.height = _this6.hotZoneBg.height;
sprNode.parent = _this4.hotZoneBg; sprNode.parent = _this6.hotZoneBg;
_this4.hotZoneBg.scale = Math.min(sx, sy); _this6.hotZoneBg.scale = Math.min(sx, sy);
_this4.hotZoneBg.y = frameSize.height / 2 * _this4._cocosScale - _this4.hotZoneBg.height / 2 * _this4.hotZoneBg.scaleY; _this6.hotZoneBg.y = frameSize.height / 2 * _this6._cocosScale - _this6.hotZoneBg.height / 2 * _this6.hotZoneBg.scaleY;
var bgWhite = cc.find("Canvas/bgWhite"); var bgWhite = cc.find("Canvas/bgWhite");
bgWhite.y = _this4.hotZoneBg.y; bgWhite.y = _this6.hotZoneBg.y;
bgWhite.scaleX = _this4.hotZoneBg.width * _this4.hotZoneBg.scaleX / bgWhite.width; bgWhite.scaleX = _this6.hotZoneBg.width * _this6.hotZoneBg.scaleX / bgWhite.width;
bgWhite.scaleY = _this4.hotZoneBg.height * _this4.hotZoneBg.scaleY / bgWhite.height; bgWhite.scaleY = _this6.hotZoneBg.height * _this6.hotZoneBg.scaleY / bgWhite.height;
var canvas = cc.find("Canvas"); var canvas = cc.find("Canvas");
var shadowNode = new cc.Node(); var shadowNode = new cc.Node();
shadowNode.y = bgWhite.y; shadowNode.y = bgWhite.y;
...@@ -418,13 +476,13 @@ window.__require = function e(t, n, r) { ...@@ -418,13 +476,13 @@ window.__require = function e(t, n, r) {
canvas.addChild(shadowNode); canvas.addChild(shadowNode);
var ctx = shadowNode.addComponent(cc.Graphics); var ctx = shadowNode.addComponent(cc.Graphics);
ctx.fillColor = cc.Color.BLACK.setA(30); ctx.fillColor = cc.Color.BLACK.setA(30);
ctx.fillRect(-bgWhite.width / 2 + 8 / bgWhite.scaleX * _this4.hotZoneBg.scale, -bgWhite.height / 2 - 8 / bgWhite.scaleX * _this4.hotZoneBg.scale, bgWhite.width, bgWhite.height); ctx.fillRect(-bgWhite.width / 2 + 8 / bgWhite.scaleX * _this6.hotZoneBg.scale, -bgWhite.height / 2 - 8 / bgWhite.scaleX * _this6.hotZoneBg.scale, bgWhite.width, bgWhite.height);
ctx.fill(); ctx.fill();
shadowNode.zIndex = 1; shadowNode.zIndex = 1;
bgWhite.zIndex = 2; bgWhite.zIndex = 2;
bgBottom.y = -frameSize.height / 2 * _this4._cocosScale - 15 * bgBottom.scaleY; bgBottom.y = -frameSize.height / 2 * _this6._cocosScale - 15 * bgBottom.scaleY;
_this4.data.hotZoneItemArr.forEach(function(item) { _this6.data.hotZoneItemArr.forEach(function(item) {
_this4.setOneCircle(item); "0" == item.gIdx ? _this6.setOneCircle(item) : "1" == item.gIdx ? _this6.setOnePic(item) : "2" == item.gIdx && _this6.setOneAnima(item);
}); });
}); });
}, },
...@@ -435,7 +493,11 @@ window.__require = function e(t, n, r) { ...@@ -435,7 +493,11 @@ window.__require = function e(t, n, r) {
initBottomPart: function initBottomPart() { initBottomPart: function initBottomPart() {
var bgBottom = cc.find("Canvas/bgBottom"); var bgBottom = cc.find("Canvas/bgBottom");
var script = bgBottom.getComponent("bgBottom"); var script = bgBottom.getComponent("bgBottom");
script.setItemData(this.data.hotZoneItemArr); var picArr = [];
this.data.hotZoneItemArr.forEach(function(item) {
"0" == item.gIdx && picArr.push(item);
});
script.setItemData(picArr);
}, },
setOneAnima: function setOneAnima(data) { setOneAnima: function setOneAnima(data) {
var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width; var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
...@@ -499,8 +561,8 @@ window.__require = function e(t, n, r) { ...@@ -499,8 +561,8 @@ window.__require = function e(t, n, r) {
rectNode.isClicked = true; rectNode.isClicked = true;
console.log("clicked"); console.log("clicked");
if (animaNode.audioClip) { if (animaNode.audioClip) {
cc.audioEngine.stopAll(); cc.audioEngine.stopAllEffects();
cc.audioEngine.play(animaNode.audioClip, false, .8); cc.audioEngine.playEffect(animaNode.audioClip, false, .8);
} }
animationNames.length > 0 && dragonDisplay.playAnimation(animationNames[0], 1); animationNames.length > 0 && dragonDisplay.playAnimation(animationNames[0], 1);
}); });
...@@ -510,7 +572,7 @@ window.__require = function e(t, n, r) { ...@@ -510,7 +572,7 @@ window.__require = function e(t, n, r) {
}); });
}, },
setOnePic: function setOnePic(data) { setOnePic: function setOnePic(data) {
var _this5 = this; var _this7 = this;
var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width; var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
var picNode = new cc.Node(); var picNode = new cc.Node();
picNode.data = data; picNode.data = data;
...@@ -520,16 +582,30 @@ window.__require = function e(t, n, r) { ...@@ -520,16 +582,30 @@ window.__require = function e(t, n, r) {
}, function(err, img) { }, function(err, img) {
var spr = picNode.addComponent(cc.Sprite); var spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img); spr.spriteFrame = new cc.SpriteFrame(img);
var scale = rate / _this5.hotZoneBg.scaleY; var scale = rate / _this7.hotZoneBg.scaleY;
picNode.width = data.rect.width * scale; picNode.width = data.rect.width * scale;
picNode.height = data.rect.height * scale; picNode.height = data.rect.height * scale;
picNode.x = -_this5.hotZoneBg.width / 2 + data.rect.x * scale; picNode.x = -_this7.hotZoneBg.width / 2 + data.rect.x * scale;
picNode.y = _this5.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale; picNode.y = _this7.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
picNode.anchorX = picNode.anchorY = 0; picNode.anchorX = picNode.anchorY = 0;
data.audio_url && _this7.addPicAudio(picNode);
});
},
addPicAudio: function addPicAudio(picNode) {
var data = picNode.data;
cc.assetManager.loadRemote(data.audio_url, function(err, audioClip) {
picNode.audioClip = audioClip;
});
picNode.addComponent(cc.Button);
picNode.on("click", function() {
if (picNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(picNode.audioClip, false, .8);
}
}); });
}, },
setOneCircle: function setOneCircle(data) { setOneCircle: function setOneCircle(data) {
var _this6 = this; var _this8 = this;
var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width; var rate = this.hotZoneBg.scale * this.hotZoneBg.width / this.data.bgItem.rect.width;
var rectNode = new cc.Node(); var rectNode = new cc.Node();
rectNode.name = "rect" + data.index; rectNode.name = "rect" + data.index;
...@@ -546,7 +622,7 @@ window.__require = function e(t, n, r) { ...@@ -546,7 +622,7 @@ window.__require = function e(t, n, r) {
}); });
rectNode.addComponent(cc.Button); rectNode.addComponent(cc.Button);
rectNode.on("click", function() { rectNode.on("click", function() {
_this6.showCircle(rectNode); _this8.showCircle(rectNode);
}); });
var animaNode = new cc.Node(); var animaNode = new cc.Node();
animaNode.name = "anima_" + data.index; animaNode.name = "anima_" + data.index;
...@@ -592,8 +668,8 @@ window.__require = function e(t, n, r) { ...@@ -592,8 +668,8 @@ window.__require = function e(t, n, r) {
rectNode.isClicked = true; rectNode.isClicked = true;
console.log("clicked"); console.log("clicked");
if (animaNode.audioClip) { if (animaNode.audioClip) {
cc.audioEngine.stopAll(); cc.audioEngine.stopAllEffects();
cc.audioEngine.play(animaNode.audioClip, false, .8); cc.audioEngine.playEffect(animaNode.audioClip, false, .8);
} }
animationNames.length > 0 && dragonDisplay.playAnimation(animationNames[0], 1); animationNames.length > 0 && dragonDisplay.playAnimation(animationNames[0], 1);
}; };
...@@ -635,11 +711,11 @@ window.__require = function e(t, n, r) { ...@@ -635,11 +711,11 @@ window.__require = function e(t, n, r) {
}).start(); }).start();
}, },
initListener: function initListener() { initListener: function initListener() {
var _this7 = this; var _this9 = this;
var canvas = cc.find("Canvas"); var canvas = cc.find("Canvas");
canvas.addComponent(cc.Button); canvas.addComponent(cc.Button);
canvas.on("click", function() { canvas.on("click", function() {
_this7.hideCircle(); _this9.hideCircle();
}); });
}, },
hideCircle: function hideCircle() { hideCircle: function hideCircle() {
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
"main": true, "main": true,
"url": "app://editor/index.html", "url": "app://editor/index.html",
"windowType": "dockable", "windowType": "dockable",
"x": -1920, "x": 166,
"y": -634, "y": 136,
"width": 1280, "width": 1280,
"height": 736, "height": 736,
"layout": { "layout": {
......
{"version":"1.0.8","stats":{"/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/__qc_index__.js":"2021-01-21T02:50:42.204Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/script/scene.js":"2021-01-21T02:50:42.185Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/script/util.js":"2021-01-21T02:50:42.186Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/prefab/bgBottom.js":"2021-01-21T02:50:42.187Z"}} {"version":"1.0.8","stats":{"/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/__qc_index__.js":"2021-01-21T03:29:29.965Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/script/util.js":"2021-01-21T03:29:29.931Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/script/scene.js":"2021-01-21T03:29:29.929Z","/Users/limingzhe/Documents/workspace/pro_hw/pro_cocos/cc_mz_004/play/temp/quick-scripts/src/assets/mz_004/prefab/bgBottom.js":"2021-01-21T03:29:29.933Z"}}
...@@ -26,6 +26,156 @@ require('./assets/mz_004/script/util'); ...@@ -26,6 +26,156 @@ require('./assets/mz_004/script/util');
})(); })();
//------QC-SOURCE-SPLIT------ //------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/mz_004/script/util.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, '5ac8b17OKNJaawviu75DIhe', 'util');
// mz_004/script/util.js
"use strict";
exports.__esModule = true;
exports.getPosByAngle = getPosByAngle;
exports.getAngleByPos = getAngleByPos;
exports.exchangeNodePos = exchangeNodePos;
exports.RandomInt = RandomInt;
exports.randomSortByArr = randomSortByArr;
exports.setSprNodeMaxLen = setSprNodeMaxLen;
exports.localPosTolocalPos = localPosTolocalPos;
exports.getScaleRateBy2Node = getScaleRateBy2Node;
function getPosByAngle(angle, len) {
var radian = angle * Math.PI / 180;
var x = Math.sin(radian) * len;
var y = Math.cos(radian) * len;
return {
x: x,
y: y
};
}
function getAngleByPos(px, py, mx, my) {
var x = Math.abs(px - mx);
var y = Math.abs(py - my);
var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
var cos = y / z;
var radina = Math.acos(cos); // 用反三角函数求弧度
var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度
if (mx > px && my > py) {
// 鼠标在第四象限
angle = 180 - angle;
}
if (mx === px && my > py) {
// 鼠标在y轴负方向上
angle = 180;
}
if (mx > px && my === py) {
// 鼠标在x轴正方向上
angle = 90;
}
if (mx < px && my > py) {
// 鼠标在第三象限
angle = 180 + angle;
}
if (mx < px && my === py) {
// 鼠标在x轴负方向
angle = 270;
}
if (mx < px && my < py) {
// 鼠标在第二象限
angle = 360 - angle;
} // console.log('angle: ', angle);
return angle;
}
function exchangeNodePos(baseNode, targetNode) {
return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}
function RandomInt(a, b) {
if (b === void 0) {
b = 0;
}
var max = Math.max(a, b);
var min = Math.min(a, b);
return Math.floor(Math.random() * (max - min) + min);
}
function randomSortByArr(arr) {
var newArr = [];
var tmpArr = arr.concat();
while (tmpArr.length > 0) {
var randomIndex = Math.floor(tmpArr.length * Math.random());
newArr.push(tmpArr[randomIndex]);
tmpArr.splice(randomIndex, 1);
}
return newArr;
}
function setSprNodeMaxLen(sprNode, maxW, maxH) {
var sx = maxW / sprNode.width;
var sy = maxH / sprNode.height;
var s = Math.min(sx, sy);
sprNode.scale = Math.round(s * 1000) / 1000;
}
function localPosTolocalPos(baseNode, targetNode) {
var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
function getScaleRateBy2Node(baseNode, targetNode, maxFlag) {
if (maxFlag === void 0) {
maxFlag = true;
}
var worldRect1 = targetNode.getBoundingBoxToWorld();
var worldRect2 = baseNode.getBoundingBoxToWorld();
var sx = worldRect1.width / worldRect2.width;
var sy = worldRect1.height / worldRect2.height;
if (maxFlag) {
return Math.max(sx, sy);
} else {
return Math.min(sx, sy);
}
}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9tel8wMDQvc2NyaXB0L3V0aWwuanMiXSwibmFtZXMiOlsiZ2V0UG9zQnlBbmdsZSIsImFuZ2xlIiwibGVuIiwicmFkaWFuIiwiTWF0aCIsIlBJIiwieCIsInNpbiIsInkiLCJjb3MiLCJnZXRBbmdsZUJ5UG9zIiwicHgiLCJweSIsIm14IiwibXkiLCJhYnMiLCJ6Iiwic3FydCIsInBvdyIsInJhZGluYSIsImFjb3MiLCJmbG9vciIsImV4Y2hhbmdlTm9kZVBvcyIsImJhc2VOb2RlIiwidGFyZ2V0Tm9kZSIsImNvbnZlcnRUb05vZGVTcGFjZUFSIiwiX3BhcmVudCIsImNvbnZlcnRUb1dvcmxkU3BhY2VBUiIsImNjIiwidjIiLCJSYW5kb21JbnQiLCJhIiwiYiIsIm1heCIsIm1pbiIsInJhbmRvbSIsInJhbmRvbVNvcnRCeUFyciIsImFyciIsIm5ld0FyciIsInRtcEFyciIsImNvbmNhdCIsImxlbmd0aCIsInJhbmRvbUluZGV4IiwicHVzaCIsInNwbGljZSIsInNldFNwck5vZGVNYXhMZW4iLCJzcHJOb2RlIiwibWF4VyIsIm1heEgiLCJzeCIsIndpZHRoIiwic3kiLCJoZWlnaHQiLCJzIiwic2NhbGUiLCJyb3VuZCIsImxvY2FsUG9zVG9sb2NhbFBvcyIsIndvcmxkUG9zIiwicGFyZW50IiwibG9jYWxQb3MiLCJnZXRTY2FsZVJhdGVCeTJOb2RlIiwibWF4RmxhZyIsIndvcmxkUmVjdDEiLCJnZXRCb3VuZGluZ0JveFRvV29ybGQiLCJ3b3JsZFJlY3QyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxTQUFTQSxhQUFULENBQXVCQyxLQUF2QixFQUE4QkMsR0FBOUIsRUFBbUM7QUFFeEMsTUFBTUMsTUFBTSxHQUFHRixLQUFLLEdBQUdHLElBQUksQ0FBQ0MsRUFBYixHQUFrQixHQUFqQztBQUNBLE1BQU1DLENBQUMsR0FBR0YsSUFBSSxDQUFDRyxHQUFMLENBQVNKLE1BQVQsSUFBbUJELEdBQTdCO0FBQ0Es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Q0MsRUFBSCxDQUFNTCxVQUFVLENBQUNsQixDQUFqQixFQUFvQmtCLFVBQVUsQ0FBQ2hCLENBQS9CLENBQXhDLENBQWpCO0FBQ0EsTUFBTW1ELFFBQVEsR0FBR3BDLFFBQVEsQ0FBQ21DLE1BQVQsQ0FBZ0JqQyxvQkFBaEIsQ0FBcUNHLEVBQUUsQ0FBQ0MsRUFBSCxDQUFNNEIsUUFBUSxDQUFDbkQsQ0FBZixFQUFrQm1ELFFBQVEsQ0FBQ2pELENBQTNCLENBQXJDLENBQWpCO0FBQ0EsU0FBT21ELFFBQVA7QUFDQTs7QUFFTSxTQUFTQyxtQkFBVCxDQUE2QnJDLFFBQTdCLEVBQXVDQyxVQUF2QyxFQUFtRHFDLE9BQW5ELEVBQW1FO0FBQUEsTUFBaEJBLE9BQWdCO0FBQWhCQSxJQUFBQSxPQUFnQixHQUFOLElBQU07QUFBQTs7QUFDekUsTUFBTUMsVUFBVSxHQUFHdEMsVUFBVSxDQUFDdUMscUJBQVgsRUFBbkI7QUFDQSxNQUFNQyxVQUFVLEdBQUd6QyxRQUFRLENBQUN3QyxxQkFBVCxFQUFuQjtBQUVBLE1BQU1kLEVBQUUsR0FBR2EsVUFBVSxDQUFDWixLQUFYLEdBQW1CYyxVQUFVLENBQUNkLEtBQXpDO0FBQ0EsTUFBTUMsRUFBRSxHQUFHVyxVQUFVLENBQUNWLE1BQVgsR0FBb0JZLFVBQVUsQ0FBQ1osTUFBMUM7O0FBQ0EsTUFBSVMsT0FBSixFQUFhO0FBQ1osV0FBT3pELElBQUksQ0FBQzZCLEdBQUwsQ0FBU2dCLEVBQVQsRUFBYUUsRUFBYixDQUFQO0FBQ0EsR0FGRCxNQUVPO0FBQ04sV0FBTy9DLElBQUksQ0FBQzhCLEdBQUwsQ0FBU2UsRUFBVCxFQUFhRSxFQUFiLENBQVA7QUFDQTtBQUNEIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0UG9zQnlBbmdsZShhbmdsZSwgbGVuKSB7XG5cbiAgY29uc3QgcmFkaWFuID0gYW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xuICBjb25zdCB4ID0gTWF0aC5zaW4ocmFkaWFuKSAqIGxlbjtcbiAgY29uc3QgeSA9IE1hdGguY29zKHJhZGlhbikgKiBsZW47XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmdsZUJ5UG9zKHB4LCBweSwgbXgsIG15KSB7XG5cbiAgY29uc3QgeCA9IE1hdGguYWJzKHB4IC0gbXgpO1xuICBjb25zdCB5ID0gTWF0aC5hYnMocHkgLSBteSk7XG5cbiAgY29uc3QgeiA9IE1hdGguc3FydChNYXRoLnBvdyh4LCAyKSArIE1hdGgucG93KHksIDIpKTtcbiAgY29uc3QgY29zID0geSAvIHo7XG4gIGNvbnN0IHJhZGluYSA9IE1hdGguYWNvcyhjb3MpOyAvLyDnlKjlj43kuInop5Llh73mlbDmsYLlvKfluqZcbiAgbGV0IGFuZ2xlID0gTWF0aC5mbG9vcigxODAgLyAoTWF0aC5QSSAvIHJhZGluYSkgKiAxMDApIC8gMTAwOyAvLyDlsIblvKfluqbovazmjaLmiJDop5LluqZcblxuICBpZiAobXggPiBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5Zub6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgLSBhbmdsZTtcbiAgfVxuICBpZiAobXggPT09IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKh56L206LSf5pa55ZCR5LiKXG4gICAgYW5nbGUgPSAxODA7XG4gIH1cbiAgaWYgKG14ID4gcHggJiYgbXkgPT09IHB5KSB7Ly8g6byg5qCH5ZyoeOi9tOato+aWueWQkeS4ilxuICAgIGFuZ2xlID0gOTA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqOesrOS4ieixoemZkFxuICAgIGFuZ2xlID0gMTgwICsgYW5nbGU7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPT09IHB5KSB7Ly8g6byg5qCH5ZyoeOi9tOi0n+aWueWQkVxuICAgIGFuZ2xlID0gMjcwO1xuICB9XG4gIGlmIChteCA8IHB4ICYmIG15IDwgcHkpIHsvLyDpvKDmoIflnKjnrKzkuozosaHpmZBcbiAgICBhbmdsZSA9IDM2MCAtIGFuZ2xlO1xuICB9XG5cbiAgLy8gY29uc29sZS5sb2coJ2FuZ2xlOiAnLCBhbmdsZSk7XG4gIHJldHVybiBhbmdsZTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhjaGFuZ2VOb2RlUG9zKGJhc2VOb2RlLCB0YXJnZXROb2RlKSB7XG4gIHJldHVybiBiYXNlTm9kZS5jb252ZXJ0VG9Ob2RlU3BhY2VBUih0YXJnZXROb2RlLl9wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKHRhcmdldE5vZGUueCwgdGFyZ2V0Tm9kZS55KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUmFuZG9tSW50KGEsIGIgPSAwKSB7XG4gIGxldCBtYXggPSBNYXRoLm1heChhLCBiKTtcbiAgbGV0IG1pbiA9IE1hdGgubWluKGEsIGIpO1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikgKyBtaW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tU29ydEJ5QXJyKGFycikge1xuICBjb25zdCBuZXdBcnIgPSBbXTtcbiAgY29uc3QgdG1wQXJyID0gYXJyLmNvbmNhdCgpO1xuICB3aGlsZSAodG1wQXJyLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IodG1wQXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpO1xuICAgIG5ld0Fyci5wdXNoKHRtcEFycltyYW5kb21JbmRleF0pO1xuICAgIHRtcEFyci5zcGxpY2UocmFuZG9tSW5kZXgsIDEpO1xuICB9XG4gIHJldHVybiBuZXdBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTcHJOb2RlTWF4TGVuKHNwck5vZGUsIG1heFcsIG1heEgpIHtcbiAgY29uc3Qgc3ggPSBtYXhXIC8gc3ByTm9kZS53aWR0aDtcbiAgY29uc3Qgc3kgPSBtYXhIIC8gc3ByTm9kZS5oZWlnaHQ7XG4gIGNvbnN0IHMgPSBNYXRoLm1pbihzeCwgc3kpO1xuICBzcHJOb2RlLnNjYWxlID0gTWF0aC5yb3VuZChzICogMTAwMCkgLyAxMDAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxQb3NUb2xvY2FsUG9zKGJhc2VOb2RlLCB0YXJnZXROb2RlKSB7XG5cdGNvbnN0IHdvcmxkUG9zID0gdGFyZ2V0Tm9kZS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKHRhcmdldE5vZGUueCwgdGFyZ2V0Tm9kZS55KSk7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cbiJdfQ==
//------QC-SOURCE-SPLIT------
(function() { (function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}}; var __module = nodeEnv ? module : {exports:{}};
...@@ -711,156 +861,6 @@ cc._RF.pop(); ...@@ -711,156 +861,6 @@ cc._RF.pop();
} }
})(); })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9tel8wMDQvc2NyaXB0L3NjZW5lLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiYmFzZVdpZHRoIiwidHlwZSIsIkludGVnZXIiLCJiYXNlSGVpZ2h0Iiwib25Mb2FkIiwiZGVidWciLCJzZXREaXNwbGF5U3RhdHMiLCJpbml0U2NlbmVEYXRhIiwiaW5pdFNpemUiLCJfaW1hZ2VSZXNMaXN0IiwiX2F1ZGlvUmVzTGlzdCIsIl9hbmltYVJlc0xpc3QiLCJfZGVzaWduU2l6ZSIsInZpZXciLCJnZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJ3aW5kb3ciLCJjb3Vyc2V3YXJlIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJnZXREZWZhdWx0RGF0YSIsInByZWxvYWRJdGVtIiwiYWRkUHJlbG9hZEltYWdlIiwiYWRkUHJlbG9hZEF1ZGlvIiwiYWRkUHJlbG9hZEFuaW1hIiwicHJlbG9hZCIsImZ1bmMiLCJkYXRhSnNvbiIsImRhdGExIiwiSlNPTiIsInBhcnNlIiwiYmdJdGVtIiwicmVjdCIsImhlaWdodCIsIndpZHRoIiwieCIsInkiLCJ1cmwiLCJob3Rab25lSXRlbUFyciIsImlkIiwiaW1nU2NhbGUiLCJpbmRleCIsIml0ZW1UeXBlIiwibWFwU2NhbGUiLCJza2VKc29uRGF0YSIsIm5hbWUiLCJ0ZXhKc29uRGF0YSIsInRleFBuZ0RhdGEiLCJwaWNBcnIiLCJhdWRpb191cmwiLCJwaWNfdXJsIiwidGV4dCIsImNvbmNhdCIsInByZWxvYWRBcnIiLCJhc3NldE1hbmFnZXIiLCJsb2FkQW55IiwiZXJyIiwibG9hZEVuZCIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJwdXNoIiwiZm9yRWFjaCIsIml0ZW0iLCJiZ19hdWRpb191cmwiLCJpbml0VmlldyIsImluaXRCZyIsImluaXRIb3Rab25lIiwiaW5pdEJvdHRvbVBhcnQiLCJpbml0Q2lyY2xlIiwiaW5pdExpc3RlbmVyIiwiaW5pdE11c2ljIiwibG9hZFJlbW90ZSIsImNsaXAiLCJhdWRpb0VuZ2luZSIsInNldE11c2ljVm9sdW1lIiwiYXVkaW9JRCIsInBsYXlNdXNpYyIsIl9jb2Nvc1NjYWxlIiwiZnJhbWVTaXplIiwiZ2V0RnJhbWVTaXplIiwic3giLCJ3aW5TaXplIiwic3kiLCJzIiwiTWF0aCIsIm1pbiIsImJnTm9kZSIsImZpbmQiLCJzY2FsZSIsIm1heCIsImFuY2hvclgiLCJhbmNob3JZIiwiYmciLCJyZWN0Tm9kZSIsIk5vZGUiLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRDaGlsZCIsImN0eCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZmlsbENvbG9yIiwiYmdDb2xvciIsImZpbGxSZWN0IiwiZmlsbCIsImluaXRIb3Rab25lQmciLCJob3Rab25lQmciLCJwYXJlbnQiLCJ6SW5kZXgiLCJjYW52YXMiLCJsb2FkZXIiLCJsb2FkIiwiaW1nIiwiYWRkTWFzayIsImJveCIsImdldEJvdW5kaW5nQm94IiwidG1wUyIsInN1Yk51bSIsImdldFZpc2libGVTaXplIiwibWFwUyIsImJnQm90dG9tIiwic3ByTm9kZSIsInNmIiwiU3ByaXRlRnJhbWUiLCJzcHIiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImJnV2hpdGUiLCJzaGFkb3dOb2RlIiwiQ29sb3IiLCJCTEFDSyIsInNldEEiLCJnSWR4Iiwic2V0T25lQ2lyY2xlIiwic2V0T25lUGljIiwic2V0T25lQW5pbWEiLCJub2RlIiwibWFzayIsIk1hc2siLCJUeXBlIiwiUkVDVCIsInNjcmlwdCIsImdldENvbXBvbmVudCIsInNldEl0ZW1EYXRhIiwicmF0ZSIsImxpbmVXaWR0aCIsInN0cm9rZUNvbG9yIiwiV0hJVEUiLCJpc1Nob3dEZWJ1Z0xpbmUiLCJzdHJva2UiLCJhbmltYU5vZGUiLCJhdWRpb0NsaXAiLCJkcmFnb25EaXNwbGF5IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJpbWFnZSIsInNrZSIsImF0bGFzIiwiZXJyb3IiLCJ0ZXh0dXJlIiwiYXRsYXNKc29uIiwiZHJhZ29uQm9uZXNKc29uIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwiYXNzZXQiLCJEcmFnb25Cb25lc0Fzc2V0IiwiZHJhZ29uQXRsYXNBc3NldCIsImRyYWdvbkFzc2V0IiwianNvbiIsImFybWF0dXJlcyIsImFybWF0dXJlTmFtZXMiLCJpIiwibGVuZ3RoIiwiZGVmYXVsdEFybWF0dXJlTmFtZSIsImFybWF0dXJlTmFtZSIsImRlZmF1bHRBcm1hdHVyZSIsImFuaW1hdGlvbnMiLCJhbmltYXRpb24iLCJhbmltYXRpb25OYW1lcyIsIkJ1dHRvbiIsIm9uIiwiaXNDbGlja2VkIiwic3RvcEFsbEVmZmVjdHMiLCJwbGF5RWZmZWN0IiwicGxheUFuaW1hdGlvbiIsInBpY05vZGUiLCJhZGRQaWNBdWRpbyIsInNob3dDaXJjbGUiLCJzaG93QW5pbWEiLCJfY2lyY2xlIiwiYWN0aXZlIiwiaXRlbU5vZGUiLCJoaWRlQ2lyY2xlIiwicG9zIiwib3BhY2l0eSIsInR3ZWVuIiwidG8iLCJlYXNpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7O0FBUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ1IsYUFBU0QsRUFBRSxDQUFDRSxTQURKO0FBR1JDLEVBQUFBLFVBQVUsRUFBRTtBQUNYQyxJQUFBQSxTQUFTLEVBQUU7QUFDVixpQkFBUyxJQURDO0FBRVZDLE1BQUFBLElBQUksRUFBRUwsRUFBRSxDQUFDTTtBQUZDLEtBREE7QUFLWEMsSUFBQUEsVUFBVSxFQUFFO0FBQ1gsaUJBQVMsR0FERTtBQUVYRixNQUFBQSxJQUFJLEVBQUVMLEVBQUUsQ0FBQ007QUFGRSxLQUxELENBU1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXZCVyxHQUhKO0FBNkJSO0FBRUE7QUFDQTtBQUVBRSxFQUFBQSxNQWxDUSxv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SixHQUFHLENBQUMzSixDQUFyQjtBQUVBLFNBQUt1SixPQUFMLENBQWFDLE1BQWIsR0FBc0IsSUFBdEI7QUFFQSxTQUFLRCxPQUFMLENBQWFLLE9BQWIsR0FBdUIsQ0FBdkI7QUFDQXZNLElBQUFBLEVBQUUsQ0FBQ3dNLEtBQUgsQ0FBUyxLQUFLTixPQUFkLEVBQ0VPLEVBREYsQ0FDSyxDQURMLEVBQ1E7QUFBQ0YsTUFBQUEsT0FBTyxFQUFFO0FBQVYsS0FEUixFQUN3QjtBQUFDRyxNQUFBQSxNQUFNLEVBQUU7QUFBVCxLQUR4QixFQUVFdkwsS0FGRjtBQUlBLEdBaHNCTztBQWtzQlJ3RCxFQUFBQSxZQWxzQlEsMEJBa3NCTztBQUFBOztBQUNkLFFBQU13QyxNQUFNLEdBQUduSCxFQUFFLENBQUM2RixJQUFILENBQVEsUUFBUixDQUFmO0FBQ0FzQixJQUFBQSxNQUFNLENBQUNWLFlBQVAsQ0FBb0J6RyxFQUFFLENBQUN3TCxNQUF2QjtBQUNBckUsSUFBQUEsTUFBTSxDQUFDc0UsRUFBUCxDQUFVLE9BQVYsRUFBbUIsWUFBTTtBQUN4QixNQUFBLE1BQUksQ0FBQ1ksVUFBTDtBQUNBLEtBRkQ7QUFHQSxHQXhzQk87QUEwc0JSQSxFQUFBQSxVQTFzQlEsd0JBMHNCSztBQUNaLFNBQUtILE9BQUwsQ0FBYUUsUUFBYixHQUF3QixJQUF4QjtBQUNBcE0sSUFBQUEsRUFBRSxDQUFDd00sS0FBSCxDQUFTLEtBQUtOLE9BQWQsRUFDRU8sRUFERixDQUNLLENBREwsRUFDUTtBQUFDRixNQUFBQSxPQUFPLEVBQUU7QUFBVixLQURSLEVBQ3NCO0FBQUNHLE1BQUFBLE1BQU0sRUFBRTtBQUFULEtBRHRCLEVBRUV2TCxLQUZGO0FBR0EsR0Evc0JPLENBa3RCUjs7QUFsdEJRLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxuLy8gTGVhcm4gQXR0cmlidXRlOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXG5cbmltcG9ydCB7Z2V0U2NhbGVSYXRlQnkyTm9kZSwgbG9jYWxQb3NUb2xvY2FsUG9zfSBmcm9tIFwiLi91dGlsXCI7XG5cbmNjLkNsYXNzKHtcblx0ZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG5cdHByb3BlcnRpZXM6IHtcblx0XHRiYXNlV2lkdGg6IHtcblx0XHRcdGRlZmF1bHQ6IDEyODAsXG5cdFx0XHR0eXBlOiBjYy5JbnRlZ2VyXG5cdFx0fSxcblx0XHRiYXNlSGVpZ2h0OiB7XG5cdFx0XHRkZWZhdWx0OiA3MjAsXG5cdFx0XHR0eXBlOiBjYy5JbnRlZ2VyXG5cdFx0fVxuXHRcdC8vIGZvbzoge1xuXHRcdC8vICAgICAvLyBBVFRSSUJVVEVTOlxuXHRcdC8vICAgICBkZWZhdWx0OiBudWxsLCAgICAgICAgLy8gVGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIG9ubHkgd2hlbiB0aGUgY29tcG9uZW50IGF0dGFjaGluZ1xuXHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBub2RlIGZvciB0aGUgZmlyc3QgdGltZVxuXHRcdC8vICAgICB0eXBlOiBjYy5TcHJpdGVGcmFtZSwgLy8gb3B0aW9uYWwsIGRlZmF1bHQgaXMgdHlwZW9mIGRlZmF1bHRcblx0XHQvLyAgICAgc2VyaWFsaXphYmxlOiB0cnVlLCAgIC8vIG9wdGlvbmFsLCBkZWZhdWx0IGlzIHRydWVcblx0XHQvLyB9LFxuXHRcdC8vIGJhcjoge1xuXHRcdC8vICAgICBnZXQgKCkge1xuXHRcdC8vICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhcjtcblx0XHQvLyAgICAgfSxcblx0XHQvLyAgICAgc2V0ICh2YWx1ZSkge1xuXHRcdC8vICAgICAgICAgdGhpcy5fYmFyID0gdmFsdWU7XG5cdFx0Ly8gICAgIH1cblx0XHQvLyB9LFxuXHR9LFxuXG5cdC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxuXG5cdC8vIGJhc2VXaWR0aDogMTI4MDtcblx0Ly8gYmFzZUhlaWdodDogNzIwO1xuXG5cdG9uTG9hZCgpIHtcblx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdHRoaXMuaW5pdFNjZW5lRGF0YSgpO1xuXHRcdHRoaXMuaW5pdFNpemUoKTtcblx0fSxcblxuXHRpbml0U2NlbmVEYXRhKCkge1xuXHRcdHRoaXMuX2ltYWdlUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2FuaW1hUmVzTGlzdCA9IFtdO1xuXHR9LFxuXG5cdF9kZXNpZ25TaXplOiBudWxsLFxuXHRpbml0U2l6ZSgpIHtcblx0XHR0aGlzLl9kZXNpZ25TaXplID0gY2Mudmlldy5nZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSgpO1xuXG5cdH0sXG5cblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnaGFzIHdpbmRvdycpO1xuXHRcdFx0Z2V0RGF0YSA9IHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGE7XG5cdFx0fVxuXHRcdGdldERhdGEoKGRhdGEpID0+IHtcblx0XHRcdGNvbnNvbGUubG9nKCdkYXRhOicsIGRhdGEpO1xuXHRcdFx0dGhpcy5kYXRhID0gZGF0YSB8fCB0aGlzLmdldERlZmF1bHREYXRhKCk7XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KVxuXHR9LFxuXG5cblx0X2ltYWdlUmVzTGlzdDogbnVsbCxcblx0X2F1ZGlvUmVzTGlzdDogbnVsbCxcblx0X2FuaW1hUmVzTGlzdDogbnVsbCxcblx0cHJlbG9hZEl0ZW0oKSB7XG5cdFx0dGhpcy5hZGRQcmVsb2FkSW1hZ2UoKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBdWRpbygpO1xuXHRcdHRoaXMuYWRkUHJlbG9hZEFuaW1hKCk7XG5cdFx0dGhpcy5wcmVsb2FkKCk7XG5cdH0sXG5cblx0Z2V0RGF0YShmdW5jKSB7XG5cdFx0ZnVuYyh0aGlzLmdldERlZmF1bHREYXRhKCkpO1xuXHR9LFxuXG5cdGdldERlZmF1bHREYXRhKCkge1xuXG5cdFx0Y29uc3QgZGF0YUpzb24gPSAne1wiYmdDb2xvcklkXCI6MCxcImJnQ29sb3JcIjpcIiNmOWJkMDNcIixcImJnSXRlbVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MzllMmY1OGNiMTgxN2Y4NTJkOWMwOWVjMWFjN2M4Yi5wbmdcIixcInJlY3RcIjp7XCJ4XCI6MjY1LjE4LFwieVwiOjAsXCJ3aWR0aFwiOjc3Ni42NSxcImhlaWdodFwiOjUwMH19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2MTExOTc5NjIwNzBcIixcImluZGV4XCI6MCxcInBpY191cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGNlMjVhMzYzMTNlZGI5ZGZhM2RlNzdiYTg1Y2I2YjkucG5nXCIsXCJ0ZXh0XCI6XCJhYWFcIixcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDhkYWE4YjRkOGZmNzA3YjNhMzY4MGU4MGJjNDc2MS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjAyMTA5Mzc1LFwiaW1nU2NhbGVcIjowLjcwMjkyNjg1Njg4NDA1NzksXCJtYXBTY2FsZVwiOjEuMDIxMDkzNzUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZGIxYTBlZDZiN2UzM2Q1ZjlmMjg0ZTFhNTk4MDM0OS5qc29uXCIsXCJuYW1lXCI6XCJVYmJpZV9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzQyMzJlMDBjOWIxZDI3MmU2NTBlNTFkYmI3ODVlNDk4Lmpzb25cIixcIm5hbWVcIjpcIlViYmllX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8yZTU2ZGJlMzEzNDM4MDk1MmE3MjVlYWNjZWI4NjM1OS5wbmdcIixcIm5hbWVcIjpcIlViYmllX3RleC5wbmdcIn0sXCJnSWR4XCI6XCIwXCIsXCJyZWN0XCI6e1wieFwiOi0xLjY4LFwieVwiOi0xLFwid2lkdGhcIjoyMDAsXCJoZWlnaHRcIjoyMDB9fSx7XCJpZFwiOlwiMTYxMTE5Nzk2NjY0NFwiLFwiaW5kZXhcIjoxLFwicGljX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jOGFiZjczODNkNjViY2JkYmE4ZjM5MDc4NWNlY2U2MC5wbmdcIixcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xOTYxZDgwN2M5NDRlNjU1MWFmMDJjN2I1N2UxMTdmMy5tcDNcIixcIml0ZW1UeXBlXCI6XCJwaWNcIixcImZvbnRTY2FsZVwiOjEuMDIxMDkzNzUsXCJpbWdTY2FsZVwiOjAuMjUzNjIzMTg4NDA1Nzk3MSxcIm1hcFNjYWxlXCI6MS4wMjEwOTM3NSxcImdJZHhcIjpcIjFcIixcInJlY3RcIjp7XCJ4XCI6Ny4zMixcInlcIjo0MjQsXCJ3aWR0aFwiOjcwLFwiaGVpZ2h0XCI6NzB9fSx7XCJpZFwiOlwiMTYxMTE5Nzk3MTEwNFwiLFwiaW5kZXhcIjoyLFwiYXVkaW9fdXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY5NGE4MGUyMWNlZmQ2ZTUzODgwZDYxZTY4NGUxYzk0Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjEuMDIxMDkzNzUsXCJpbWdTY2FsZVwiOjEsXCJtYXBTY2FsZVwiOjEuMDIxMDkzNzUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83ZWZjZWFjNTZjYzlhNjFiMTA3YTExNDU3MzkwZDNjNi5qc29uXCIsXCJuYW1lXCI6XCJmaW5pc2gxX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZlOGRiNGZiMzg1MTI3ZGU5ZTNjZDlkOGE5NTMwZjcuanNvblwiLFwibmFtZVwiOlwiZmluaXNoMV90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vOTZmNWM3YTlhYzlmNDMzYzljODcwYzM4YjA4MTFhMzgucG5nXCIsXCJuYW1lXCI6XCJmaW5pc2gxX3RleC5wbmdcIn0sXCJnSWR4XCI6XCIyXCIsXCJyZWN0XCI6e1wieFwiOjU3NS4zMixcInlcIjozMDMsXCJ3aWR0aFwiOjIwMCxcImhlaWdodFwiOjIwMH19XSxcImJnX2F1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZmE2NWQ1ZjY2N2EyZWY5MDU5ZDNkZmM1ZGY3NGE0ZC5tcDNcIn0nXG5cdFx0Y29uc3QgZGF0YTEgPSBKU09OLnBhcnNlKGRhdGFKc29uKTtcblx0XHRyZXR1cm4gZGF0YTE7XG5cblx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0YmdJdGVtOiB7XG5cdFx0XHRcdHJlY3Q6IHtcblx0XHRcdFx0XHRoZWlnaHQ6IDM4MCxcblx0XHRcdFx0XHR3aWR0aDogNjc1LjU2LFxuXHRcdFx0XHRcdHg6IDE2MC43Mixcblx0XHRcdFx0XHR5OiAwXG5cdFx0XHRcdH0sXG5cdFx0XHRcdC8vIHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2IzMWM1ODgxZWE1ZjYwN2MxZDM1NDAwMjlhN2QyOWM3LnBuZ1wiXG5cdFx0XHRcdHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1NmIwYThkZTRjYjg0ZWQ3MGU3MGQ2MGY4N2E1OTAxLmpwZ1wiXG5cdFx0XHR9LFxuXHRcdFx0aG90Wm9uZUl0ZW1BcnI6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlkOiAxNTk1OTE5NjA4MjQ0LFxuXHRcdFx0XHRcdGltZ1NjYWxlOiAxLFxuXHRcdFx0XHRcdGluZGV4OiAwLFxuXHRcdFx0XHRcdGl0ZW1UeXBlOiBcInJlY3RcIixcblx0XHRcdFx0XHRtYXBTY2FsZTogMC45MDMxMjUsXG5cdFx0XHRcdFx0cmVjdDoge1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxMjAuODQsXG5cdFx0XHRcdFx0XHR3aWR0aDogMTE1Ljk5LFxuXHRcdFx0XHRcdFx0eDogMzc4LjY4LFxuXHRcdFx0XHRcdFx0eTogMTkxLjNcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHNrZUpzb25EYXRhOiB7XG5cdFx0XHRcdFx0XHRuYW1lOiBcImZpbmlzaDFfc2tlLmpzb25cIixcblx0XHRcdFx0XHRcdHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkODI1ZGNjZWVhMjk4ZDExNDZiZTgwNjdhZTNkMTdmLmpzb25cIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dGV4SnNvbkRhdGE6IHtcblx0XHRcdFx0XHRcdG5hbWU6IFwiZmluaXNoMV90ZXguanNvblwiLFxuXHRcdFx0XHRcdFx0dXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ2Zjg5OTFiNzI5ZmEzZTVhN2Y0ODAyZGU4MjhlZmEuanNvblwiXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0ZXhQbmdEYXRhOiB7XG5cdFx0XHRcdFx0XHRuYW1lOiBcImZpbmlzaDFfdGV4LnBuZ1wiLFxuXHRcdFx0XHRcdFx0dXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWEwYzVhZjNlOTUyYWNkMGFjODNhNmU1YzZmMDNmZjEucG5nXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdF0sXG5cblx0XHRcdHBpY0FycjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YXVkaW9fdXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMDEyOGE1OTA1N2U2M2M0YzZiNGI5NjU1NmQwNzdhOTgubXAzXCIsXG5cdFx0XHRcdFx0cGljX3VybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE4ZjJhMDI5ZTAyZDY3OWRhOGQ0Mjc0NmRhZWEyMjhmLnBuZ1wiLFxuXHRcdFx0XHRcdHRleHQ6IFwiMTExMVwiLFxuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fVxuXG5cdFx0ZGF0YS5waWNBcnIgPSBkYXRhLnBpY0Fyci5jb25jYXQoZGF0YS5waWNBcnIpO1xuXHRcdGRhdGEucGljQXJyID0gZGF0YS5waWNBcnIuY29uY2F0KGRhdGEucGljQXJyKTtcblx0XHRkYXRhLnBpY0FyciA9IGRhdGEucGljQXJyLmNvbmNhdChkYXRhLnBpY0Fycik7XG5cdFx0ZGF0YS5waWNBcnIgPSBkYXRhLnBpY0Fyci5jb25jYXQoZGF0YS5waWNBcnIpO1xuXHRcdGRhdGEucGljQXJyID0gZGF0YS5waWNBcnIuY29uY2F0KGRhdGEucGljQXJyKTtcblx0XHRyZXR1cm4gZGF0YTtcblx0fSxcblxuXHRwcmVsb2FkKCkge1xuXG5cdFx0Y29uc3QgcHJlbG9hZEFyciA9IHRoaXMuX2ltYWdlUmVzTGlzdC5jb25jYXQodGhpcy5fYXVkaW9SZXNMaXN0KS5jb25jYXQodGhpcy5fYW5pbWFSZXNMaXN0KTtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZEFueShwcmVsb2FkQXJyLCBudWxsLCBudWxsLCAoZXJyLCBkYXRhKSA9PiB7XG5cdFx0XHRjb25zb2xlLmxvZygnIHByZWxvYWQgZGF0YSwgJywgZGF0YSk7XG5cblx0XHRcdC8vIHR5cGVvZlxuXHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSkge1xuXHRcdFx0XHR3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXG5cdGFkZFByZWxvYWRJbWFnZSgpIHtcblx0XG5cdFx0aWYgKHRoaXMuZGF0YS5iZ0l0ZW0pIHtcblx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmdJdGVtLnVybCB9KTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRcdGlmIChpdGVtLnBpY191cmwpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IGl0ZW0ucGljX3VybCB9KTtcblx0XHRcdH1cblx0XHR9KVxuXG5cdH0sXG5cblx0YWRkUHJlbG9hZEF1ZGlvKCkge1xuXG5cdFx0aWYgKCF0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHt1cmw6IGl0ZW0uYXVkaW9fdXJsfSk7XG5cdFx0fSlcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHt1cmw6IHRoaXMuYmdfYXVkaW9fdXJsfSk7XG5cdH0sXG5cblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXHRcdGlmICghdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuZGF0YS5ob3Rab25lSXRlbUFyci5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRpZiAoaXRlbS5za2VKc29uRGF0YSkge1xuXHRcdFx0XHR0aGlzLl9hbmltYVJlc0xpc3QucHVzaCh7IHVybDogaXRlbS5za2VKc29uRGF0YS51cmwgfHwgJycgfSk7XG5cdFx0XHRcdHRoaXMuX2FuaW1hUmVzTGlzdC5wdXNoKHsgdXJsOiBpdGVtLnRleEpzb25EYXRhLnVybCB8fCAnJ30pO1xuXHRcdFx0XHR0aGlzLl9hbmltYVJlc0xpc3QucHVzaCh7IHVybDogaXRlbS50ZXhQbmdEYXRhLnVybCB8fCAnJ30pO1xuXHRcdFx0fVxuXHRcdH0pXG5cdH0sXG5cblx0bG9hZEVuZCgpIHtcblx0XHR0aGlzLmluaXRWaWV3KCk7XG5cdH0sXG5cblx0aW5pdFZpZXcoKSB7XG5cdFx0dGhpcy5pbml0QmcoKTtcblx0XHR0aGlzLmluaXRIb3Rab25lKCk7XG5cdFx0dGhpcy5pbml0Qm90dG9tUGFydCgpO1xuXHRcdHRoaXMuaW5pdENpcmNsZSgpO1xuXHRcdHRoaXMuaW5pdExpc3RlbmVyKCk7XG5cdFx0dGhpcy5pbml0TXVzaWMoKTtcblx0fSxcblxuXG5cdGluaXRNdXNpYygpIHtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh0aGlzLmRhdGEuYmdfYXVkaW9fdXJsLCAoZXJyLCBjbGlwKSA9PiB7XG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgwLjMpO1xuXHRcdFx0Y29uc3QgYXVkaW9JRCA9IGNjLmF1ZGlvRW5naW5lLnBsYXlNdXNpYyhjbGlwLCB0cnVlKTtcblx0XHR9KTtcblx0fSxcblxuXHRfY29jb3NTY2FsZTogbnVsbCxcblx0aW5pdEJnKCkge1xuXHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cblx0XHRsZXQgc3ggPSBjYy53aW5TaXplLndpZHRoIC8gZnJhbWVTaXplLndpZHRoO1xuXHRcdGxldCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gZnJhbWVTaXplLmhlaWdodDtcblx0XHRsZXQgcyA9IE1hdGgubWluKHN4LCBzeSk7XG5cblx0XHR0aGlzLl9jb2Nvc1NjYWxlID0gcztcblxuXHRcdGNvbnN0IGJnTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZycpO1xuXHRcdC8vIGNvbnN0IHN4ID0gY2Mud2luU2l6ZS53aWR0aCAvIGJnTm9kZS53aWR0aDtcblx0XHQvLyBjb25zdCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gYmdOb2RlLmhlaWdodDtcblx0XHQgc3ggPSBmcmFtZVNpemUud2lkdGggLyBiZ05vZGUud2lkdGg7XG5cdFx0IHN5ID0gZnJhbWVTaXplLmhlaWdodCAvIGJnTm9kZS5oZWlnaHQ7XG5cdFx0YmdOb2RlLnNjYWxlID0gTWF0aC5tYXgoc3gsIHN5KSAqIHM7XG5cdFx0YmdOb2RlLmFuY2hvclggPSAxO1xuXHRcdGJnTm9kZS5hbmNob3JZID0gMDtcblx0XHRiZ05vZGUueCA9IGZyYW1lU2l6ZS53aWR0aCAvIDIgKiBzO1xuXHRcdGJnTm9kZS55ID0gLWZyYW1lU2l6ZS5oZWlnaHQgLyAyICogcztcblxuXG5cblx0XG5cdFx0Y29uc3QgYmcgPSBjYy5maW5kKCdDYW52YXMvYmcnKTtcblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUueCA9IC1iZy54O1xuXHRcdHJlY3ROb2RlLnkgPSAtYmcueTtcblx0XHRyZWN0Tm9kZS5zY2FsZVggPSBiZy5zY2FsZVg7XG5cdFx0cmVjdE5vZGUuc2NhbGVZID0gYmcuc2NhbGVZO1xuXHRcdGJnLmFkZENoaWxkKHJlY3ROb2RlKTtcblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGN0eC5maWxsQ29sb3IgPSB0aGlzLmRhdGEuYmdDb2xvciB8fCAnI2Y5YmQwMyc7XG5cdFx0Y3R4LmZpbGxSZWN0KC1iZy53aWR0aCAvIDIgLCAtYmcuaGVpZ2h0IC8gMiwgYmcud2lkdGgsIGJnLmhlaWdodCk7XG5cdFx0Y3R4LmZpbGwoKTtcblxuXHR9LFxuXG5cblx0aW5pdEhvdFpvbmUoKSB7XG5cdFx0dGhpcy5pbml0SG90Wm9uZUJnKCk7XG5cblx0fSxcblxuXHRob3Rab25lQmc6IG51bGwsXG5cdGluaXRIb3Rab25lQmcoKSB7XG5cdFx0dGhpcy5ob3Rab25lQmcgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHRoaXMuaG90Wm9uZUJnLm5hbWUgPSAnaG90Wm9uZUJnJztcblx0XHR0aGlzLmhvdFpvbmVCZy5wYXJlbnQgPSBjYy5maW5kKCdDYW52YXMnKTtcblx0XHR0aGlzLmhvdFpvbmVCZy56SW5kZXggPSA0O1xuXG5cblx0XHRjb25zdCBjYW52YXMgPSBjYy5maW5kKCdDYW52YXMvTWFpbiBDYW1lcmEnKTtcblx0XHQvLyBjb25zb2xlLmxvZygnY2FudmFzOiAnLCBjYW52YXMpO1xuXG5cdFx0aWYgKCF0aGlzLmRhdGEuYmdJdGVtKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y2MubG9hZGVyLmxvYWQoe3VybDogdGhpcy5kYXRhLmJnSXRlbS51cmx9LCAoZXJyLCBpbWcpID0+IHtcblxuXHRcdFx0dGhpcy5hZGRNYXNrKHRoaXMuaG90Wm9uZUJnKTtcblxuXHRcdFx0dGhpcy5ob3Rab25lQmcud2lkdGggPSBpbWcud2lkdGg7XG5cdFx0XHR0aGlzLmhvdFpvbmVCZy5oZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXG5cblxuXHRcdFx0Y29uc3QgYm94ID0gdGhpcy5ob3Rab25lQmcuZ2V0Qm91bmRpbmdCb3goKTtcblxuXG5cdFx0XHRjb25zdCB0bXBTID0gNjQwIC8gNzIwO1xuXHRcdFx0bGV0IHN1Yk51bSA9IDcyMCAtIDY0MDtcblx0XHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cdFx0XHRjb25zdCB3aW5TaXplID0gY2Mud2luU2l6ZTtcblxuXHRcdFx0Y29uc29sZS5sb2coJ3RoaXMuaG90Wm9uZUJnLmJveDogJywgdGhpcy5ob3Rab25lQmcuZ2V0Qm91bmRpbmdCb3goKSk7XG5cdFx0XHRjb25zb2xlLmxvZygnbGV0IHZpc2lTaXplPWNjLmRpcmVjdG9yLmdldFZpc2libGVTaXplKCk7OiAnLCBjYy52aWV3LmdldFZpc2libGVTaXplKCkpO1xuXHRcdFx0Y29uc29sZS5sb2coJ2xmcmFtZVNpemU6ICcsIGZyYW1lU2l6ZSk7XG5cblx0XHRcdGxldCBzeCA9IGZyYW1lU2l6ZS53aWR0aCAvIHRoaXMuX2Rlc2lnblNpemUud2lkdGg7XG5cdFx0XHRsZXQgc3kgPSBmcmFtZVNpemUuaGVpZ2h0IC8gdGhpcy5fZGVzaWduU2l6ZS5oZWlnaHQ7XG5cdFx0XHRjb25zdCBtYXBTID0gTWF0aC5taW4oc3gsIHN5KTtcblx0XHRcdC8vIGNvbnN0IHN5ID0gY2FudmFzLmhlaWdodCAqIHRtcFMgLyBib3guaGVpZ2h0O1xuXG5cblx0XHRcdGNvbnN0IGJnQm90dG9tID0gY2MuZmluZCgnQ2FudmFzL2JnQm90dG9tJyk7XG5cdFx0XHRiZ0JvdHRvbS5zY2FsZSA9IG1hcFMgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHRcdFx0Ly8gc3ViTnVtID0gYmdCb3R0b20uaGVpZ2h0O1xuXG5cdFx0XHQgc3ggPSBmcmFtZVNpemUud2lkdGggKiB0aGlzLl9jb2Nvc1NjYWxlIC8gaW1nLndpZHRoO1xuXHRcdFx0IHN5ID0gKGZyYW1lU2l6ZS5oZWlnaHQgKiB0aGlzLl9jb2Nvc1NjYWxlIC0gc3ViTnVtICogbWFwUyAqIHRoaXMuX2NvY29zU2NhbGUpIC8gaW1nLmhlaWdodDtcblxuXG5cdFx0XHRjb25zdCBzcHJOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdHZhciBzZiA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpO1xuXHRcdFx0Ly8gY29uc3Qgc3ByID0gdGhpcy5ob3Rab25lQmcuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRjb25zdCBzcHIgPSBzcHJOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gc2Zcblx0XHRcdHNwck5vZGUud2lkdGggPSB0aGlzLmhvdFpvbmVCZy53aWR0aDtcblx0XHRcdHNwck5vZGUuaGVpZ2h0ID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0O1xuXHRcdFx0c3ByTm9kZS5wYXJlbnQgPSB0aGlzLmhvdFpvbmVCZztcblxuXHRcdFx0dGhpcy5ob3Rab25lQmcuc2NhbGUgPSBNYXRoLm1pbihzeCwgc3kpO1xuXG5cdFx0XHQvLyB0aGlzLmhvdFpvbmVCZy55ID0gLWZyYW1lU2l6ZS5oZWlnaHQgLyAyICogdGhpcy5fY29jb3NTY2FsZSArIHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgKiB0aGlzLmhvdFpvbmVCZy5zY2FsZVkgKyAoc3ViTnVtICogbWFwUyAqIHRoaXMuX2NvY29zU2NhbGUpO1xuXHRcdFx0dGhpcy5ob3Rab25lQmcueSA9IGZyYW1lU2l6ZS5oZWlnaHQgLyAyICogdGhpcy5fY29jb3NTY2FsZSAtIHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgKiB0aGlzLmhvdFpvbmVCZy5zY2FsZVkgO1xuXG5cblx0XHRcdC8vIHRoaXMuaG90Wm9uZUJnLm9wYWNpdHkgPSAyMDtcblxuXHRcdFx0Y29uc3QgYmdXaGl0ZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZ1doaXRlJyk7XG5cdFx0XHRiZ1doaXRlLnkgPSB0aGlzLmhvdFpvbmVCZy55O1xuXG5cdFx0XHRiZ1doaXRlLnNjYWxlWCA9IHRoaXMuaG90Wm9uZUJnLndpZHRoICogdGhpcy5ob3Rab25lQmcuc2NhbGVYIC8gYmdXaGl0ZS53aWR0aDtcblx0XHRcdGJnV2hpdGUuc2NhbGVZID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0ICogdGhpcy5ob3Rab25lQmcuc2NhbGVZIC8gYmdXaGl0ZS5oZWlnaHQ7XG5cblxuXHRcdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0XHRjb25zdCBzaGFkb3dOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdHNoYWRvd05vZGUueSA9IGJnV2hpdGUueTtcblx0XHRcdHNoYWRvd05vZGUuc2NhbGVYID0gYmdXaGl0ZS5zY2FsZVg7XG5cdFx0XHRzaGFkb3dOb2RlLnNjYWxlWSA9IGJnV2hpdGUuc2NhbGVZO1xuXHRcdFx0Y2FudmFzLmFkZENoaWxkKHNoYWRvd05vZGUpO1xuXHRcdFx0Y29uc3QgY3R4ID0gc2hhZG93Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdFx0Y3R4LmZpbGxDb2xvciA9IGNjLkNvbG9yLkJMQUNLLnNldEEoMzApO1xuXHRcdFx0Ly8gY3R4LmZpbGxSZWN0KDUsIDUsIHRoaXMuaG90Wm9uZUJnLndpZHRoKnRoaXMuaG90Wm9uZUJnLnNjYWxlWCwgdGhpcy5ob3Rab25lQmcuaGVpZ2h0ICogdGhpcy5ob3Rab25lQmcuc2NhbGVZKTtcblx0XHRcdGN0eC5maWxsUmVjdCgtYmdXaGl0ZS53aWR0aCAvIDIgKyA4IC8gYmdXaGl0ZS5zY2FsZVggKiB0aGlzLmhvdFpvbmVCZy5zY2FsZSwgLWJnV2hpdGUuaGVpZ2h0IC8gMiAtIDggLyBiZ1doaXRlLnNjYWxlWCAqIHRoaXMuaG90Wm9uZUJnLnNjYWxlLCBiZ1doaXRlLndpZHRoLCBiZ1doaXRlLmhlaWdodCk7XG5cdFx0XHRjdHguZmlsbCgpO1xuXG5cdFx0XHRzaGFkb3dOb2RlLnpJbmRleCA9IDE7XG5cdFx0XHRiZ1doaXRlLnpJbmRleCA9IDI7XG5cblx0XHRcdGJnQm90dG9tLnkgPSAtZnJhbWVTaXplLmhlaWdodCAvIDIgKiB0aGlzLl9jb2Nvc1NjYWxlIC0gMTUgKiBiZ0JvdHRvbS5zY2FsZVk7XG5cblx0XHRcdHRoaXMuZGF0YS5ob3Rab25lSXRlbUFyci5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRcdGlmIChpdGVtLmdJZHggPT0gJzAnKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRPbmVDaXJjbGUoaXRlbSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoaXRlbS5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdHRoaXMuc2V0T25lUGljKGl0ZW0pO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGl0ZW0uZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHR0aGlzLnNldE9uZUFuaW1hKGl0ZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdH0pO1xuXG5cdH0sXG5cblx0YWRkTWFzayhub2RlKSB7XG5cdFx0Y29uc3QgbWFzayA9IG5vZGUuYWRkQ29tcG9uZW50KGNjLk1hc2spO1xuXHRcdG1hc2sudHlwZSA9IGNjLk1hc2suVHlwZS5SRUNUO1xuXHR9LFxuXG5cdGluaXRCb3R0b21QYXJ0KCkge1xuXG5cdFx0Y29uc3QgYmdCb3R0b20gPSBjYy5maW5kKCdDYW52YXMvYmdCb3R0b20nKTtcblx0XHRjb25zdCBzY3JpcHQgPSBiZ0JvdHRvbS5nZXRDb21wb25lbnQoJ2JnQm90dG9tJyk7XG5cblx0XHRjb25zdCBwaWNBcnIgPSBbXTtcblx0XHR0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIuZm9yRWFjaCgoaXRlbSkgPT4ge1xuXHRcdFx0aWYgKGl0ZW0uZ0lkeCA9PSAnMCcpIHtcblx0XHRcdFx0cGljQXJyLnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0c2NyaXB0LnNldEl0ZW1EYXRhKHBpY0Fycik7XG5cdH0sXG5cblxuXHRzZXRPbmVBbmltYShkYXRhKSB7XG5cblxuXHRcdGNvbnN0IHJhdGUgPSAodGhpcy5ob3Rab25lQmcuc2NhbGUgKiB0aGlzLmhvdFpvbmVCZy53aWR0aCkgLyB0aGlzLmRhdGEuYmdJdGVtLnJlY3Qud2lkdGg7XG5cblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUubmFtZSA9ICdyZWN0JyArIGRhdGEuaW5kZXg7XG5cdFx0dGhpcy5ob3Rab25lQmcuYWRkQ2hpbGQocmVjdE5vZGUpO1xuXG5cblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdC8vIOe6ouiJsuefqeW9olxuXHRcdGN0eC5saW5lV2lkdGggPSA0O1xuXHRcdGN0eC5zdHJva2VDb2xvciA9IGNjLkNvbG9yLkJMQUNLO1xuXHRcdGN0eC5maWxsQ29sb3IgPSBjYy5Db2xvci5XSElURS5zZXRBKDEwMCk7XG5cblx0XHRjb25zdCBzY2FsZSA9IHJhdGUgLyB0aGlzLmhvdFpvbmVCZy5zY2FsZVk7XG5cblx0XHRyZWN0Tm9kZS53aWR0aCA9IGRhdGEucmVjdC53aWR0aCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS54ID0gLXRoaXMuaG90Wm9uZUJnLndpZHRoIC8gMiArIGRhdGEucmVjdC54ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueSA9IHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlO1xuXG5cdFx0cmVjdE5vZGUuYW5jaG9yWCA9IHJlY3ROb2RlLmFuY2hvclkgPSAwO1xuXG5cblx0XHRpZiAodGhpcy5kYXRhLmJnSXRlbS5pc1Nob3dEZWJ1Z0xpbmUpIHtcblx0XHRcdGN0eC5yZWN0KDAsIDAsIHJlY3ROb2RlLndpZHRoLCByZWN0Tm9kZS5oZWlnaHQpO1xuXHRcdH1cblx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0Y3R4LmZpbGwoKTtcblxuXG5cblx0XHRjb25zdCBhbmltYU5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdGFuaW1hTm9kZS5uYW1lID0gJ2FuaW1hXycgKyBkYXRhLmluZGV4O1xuXHRcdHRoaXMuaG90Wm9uZUJnLmFkZENoaWxkKGFuaW1hTm9kZSk7XG5cblx0XHQvLyByZWN0Tm9kZS5hZGRDaGlsZChhbmltYU5vZGUpO1xuXHRcdC8vIGFuaW1hTm9kZS54ID0gcmVjdE5vZGUud2lkdGggLyAyO1xuXHRcdC8vIGFuaW1hTm9kZS55ID0gcmVjdE5vZGUuaGVpZ2h0IC8gMjtcblxuXG5cdFx0aWYgKGRhdGEuYXVkaW9fdXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShkYXRhLmF1ZGlvX3VybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGFuaW1hTm9kZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XG5cdFx0XHR9KTtcblx0XHR9XG5cblxuXHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbmltYU5vZGUuYWRkQ29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cblx0XHRjb25zdCBpbWFnZSA9IGRhdGEudGV4UG5nRGF0YS51cmwvL1wiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81YTBjNWFmM2U5NTJhY2QwYWM4M2E2ZTVjNmYwM2ZmMS5wbmdcIjtcblx0XHRjb25zdCBza2UgPSBkYXRhLnNrZUpzb25EYXRhLnVybC8vXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkODI1ZGNjZWVhMjk4ZDExNDZiZTgwNjdhZTNkMTdmLmpzb25cIjtcblx0XHRjb25zdCBhdGxhcyA9IGRhdGEudGV4SnNvbkRhdGEudXJsLy9cImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ2Zjg5OTFiNzI5ZmEzZTVhN2Y0ODAyZGU4MjhlZmEuanNvblwiO1xuXHRcdGNjLmxvYWRlci5sb2FkKGltYWdlLCAoZXJyb3IsIHRleHR1cmUpID0+IHtcblxuXHRcdFx0Y2MubG9hZGVyLmxvYWQoe3VybDogYXRsYXMsIHR5cGU6ICd0eHQnfSwgKGVycm9yLCBhdGxhc0pzb24pID0+IHtcblxuXHRcdFx0XHRjYy5sb2FkZXIubG9hZCh7dXJsOiBza2UsIHR5cGU6ICd0eHQnfSwgKGVycm9yLCBkcmFnb25Cb25lc0pzb24pID0+IHtcblxuXHRcdFx0XHRcdGNvbnN0IGF0bGFzID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXRsYXNBc3NldCgpO1xuXHRcdFx0XHRcdGF0bGFzLmF0bGFzSnNvbiA9IGF0bGFzSnNvbjtcblx0XHRcdFx0XHRhdGxhcy50ZXh0dXJlID0gdGV4dHVyZTtcblxuXHRcdFx0XHRcdGNvbnN0IGFzc2V0ID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXNzZXQoKTtcblx0XHRcdFx0XHRhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cblx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LmRyYWdvbkF0bGFzQXNzZXQgPSBhdGxhcztcblx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LmRyYWdvbkFzc2V0ID0gYXNzZXQ7XG5cblx0XHRcdFx0XHRsZXQganNvbiA9IEpTT04ucGFyc2UoYXNzZXQuZHJhZ29uQm9uZXNKc29uKTtcblx0XHRcdFx0XHRsZXQgYXJtYXR1cmVzID0ganNvbltcImFybWF0dXJlXCJdO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhcm1hdHVyZXM6ICcsIGFybWF0dXJlcyk7XG5cdFx0XHRcdFx0bGV0IGFybWF0dXJlTmFtZXMgPSBbXTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFybWF0dXJlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0YXJtYXR1cmVOYW1lcy5wdXNoKGFybWF0dXJlc1tpXS5uYW1lKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ2FybWF0dXJlTmFtZXM6ICcsIGFybWF0dXJlTmFtZXMpO1xuXHRcdFx0XHRcdGlmIChhcm1hdHVyZU5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGxldCBkZWZhdWx0QXJtYXR1cmVOYW1lID0gYXJtYXR1cmVOYW1lc1swXTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYXJtYXR1cmVOYW1lID0gZGVmYXVsdEFybWF0dXJlTmFtZTtcblx0XHRcdFx0XHRcdC8vIGxldCBhbmltYXRpb25OYW1lcyA9IGRyYWdvbkRpc3BsYXkuZ2V0QW5pbWF0aW9uTmFtZXMoZGVmYXVsdEFybWF0dXJlTmFtZSk7XG5cdFx0XHRcdFx0XHRsZXQgZGVmYXVsdEFybWF0dXJlID0gYXJtYXR1cmVzWzBdO1xuXHRcdFx0XHRcdFx0bGV0IGFuaW1hdGlvbnMgPSBkZWZhdWx0QXJtYXR1cmUuYW5pbWF0aW9uO1xuXHRcdFx0XHRcdFx0bGV0IGFuaW1hdGlvbk5hbWVzID0gW107XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFuaW1hdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0YW5pbWF0aW9uTmFtZXMucHVzaChhbmltYXRpb25zW2ldLm5hbWUpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRyZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRcdFx0XHRcdHJlY3ROb2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlY3ROb2RlLmlzQ2xpY2tlZCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZWN0Tm9kZS5pc0NsaWNrZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnY2xpY2tlZCcpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChhbmltYU5vZGUuYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcEFsbEVmZmVjdHMoKTtcblx0XHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGFuaW1hTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKGFuaW1hdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oYW5pbWF0aW9uTmFtZXNbMF0sIDEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHR9LFxuXG5cblx0c2V0T25lUGljKGRhdGEpIHtcblx0XHRjb25zdCByYXRlID0gKHRoaXMuaG90Wm9uZUJnLnNjYWxlICogdGhpcy5ob3Rab25lQmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcGljTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cGljTm9kZS5kYXRhID0gZGF0YTtcblx0XHR0aGlzLmhvdFpvbmVCZy5hZGRDaGlsZChwaWNOb2RlKTtcblxuXHRcdGNjLmxvYWRlci5sb2FkKHt1cmw6IGRhdGEucGljX3VybH0sIChlcnIsIGltZykgPT4ge1xuXG5cdFx0XHRjb25zdCBzcHIgPSBwaWNOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKGltZylcblxuXHRcdFx0Y29uc3Qgc2NhbGUgPSByYXRlIC8gdGhpcy5ob3Rab25lQmcuc2NhbGVZO1xuXG5cdFx0XHRwaWNOb2RlLndpZHRoID0gZGF0YS5yZWN0LndpZHRoICogc2NhbGU7XG5cdFx0XHRwaWNOb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRcdHBpY05vZGUueCA9IC10aGlzLmhvdFpvbmVCZy53aWR0aCAvIDIgKyBkYXRhLnJlY3QueCAqIHNjYWxlO1xuXHRcdFx0cGljTm9kZS55ID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0IC8gMiAtIGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZSAtIGRhdGEucmVjdC55ICogc2NhbGU7XG5cblx0XHRcdHBpY05vZGUuYW5jaG9yWCA9IHBpY05vZGUuYW5jaG9yWSA9IDA7XG5cblx0XHRcdGlmIChkYXRhLmF1ZGlvX3VybCkge1xuXHRcdFx0XHR0aGlzLmFkZFBpY0F1ZGlvKHBpY05vZGUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdH0sXG5cblx0YWRkUGljQXVkaW8ocGljTm9kZSkge1xuXHRcdGNvbnN0IGRhdGEgPSBwaWNOb2RlLmRhdGE7XG5cdFx0XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUoZGF0YS5hdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0cGljTm9kZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XG5cdFx0fSk7XG5cblx0XHRwaWNOb2RlLmFkZENvbXBvbmVudChjYy5CdXR0b24pO1xuXHRcdHBpY05vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRpZiAocGljTm9kZS5hdWRpb0NsaXApIHtcblx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5zdG9wQWxsRWZmZWN0cygpO1xuXHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXlFZmZlY3QocGljTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0c2V0T25lQ2lyY2xlKGRhdGEpIHtcblx0XHRjb25zdCByYXRlID0gKHRoaXMuaG90Wm9uZUJnLnNjYWxlICogdGhpcy5ob3Rab25lQmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcmVjdE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHJlY3ROb2RlLm5hbWUgPSAncmVjdCcgKyBkYXRhLmluZGV4O1xuXHRcdHJlY3ROb2RlLmRhdGEgPSBkYXRhO1xuXHRcdHRoaXMuaG90Wm9uZUJnLmFkZENoaWxkKHJlY3ROb2RlKTtcblxuXG5cdFx0Y29uc3Qgc2NhbGUgPSByYXRlIC8gdGhpcy5ob3Rab25lQmcuc2NhbGVZO1xuXG5cdFx0cmVjdE5vZGUud2lkdGggPSBkYXRhLnJlY3Qud2lkdGggKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS5oZWlnaHQgPSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueCA9IC10aGlzLmhvdFpvbmVCZy53aWR0aCAvIDIgKyBkYXRhLnJlY3QueCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLnkgPSB0aGlzLmhvdFpvbmVCZy5oZWlnaHQgLyAyIC0gZGF0YS5yZWN0LmhlaWdodCAqIHNjYWxlIC0gZGF0YS5yZWN0LnkgKiBzY2FsZTtcblxuXHRcdHJlY3ROb2RlLmFuY2hvclggPSByZWN0Tm9kZS5hbmNob3JZID0gMDtcblxuXG5cdFx0aWYgKGRhdGEuYXVkaW9fdXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShkYXRhLmF1ZGlvX3VybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGRhdGEuYXVkaW9DbGlwID0gYXVkaW9DbGlwO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmVjdE5vZGUuYWRkQ29tcG9uZW50KGNjLkJ1dHRvbik7XG5cdFx0cmVjdE5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5zaG93Q2lyY2xlKHJlY3ROb2RlKTtcblx0XHR9KTtcblxuXG5cblxuXG5cdFx0Y29uc3QgYW5pbWFOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRhbmltYU5vZGUubmFtZSA9ICdhbmltYV8nICsgZGF0YS5pbmRleDtcblx0XHR0aGlzLmhvdFpvbmVCZy5hZGRDaGlsZChhbmltYU5vZGUpO1xuXHRcdGRhdGEuYW5pbWFOb2RlID0gYW5pbWFOb2RlO1xuXG5cblx0XHRpZiAoZGF0YS5hdWRpb191cmwpIHtcblx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKGRhdGEuYXVkaW9fdXJsLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0YW5pbWFOb2RlLmF1ZGlvQ2xpcCA9IGF1ZGlvQ2xpcDtcblx0XHRcdH0pO1xuXHRcdH1cblxuXG5cdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuaW1hTm9kZS5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdGNvbnN0IGltYWdlID0gZGF0YS50ZXhQbmdEYXRhLnVybC8vXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzVhMGM1YWYzZTk1MmFjZDBhYzgzYTZlNWM2ZjAzZmYxLnBuZ1wiO1xuXHRcdGNvbnN0IHNrZSA9IGRhdGEuc2tlSnNvbkRhdGEudXJsLy9cImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmQ4MjVkY2NlZWEyOThkMTE0NmJlODA2N2FlM2QxN2YuanNvblwiO1xuXHRcdGNvbnN0IGF0bGFzID0gZGF0YS50ZXhKc29uRGF0YS51cmwvL1wiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8yNDZmODk5MWI3MjlmYTNlNWE3ZjQ4MDJkZTgyOGVmYS5qc29uXCI7XG5cdFx0Y2MubG9hZGVyLmxvYWQoaW1hZ2UsIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuXG5cdFx0XHRjYy5sb2FkZXIubG9hZCh7dXJsOiBhdGxhcywgdHlwZTogJ3R4dCd9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuXG5cdFx0XHRcdGNjLmxvYWRlci5sb2FkKHt1cmw6IHNrZSwgdHlwZTogJ3R4dCd9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuXG5cdFx0XHRcdFx0Y29uc3QgYXRsYXMgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBdGxhc0Fzc2V0KCk7XG5cdFx0XHRcdFx0YXRsYXMuYXRsYXNKc29uID0gYXRsYXNKc29uO1xuXHRcdFx0XHRcdGF0bGFzLnRleHR1cmUgPSB0ZXh0dXJlO1xuXG5cdFx0XHRcdFx0Y29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpO1xuXHRcdFx0XHRcdGFzc2V0LmRyYWdvbkJvbmVzSnNvbiA9IGRyYWdvbkJvbmVzSnNvbjtcblxuXHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuZHJhZ29uQXRsYXNBc3NldCA9IGF0bGFzO1xuXHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcblxuXHRcdFx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShhc3NldC5kcmFnb25Cb25lc0pzb24pO1xuXHRcdFx0XHRcdGxldCBhcm1hdHVyZXMgPSBqc29uW1wiYXJtYXR1cmVcIl07XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2FybWF0dXJlczogJywgYXJtYXR1cmVzKTtcblx0XHRcdFx0XHRsZXQgYXJtYXR1cmVOYW1lcyA9IFtdO1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYXJtYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRhcm1hdHVyZU5hbWVzLnB1c2goYXJtYXR1cmVzW2ldLm5hbWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnYXJtYXR1cmVOYW1lczogJywgYXJtYXR1cmVOYW1lcyk7XG5cdFx0XHRcdFx0aWYgKGFybWF0dXJlTmFtZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0bGV0IGRlZmF1bHRBcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWVzWzBdO1xuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBkZWZhdWx0QXJtYXR1cmVOYW1lO1xuXHRcdFx0XHRcdFx0Ly8gbGV0IGFuaW1hdGlvbk5hbWVzID0gZHJhZ29uRGlzcGxheS5nZXRBbmltYXRpb25OYW1lcyhkZWZhdWx0QXJtYXR1cmVOYW1lKTtcblx0XHRcdFx0XHRcdGxldCBkZWZhdWx0QXJtYXR1cmUgPSBhcm1hdHVyZXNbMF07XG5cdFx0XHRcdFx0XHRsZXQgYW5pbWF0aW9ucyA9IGRlZmF1bHRBcm1hdHVyZS5hbmltYXRpb247XG5cdFx0XHRcdFx0XHRsZXQgYW5pbWF0aW9uTmFtZXMgPSBbXTtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYW5pbWF0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRhbmltYXRpb25OYW1lcy5wdXNoKGFuaW1hdGlvbnNbaV0ubmFtZSk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIHJlY3ROb2RlLmFkZENvbXBvbmVudChjYy5CdXR0b24pO1xuXHRcdFx0XHRcdFx0Ly8gcmVjdE5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0YW5pbWFOb2RlLnNob3dBbmltYSA9ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlY3ROb2RlLmlzQ2xpY2tlZCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZWN0Tm9kZS5pc0NsaWNrZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnY2xpY2tlZCcpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChhbmltYU5vZGUuYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcEFsbEVmZmVjdHMoKTtcblx0XHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGFuaW1hTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKGFuaW1hdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oYW5pbWF0aW9uTmFtZXNbMF0sIDEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0fSxcblxuXHRfY2lyY2xlOiBudWxsLFxuXHRpbml0Q2lyY2xlKCkge1xuXG5cdFx0dGhpcy5fY2lyY2xlID0gY2MuZmluZCgnQ2FudmFzL2NpcmNsZScpO1xuXHRcdHRoaXMuX2NpcmNsZS5hY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLl9jaXJjbGUuekluZGV4ID0gMTI7XG5cdH0sXG5cblx0c2hvd0NpcmNsZShub2RlKSB7XG5cdFx0Y29uc29sZS5sb2coJyBpbiBzaG93Q2lyY2xlJyk7XG5cblx0XHRpZiAobm9kZSA9PSB0aGlzLl9jaXJjbGUuaXRlbU5vZGUpIHtcblxuXHRcdFx0bm9kZS5kYXRhLmFuaW1hTm9kZS5zaG93QW5pbWEoKTtcblx0XHRcdC8vIGlmIChub2RlLmRhdGEuYXVkaW9DbGlwKSB7XG5cdFx0XHQvLyBcdGNjLmF1ZGlvRW5naW5lLnN0b3BBbGwoKTtcblx0XHRcdC8vIFx0Y2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChub2RlLmRhdGEuYXVkaW9DbGlwLCBmYWxzZSwgMC44KTtcblx0XHRcdC8vIH1cblx0XHRcdHRoaXMuaGlkZUNpcmNsZSgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NpcmNsZS5pdGVtTm9kZSA9IG5vZGU7XG5cblx0XHRub2RlLnggKz0gbm9kZS53aWR0aCAvIDI7XG5cdFx0bm9kZS55ICs9IG5vZGUuaGVpZ2h0IC8gMjtcblx0XHRjb25zdCByYXRlID0gZ2V0U2NhbGVSYXRlQnkyTm9kZSh0aGlzLl9jaXJjbGUsIG5vZGUpO1xuXHRcdGNvbnN0IHBvcyA9IGxvY2FsUG9zVG9sb2NhbFBvcyh0aGlzLl9jaXJjbGUsIG5vZGUpO1xuXHRcdG5vZGUueCAtPSBub2RlLndpZHRoIC8gMjtcblx0XHRub2RlLnkgLT0gbm9kZS5oZWlnaHQgLyAyO1xuXG5cdFx0dGhpcy5fY2lyY2xlLnNjYWxlICo9IHJhdGU7XG5cdFx0dGhpcy5fY2lyY2xlLnNjYWxlICo9ICg1LzQpO1xuXG5cdFx0dGhpcy5fY2lyY2xlLnggPSBwb3MueDtcblx0XHR0aGlzLl9jaXJjbGUueSA9IHBvcy55O1xuXG5cdFx0dGhpcy5fY2lyY2xlLmFjdGl2ZSA9IHRydWU7XG5cblx0XHR0aGlzLl9jaXJjbGUub3BhY2l0eSA9IDA7XG5cdFx0Y2MudHdlZW4odGhpcy5fY2lyY2xlKVxuXHRcdFx0LnRvKDEsIHtvcGFjaXR5OiAyNTV9LCB7ZWFzaW5nOiAnY3ViaWNPdXQnfSlcblx0XHRcdC5zdGFydCgpO1xuXG5cdH0sXG5cblx0aW5pdExpc3RlbmVyKCkge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGNjLmZpbmQoJ0NhbnZhcycpO1xuXHRcdGNhbnZhcy5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRjYW52YXMub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5oaWRlQ2lyY2xlKCk7XG5cdFx0fSk7XG5cdH0sXG5cblx0aGlkZUNpcmNsZSgpIHtcblx0XHR0aGlzLl9jaXJjbGUuaXRlbU5vZGUgPSBudWxsO1xuXHRcdGNjLnR3ZWVuKHRoaXMuX2NpcmNsZSlcblx0XHRcdC50bygxLCB7b3BhY2l0eTogMH0sIHtlYXNpbmc6ICdjdWJpY091dCd9KVxuXHRcdFx0LnN0YXJ0KCk7XG5cdH1cblxuXG5cdC8vIHVwZGF0ZSAoZHQpIHt9LFxufSk7XG4iXX0= //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9tel8wMDQvc2NyaXB0L3NjZW5lLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiYmFzZVdpZHRoIiwidHlwZSIsIkludGVnZXIiLCJiYXNlSGVpZ2h0Iiwib25Mb2FkIiwiZGVidWciLCJzZXREaXNwbGF5U3RhdHMiLCJpbml0U2NlbmVEYXRhIiwiaW5pdFNpemUiLCJfaW1hZ2VSZXNMaXN0IiwiX2F1ZGlvUmVzTGlzdCIsIl9hbmltYVJlc0xpc3QiLCJfZGVzaWduU2l6ZSIsInZpZXciLCJnZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSIsInN0YXJ0IiwiZ2V0RGF0YSIsImJpbmQiLCJ3aW5kb3ciLCJjb3Vyc2V3YXJlIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJnZXREZWZhdWx0RGF0YSIsInByZWxvYWRJdGVtIiwiYWRkUHJlbG9hZEltYWdlIiwiYWRkUHJlbG9hZEF1ZGlvIiwiYWRkUHJlbG9hZEFuaW1hIiwicHJlbG9hZCIsImZ1bmMiLCJkYXRhSnNvbiIsImRhdGExIiwiSlNPTiIsInBhcnNlIiwiYmdJdGVtIiwicmVjdCIsImhlaWdodCIsIndpZHRoIiwieCIsInkiLCJ1cmwiLCJob3Rab25lSXRlbUFyciIsImlkIiwiaW1nU2NhbGUiLCJpbmRleCIsIml0ZW1UeXBlIiwibWFwU2NhbGUiLCJza2VKc29uRGF0YSIsIm5hbWUiLCJ0ZXhKc29uRGF0YSIsInRleFBuZ0RhdGEiLCJwaWNBcnIiLCJhdWRpb191cmwiLCJwaWNfdXJsIiwidGV4dCIsImNvbmNhdCIsInByZWxvYWRBcnIiLCJhc3NldE1hbmFnZXIiLCJsb2FkQW55IiwiZXJyIiwibG9hZEVuZCIsImhpZGVBaXJDbGFzc0xvYWRpbmciLCJwdXNoIiwiZm9yRWFjaCIsIml0ZW0iLCJiZ19hdWRpb191cmwiLCJpbml0VmlldyIsImluaXRCZyIsImluaXRIb3Rab25lIiwiaW5pdEJvdHRvbVBhcnQiLCJpbml0Q2lyY2xlIiwiaW5pdExpc3RlbmVyIiwiaW5pdE11c2ljIiwibG9hZFJlbW90ZSIsImNsaXAiLCJhdWRpb0VuZ2luZSIsInNldE11c2ljVm9sdW1lIiwiYXVkaW9JRCIsInBsYXlNdXNpYyIsIl9jb2Nvc1NjYWxlIiwiZnJhbWVTaXplIiwiZ2V0RnJhbWVTaXplIiwic3giLCJ3aW5TaXplIiwic3kiLCJzIiwiTWF0aCIsIm1pbiIsImJnTm9kZSIsImZpbmQiLCJzY2FsZSIsIm1heCIsImFuY2hvclgiLCJhbmNob3JZIiwiYmciLCJyZWN0Tm9kZSIsIk5vZGUiLCJzY2FsZVgiLCJzY2FsZVkiLCJhZGRDaGlsZCIsImN0eCIsImFkZENvbXBvbmVudCIsIkdyYXBoaWNzIiwiZmlsbENvbG9yIiwiYmdDb2xvciIsImZpbGxSZWN0IiwiZmlsbCIsImluaXRIb3Rab25lQmciLCJob3Rab25lQmciLCJwYXJlbnQiLCJ6SW5kZXgiLCJjYW52YXMiLCJsb2FkZXIiLCJsb2FkIiwiaW1nIiwiYWRkTWFzayIsImJveCIsImdldEJvdW5kaW5nQm94IiwidG1wUyIsInN1Yk51bSIsImdldFZpc2libGVTaXplIiwibWFwUyIsImJnQm90dG9tIiwic3ByTm9kZSIsInNmIiwiU3ByaXRlRnJhbWUiLCJzcHIiLCJTcHJpdGUiLCJzcHJpdGVGcmFtZSIsImJnV2hpdGUiLCJzaGFkb3dOb2RlIiwiQ29sb3IiLCJCTEFDSyIsInNldEEiLCJnSWR4Iiwic2V0T25lQ2lyY2xlIiwic2V0T25lUGljIiwic2V0T25lQW5pbWEiLCJub2RlIiwibWFzayIsIk1hc2siLCJUeXBlIiwiUkVDVCIsInNjcmlwdCIsImdldENvbXBvbmVudCIsInNldEl0ZW1EYXRhIiwicmF0ZSIsImxpbmVXaWR0aCIsInN0cm9rZUNvbG9yIiwiV0hJVEUiLCJpc1Nob3dEZWJ1Z0xpbmUiLCJzdHJva2UiLCJhbmltYU5vZGUiLCJhdWRpb0NsaXAiLCJkcmFnb25EaXNwbGF5IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJpbWFnZSIsInNrZSIsImF0bGFzIiwiZXJyb3IiLCJ0ZXh0dXJlIiwiYXRsYXNKc29uIiwiZHJhZ29uQm9uZXNKc29uIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwiYXNzZXQiLCJEcmFnb25Cb25lc0Fzc2V0IiwiZHJhZ29uQXRsYXNBc3NldCIsImRyYWdvbkFzc2V0IiwianNvbiIsImFybWF0dXJlcyIsImFybWF0dXJlTmFtZXMiLCJpIiwibGVuZ3RoIiwiZGVmYXVsdEFybWF0dXJlTmFtZSIsImFybWF0dXJlTmFtZSIsImRlZmF1bHRBcm1hdHVyZSIsImFuaW1hdGlvbnMiLCJhbmltYXRpb24iLCJhbmltYXRpb25OYW1lcyIsIkJ1dHRvbiIsIm9uIiwiaXNDbGlja2VkIiwic3RvcEFsbEVmZmVjdHMiLCJwbGF5RWZmZWN0IiwicGxheUFuaW1hdGlvbiIsInBpY05vZGUiLCJhZGRQaWNBdWRpbyIsInNob3dDaXJjbGUiLCJzaG93QW5pbWEiLCJfY2lyY2xlIiwiYWN0aXZlIiwiaXRlbU5vZGUiLCJoaWRlQ2lyY2xlIiwicG9zIiwib3BhY2l0eSIsInR3ZWVuIiwidG8iLCJlYXNpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0E7O0FBUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ1IsYUFBU0QsRUFBRSxDQUFDRSxTQURKO0FBR1JDLEVBQUFBLFVBQVUsRUFBRTtBQUNYQyxJQUFBQSxTQUFTLEVBQUU7QUFDVixpQkFBUyxJQURDO0FBRVZDLE1BQUFBLElBQUksRUFBRUwsRUFBRSxDQUFDTTtBQUZDLEtBREE7QUFLWEMsSUFBQUEsVUFBVSxFQUFFO0FBQ1gsaUJBQVMsR0FERTtBQUVYRixNQUFBQSxJQUFJLEVBQUVMLEVBQUUsQ0FBQ007QUFGRSxLQUxELENBU1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXZCVyxHQUhKO0FBNkJSO0FBRUE7QUFDQTtBQUVBRSxFQUFBQSxNQWxDUSxv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SixHQUFHLENBQUMzSixDQUFyQjtBQUVBLFNBQUt1SixPQUFMLENBQWFDLE1BQWIsR0FBc0IsSUFBdEI7QUFFQSxTQUFLRCxPQUFMLENBQWFLLE9BQWIsR0FBdUIsQ0FBdkI7QUFDQXZNLElBQUFBLEVBQUUsQ0FBQ3dNLEtBQUgsQ0FBUyxLQUFLTixPQUFkLEVBQ0VPLEVBREYsQ0FDSyxDQURMLEVBQ1E7QUFBQ0YsTUFBQUEsT0FBTyxFQUFFO0FBQVYsS0FEUixFQUN3QjtBQUFDRyxNQUFBQSxNQUFNLEVBQUU7QUFBVCxLQUR4QixFQUVFdkwsS0FGRjtBQUlBLEdBaHNCTztBQWtzQlJ3RCxFQUFBQSxZQWxzQlEsMEJBa3NCTztBQUFBOztBQUNkLFFBQU13QyxNQUFNLEdBQUduSCxFQUFFLENBQUM2RixJQUFILENBQVEsUUFBUixDQUFmO0FBQ0FzQixJQUFBQSxNQUFNLENBQUNWLFlBQVAsQ0FBb0J6RyxFQUFFLENBQUN3TCxNQUF2QjtBQUNBckUsSUFBQUEsTUFBTSxDQUFDc0UsRUFBUCxDQUFVLE9BQVYsRUFBbUIsWUFBTTtBQUN4QixNQUFBLE1BQUksQ0FBQ1ksVUFBTDtBQUNBLEtBRkQ7QUFHQSxHQXhzQk87QUEwc0JSQSxFQUFBQSxVQTFzQlEsd0JBMHNCSztBQUNaLFNBQUtILE9BQUwsQ0FBYUUsUUFBYixHQUF3QixJQUF4QjtBQUNBcE0sSUFBQUEsRUFBRSxDQUFDd00sS0FBSCxDQUFTLEtBQUtOLE9BQWQsRUFDRU8sRUFERixDQUNLLENBREwsRUFDUTtBQUFDRixNQUFBQSxPQUFPLEVBQUU7QUFBVixLQURSLEVBQ3NCO0FBQUNHLE1BQUFBLE1BQU0sRUFBRTtBQUFULEtBRHRCLEVBRUV2TCxLQUZGO0FBR0EsR0Evc0JPLENBa3RCUjs7QUFsdEJRLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxuLy8gTGVhcm4gQXR0cmlidXRlOlxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXG5cbmltcG9ydCB7Z2V0U2NhbGVSYXRlQnkyTm9kZSwgbG9jYWxQb3NUb2xvY2FsUG9zfSBmcm9tIFwiLi91dGlsXCI7XG5cbmNjLkNsYXNzKHtcblx0ZXh0ZW5kczogY2MuQ29tcG9uZW50LFxuXG5cdHByb3BlcnRpZXM6IHtcblx0XHRiYXNlV2lkdGg6IHtcblx0XHRcdGRlZmF1bHQ6IDEyODAsXG5cdFx0XHR0eXBlOiBjYy5JbnRlZ2VyXG5cdFx0fSxcblx0XHRiYXNlSGVpZ2h0OiB7XG5cdFx0XHRkZWZhdWx0OiA3MjAsXG5cdFx0XHR0eXBlOiBjYy5JbnRlZ2VyXG5cdFx0fVxuXHRcdC8vIGZvbzoge1xuXHRcdC8vICAgICAvLyBBVFRSSUJVVEVTOlxuXHRcdC8vICAgICBkZWZhdWx0OiBudWxsLCAgICAgICAgLy8gVGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIG9ubHkgd2hlbiB0aGUgY29tcG9uZW50IGF0dGFjaGluZ1xuXHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYSBub2RlIGZvciB0aGUgZmlyc3QgdGltZVxuXHRcdC8vICAgICB0eXBlOiBjYy5TcHJpdGVGcmFtZSwgLy8gb3B0aW9uYWwsIGRlZmF1bHQgaXMgdHlwZW9mIGRlZmF1bHRcblx0XHQvLyAgICAgc2VyaWFsaXphYmxlOiB0cnVlLCAgIC8vIG9wdGlvbmFsLCBkZWZhdWx0IGlzIHRydWVcblx0XHQvLyB9LFxuXHRcdC8vIGJhcjoge1xuXHRcdC8vICAgICBnZXQgKCkge1xuXHRcdC8vICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhcjtcblx0XHQvLyAgICAgfSxcblx0XHQvLyAgICAgc2V0ICh2YWx1ZSkge1xuXHRcdC8vICAgICAgICAgdGhpcy5fYmFyID0gdmFsdWU7XG5cdFx0Ly8gICAgIH1cblx0XHQvLyB9LFxuXHR9LFxuXG5cdC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxuXG5cdC8vIGJhc2VXaWR0aDogMTI4MDtcblx0Ly8gYmFzZUhlaWdodDogNzIwO1xuXG5cdG9uTG9hZCgpIHtcblx0XHRjYy5kZWJ1Zy5zZXREaXNwbGF5U3RhdHMoZmFsc2UpO1xuXHRcdHRoaXMuaW5pdFNjZW5lRGF0YSgpO1xuXHRcdHRoaXMuaW5pdFNpemUoKTtcblx0fSxcblxuXHRpbml0U2NlbmVEYXRhKCkge1xuXHRcdHRoaXMuX2ltYWdlUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2FuaW1hUmVzTGlzdCA9IFtdO1xuXHR9LFxuXG5cdF9kZXNpZ25TaXplOiBudWxsLFxuXHRpbml0U2l6ZSgpIHtcblx0XHR0aGlzLl9kZXNpZ25TaXplID0gY2Mudmlldy5nZXREZXNpZ25SZXNvbHV0aW9uU2l6ZSgpO1xuXG5cdH0sXG5cblx0c3RhcnQoKSB7XG5cdFx0bGV0IGdldERhdGEgPSB0aGlzLmdldERhdGEuYmluZCh0aGlzKTtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHQvLyBjb25zb2xlLmxvZygnaGFzIHdpbmRvdycpO1xuXHRcdFx0Z2V0RGF0YSA9IHdpbmRvdy5jb3Vyc2V3YXJlLmdldERhdGE7XG5cdFx0fVxuXHRcdGdldERhdGEoKGRhdGEpID0+IHtcblx0XHRcdGNvbnNvbGUubG9nKCdkYXRhOicsIGRhdGEpO1xuXHRcdFx0dGhpcy5kYXRhID0gZGF0YSB8fCB0aGlzLmdldERlZmF1bHREYXRhKCk7XG5cdFx0XHR0aGlzLnByZWxvYWRJdGVtKClcblx0XHR9KVxuXHR9LFxuXG5cblx0X2ltYWdlUmVzTGlzdDogbnVsbCxcblx0X2F1ZGlvUmVzTGlzdDogbnVsbCxcblx0X2FuaW1hUmVzTGlzdDogbnVsbCxcblx0cHJlbG9hZEl0ZW0oKSB7XG5cdFx0dGhpcy5hZGRQcmVsb2FkSW1hZ2UoKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBdWRpbygpO1xuXHRcdHRoaXMuYWRkUHJlbG9hZEFuaW1hKCk7XG5cdFx0dGhpcy5wcmVsb2FkKCk7XG5cdH0sXG5cblx0Z2V0RGF0YShmdW5jKSB7XG5cdFx0ZnVuYyh0aGlzLmdldERlZmF1bHREYXRhKCkpO1xuXHR9LFxuXG5cdGdldERlZmF1bHREYXRhKCkge1xuXG5cdFx0Y29uc3QgZGF0YUpzb24gPSAne1wiYmdDb2xvcklkXCI6MCxcImJnQ29sb3JcIjpcIiNmOWJkMDNcIixcImJnSXRlbVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81MzllMmY1OGNiMTgxN2Y4NTJkOWMwOWVjMWFjN2M4Yi5wbmdcIixcInJlY3RcIjp7XCJ4XCI6MjY1LjE4LFwieVwiOjAsXCJ3aWR0aFwiOjc3Ni42NSxcImhlaWdodFwiOjUwMH19LFwiaG90Wm9uZUl0ZW1BcnJcIjpbe1wiaWRcIjpcIjE2MTExOTc5NjIwNzBcIixcImluZGV4XCI6MCxcInBpY191cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGNlMjVhMzYzMTNlZGI5ZGZhM2RlNzdiYTg1Y2I2YjkucG5nXCIsXCJ0ZXh0XCI6XCJhYWFcIixcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDhkYWE4YjRkOGZmNzA3YjNhMzY4MGU4MGJjNDc2MS5tcDNcIixcIml0ZW1UeXBlXCI6XCJyZWN0XCIsXCJmb250U2NhbGVcIjoxLjAyMTA5Mzc1LFwiaW1nU2NhbGVcIjowLjcwMjkyNjg1Njg4NDA1NzksXCJtYXBTY2FsZVwiOjEuMDIxMDkzNzUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZGIxYTBlZDZiN2UzM2Q1ZjlmMjg0ZTFhNTk4MDM0OS5qc29uXCIsXCJuYW1lXCI6XCJVYmJpZV9za2UuanNvblwifSxcInRleEpzb25EYXRhXCI6e1widXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzQyMzJlMDBjOWIxZDI3MmU2NTBlNTFkYmI3ODVlNDk4Lmpzb25cIixcIm5hbWVcIjpcIlViYmllX3RleC5qc29uXCJ9LFwidGV4UG5nRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8yZTU2ZGJlMzEzNDM4MDk1MmE3MjVlYWNjZWI4NjM1OS5wbmdcIixcIm5hbWVcIjpcIlViYmllX3RleC5wbmdcIn0sXCJnSWR4XCI6XCIwXCIsXCJyZWN0XCI6e1wieFwiOi0xLjY4LFwieVwiOi0xLFwid2lkdGhcIjoyMDAsXCJoZWlnaHRcIjoyMDB9fSx7XCJpZFwiOlwiMTYxMTE5Nzk2NjY0NFwiLFwiaW5kZXhcIjoxLFwicGljX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jOGFiZjczODNkNjViY2JkYmE4ZjM5MDc4NWNlY2U2MC5wbmdcIixcImF1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xOTYxZDgwN2M5NDRlNjU1MWFmMDJjN2I1N2UxMTdmMy5tcDNcIixcIml0ZW1UeXBlXCI6XCJwaWNcIixcImZvbnRTY2FsZVwiOjEuMDIxMDkzNzUsXCJpbWdTY2FsZVwiOjAuMjUzNjIzMTg4NDA1Nzk3MSxcIm1hcFNjYWxlXCI6MS4wMjEwOTM3NSxcImdJZHhcIjpcIjFcIixcInJlY3RcIjp7XCJ4XCI6Ny4zMixcInlcIjo0MjQsXCJ3aWR0aFwiOjcwLFwiaGVpZ2h0XCI6NzB9fSx7XCJpZFwiOlwiMTYxMTE5Nzk3MTEwNFwiLFwiaW5kZXhcIjoyLFwiYXVkaW9fdXJsXCI6XCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzY5NGE4MGUyMWNlZmQ2ZTUzODgwZDYxZTY4NGUxYzk0Lm1wM1wiLFwiaXRlbVR5cGVcIjpcInJlY3RcIixcImZvbnRTY2FsZVwiOjEuMDIxMDkzNzUsXCJpbWdTY2FsZVwiOjEsXCJtYXBTY2FsZVwiOjEuMDIxMDkzNzUsXCJza2VKc29uRGF0YVwiOntcInVybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83ZWZjZWFjNTZjYzlhNjFiMTA3YTExNDU3MzkwZDNjNi5qc29uXCIsXCJuYW1lXCI6XCJmaW5pc2gxX3NrZS5qc29uXCJ9LFwidGV4SnNvbkRhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZlOGRiNGZiMzg1MTI3ZGU5ZTNjZDlkOGE5NTMwZjcuanNvblwiLFwibmFtZVwiOlwiZmluaXNoMV90ZXguanNvblwifSxcInRleFBuZ0RhdGFcIjp7XCJ1cmxcIjpcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vOTZmNWM3YTlhYzlmNDMzYzljODcwYzM4YjA4MTFhMzgucG5nXCIsXCJuYW1lXCI6XCJmaW5pc2gxX3RleC5wbmdcIn0sXCJnSWR4XCI6XCIyXCIsXCJyZWN0XCI6e1wieFwiOjU3NS4zMixcInlcIjozMDMsXCJ3aWR0aFwiOjIwMCxcImhlaWdodFwiOjIwMH19XSxcImJnX2F1ZGlvX3VybFwiOlwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8zZmE2NWQ1ZjY2N2EyZWY5MDU5ZDNkZmM1ZGY3NGE0ZC5tcDNcIn0nXG5cdFx0Y29uc3QgZGF0YTEgPSBKU09OLnBhcnNlKGRhdGFKc29uKTtcblx0XHRyZXR1cm4gZGF0YTE7XG5cblx0XHRjb25zdCBkYXRhID0ge1xuXHRcdFx0YmdJdGVtOiB7XG5cdFx0XHRcdHJlY3Q6IHtcblx0XHRcdFx0XHRoZWlnaHQ6IDM4MCxcblx0XHRcdFx0XHR3aWR0aDogNjc1LjU2LFxuXHRcdFx0XHRcdHg6IDE2MC43Mixcblx0XHRcdFx0XHR5OiAwXG5cdFx0XHRcdH0sXG5cdFx0XHRcdC8vIHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2IzMWM1ODgxZWE1ZjYwN2MxZDM1NDAwMjlhN2QyOWM3LnBuZ1wiXG5cdFx0XHRcdHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzc1NmIwYThkZTRjYjg0ZWQ3MGU3MGQ2MGY4N2E1OTAxLmpwZ1wiXG5cdFx0XHR9LFxuXHRcdFx0aG90Wm9uZUl0ZW1BcnI6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlkOiAxNTk1OTE5NjA4MjQ0LFxuXHRcdFx0XHRcdGltZ1NjYWxlOiAxLFxuXHRcdFx0XHRcdGluZGV4OiAwLFxuXHRcdFx0XHRcdGl0ZW1UeXBlOiBcInJlY3RcIixcblx0XHRcdFx0XHRtYXBTY2FsZTogMC45MDMxMjUsXG5cdFx0XHRcdFx0cmVjdDoge1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiAxMjAuODQsXG5cdFx0XHRcdFx0XHR3aWR0aDogMTE1Ljk5LFxuXHRcdFx0XHRcdFx0eDogMzc4LjY4LFxuXHRcdFx0XHRcdFx0eTogMTkxLjNcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHNrZUpzb25EYXRhOiB7XG5cdFx0XHRcdFx0XHRuYW1lOiBcImZpbmlzaDFfc2tlLmpzb25cIixcblx0XHRcdFx0XHRcdHVybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkODI1ZGNjZWVhMjk4ZDExNDZiZTgwNjdhZTNkMTdmLmpzb25cIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dGV4SnNvbkRhdGE6IHtcblx0XHRcdFx0XHRcdG5hbWU6IFwiZmluaXNoMV90ZXguanNvblwiLFxuXHRcdFx0XHRcdFx0dXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ2Zjg5OTFiNzI5ZmEzZTVhN2Y0ODAyZGU4MjhlZmEuanNvblwiXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0ZXhQbmdEYXRhOiB7XG5cdFx0XHRcdFx0XHRuYW1lOiBcImZpbmlzaDFfdGV4LnBuZ1wiLFxuXHRcdFx0XHRcdFx0dXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vNWEwYzVhZjNlOTUyYWNkMGFjODNhNmU1YzZmMDNmZjEucG5nXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdF0sXG5cblx0XHRcdHBpY0FycjogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YXVkaW9fdXJsOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMDEyOGE1OTA1N2U2M2M0YzZiNGI5NjU1NmQwNzdhOTgubXAzXCIsXG5cdFx0XHRcdFx0cGljX3VybDogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE4ZjJhMDI5ZTAyZDY3OWRhOGQ0Mjc0NmRhZWEyMjhmLnBuZ1wiLFxuXHRcdFx0XHRcdHRleHQ6IFwiMTExMVwiLFxuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fVxuXG5cdFx0ZGF0YS5waWNBcnIgPSBkYXRhLnBpY0Fyci5jb25jYXQoZGF0YS5waWNBcnIpO1xuXHRcdGRhdGEucGljQXJyID0gZGF0YS5waWNBcnIuY29uY2F0KGRhdGEucGljQXJyKTtcblx0XHRkYXRhLnBpY0FyciA9IGRhdGEucGljQXJyLmNvbmNhdChkYXRhLnBpY0Fycik7XG5cdFx0ZGF0YS5waWNBcnIgPSBkYXRhLnBpY0Fyci5jb25jYXQoZGF0YS5waWNBcnIpO1xuXHRcdGRhdGEucGljQXJyID0gZGF0YS5waWNBcnIuY29uY2F0KGRhdGEucGljQXJyKTtcblx0XHRyZXR1cm4gZGF0YTtcblx0fSxcblxuXHRwcmVsb2FkKCkge1xuXG5cdFx0Y29uc3QgcHJlbG9hZEFyciA9IHRoaXMuX2ltYWdlUmVzTGlzdC5jb25jYXQodGhpcy5fYXVkaW9SZXNMaXN0KS5jb25jYXQodGhpcy5fYW5pbWFSZXNMaXN0KTtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZEFueShwcmVsb2FkQXJyLCBudWxsLCBudWxsLCAoZXJyLCBkYXRhKSA9PiB7XG5cdFx0XHRjb25zb2xlLmxvZygnIHByZWxvYWQgZGF0YSwgJywgZGF0YSk7XG5cblx0XHRcdC8vIHR5cGVvZlxuXHRcdFx0dGhpcy5sb2FkRW5kKCk7XG5cdFx0XHRpZiAod2luZG93ICYmIHdpbmRvd1tcImFpclwiXSkge1xuXHRcdFx0XHR3aW5kb3dbXCJhaXJcIl0uaGlkZUFpckNsYXNzTG9hZGluZygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXG5cdGFkZFByZWxvYWRJbWFnZSgpIHtcblx0XG5cdFx0aWYgKHRoaXMuZGF0YS5iZ0l0ZW0pIHtcblx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmdJdGVtLnVybCB9KTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRcdGlmIChpdGVtLnBpY191cmwpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IGl0ZW0ucGljX3VybCB9KTtcblx0XHRcdH1cblx0XHR9KVxuXG5cdH0sXG5cblx0YWRkUHJlbG9hZEF1ZGlvKCkge1xuXG5cdFx0aWYgKCF0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHt1cmw6IGl0ZW0uYXVkaW9fdXJsfSk7XG5cdFx0fSlcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHt1cmw6IHRoaXMuYmdfYXVkaW9fdXJsfSk7XG5cdH0sXG5cblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXHRcdGlmICghdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuZGF0YS5ob3Rab25lSXRlbUFyci5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRpZiAoaXRlbS5za2VKc29uRGF0YSkge1xuXHRcdFx0XHR0aGlzLl9hbmltYVJlc0xpc3QucHVzaCh7IHVybDogaXRlbS5za2VKc29uRGF0YS51cmwgfHwgJycgfSk7XG5cdFx0XHRcdHRoaXMuX2FuaW1hUmVzTGlzdC5wdXNoKHsgdXJsOiBpdGVtLnRleEpzb25EYXRhLnVybCB8fCAnJ30pO1xuXHRcdFx0XHR0aGlzLl9hbmltYVJlc0xpc3QucHVzaCh7IHVybDogaXRlbS50ZXhQbmdEYXRhLnVybCB8fCAnJ30pO1xuXHRcdFx0fVxuXHRcdH0pXG5cdH0sXG5cblx0bG9hZEVuZCgpIHtcblx0XHR0aGlzLmluaXRWaWV3KCk7XG5cdH0sXG5cblx0aW5pdFZpZXcoKSB7XG5cdFx0dGhpcy5pbml0QmcoKTtcblx0XHR0aGlzLmluaXRIb3Rab25lKCk7XG5cdFx0dGhpcy5pbml0Qm90dG9tUGFydCgpO1xuXHRcdHRoaXMuaW5pdENpcmNsZSgpO1xuXHRcdHRoaXMuaW5pdExpc3RlbmVyKCk7XG5cdFx0dGhpcy5pbml0TXVzaWMoKTtcblx0fSxcblxuXG5cdGluaXRNdXNpYygpIHtcblx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh0aGlzLmRhdGEuYmdfYXVkaW9fdXJsLCAoZXJyLCBjbGlwKSA9PiB7XG5cdFx0XHRjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgwLjMpO1xuXHRcdFx0Y29uc3QgYXVkaW9JRCA9IGNjLmF1ZGlvRW5naW5lLnBsYXlNdXNpYyhjbGlwLCB0cnVlKTtcblx0XHR9KTtcblx0fSxcblxuXHRfY29jb3NTY2FsZTogbnVsbCxcblx0aW5pdEJnKCkge1xuXHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cblx0XHRsZXQgc3ggPSBjYy53aW5TaXplLndpZHRoIC8gZnJhbWVTaXplLndpZHRoO1xuXHRcdGxldCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gZnJhbWVTaXplLmhlaWdodDtcblx0XHRsZXQgcyA9IE1hdGgubWluKHN4LCBzeSk7XG5cblx0XHR0aGlzLl9jb2Nvc1NjYWxlID0gcztcblxuXHRcdGNvbnN0IGJnTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZycpO1xuXHRcdC8vIGNvbnN0IHN4ID0gY2Mud2luU2l6ZS53aWR0aCAvIGJnTm9kZS53aWR0aDtcblx0XHQvLyBjb25zdCBzeSA9IGNjLndpblNpemUuaGVpZ2h0IC8gYmdOb2RlLmhlaWdodDtcblx0XHQgc3ggPSBmcmFtZVNpemUud2lkdGggLyBiZ05vZGUud2lkdGg7XG5cdFx0IHN5ID0gZnJhbWVTaXplLmhlaWdodCAvIGJnTm9kZS5oZWlnaHQ7XG5cdFx0YmdOb2RlLnNjYWxlID0gTWF0aC5tYXgoc3gsIHN5KSAqIHM7XG5cdFx0YmdOb2RlLmFuY2hvclggPSAxO1xuXHRcdGJnTm9kZS5hbmNob3JZID0gMDtcblx0XHRiZ05vZGUueCA9IGZyYW1lU2l6ZS53aWR0aCAvIDIgKiBzO1xuXHRcdGJnTm9kZS55ID0gLWZyYW1lU2l6ZS5oZWlnaHQgLyAyICogcztcblxuXG5cblx0XG5cdFx0Y29uc3QgYmcgPSBjYy5maW5kKCdDYW52YXMvYmcnKTtcblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUueCA9IC1iZy54O1xuXHRcdHJlY3ROb2RlLnkgPSAtYmcueTtcblx0XHRyZWN0Tm9kZS5zY2FsZVggPSBiZy5zY2FsZVg7XG5cdFx0cmVjdE5vZGUuc2NhbGVZID0gYmcuc2NhbGVZO1xuXHRcdGJnLmFkZENoaWxkKHJlY3ROb2RlKTtcblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGN0eC5maWxsQ29sb3IgPSB0aGlzLmRhdGEuYmdDb2xvciB8fCAnI2Y5YmQwMyc7XG5cdFx0Y3R4LmZpbGxSZWN0KC1iZy53aWR0aCAvIDIgLCAtYmcuaGVpZ2h0IC8gMiwgYmcud2lkdGgsIGJnLmhlaWdodCk7XG5cdFx0Y3R4LmZpbGwoKTtcblxuXHR9LFxuXG5cblx0aW5pdEhvdFpvbmUoKSB7XG5cdFx0dGhpcy5pbml0SG90Wm9uZUJnKCk7XG5cblx0fSxcblxuXHRob3Rab25lQmc6IG51bGwsXG5cdGluaXRIb3Rab25lQmcoKSB7XG5cdFx0dGhpcy5ob3Rab25lQmcgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHRoaXMuaG90Wm9uZUJnLm5hbWUgPSAnaG90Wm9uZUJnJztcblx0XHR0aGlzLmhvdFpvbmVCZy5wYXJlbnQgPSBjYy5maW5kKCdDYW52YXMnKTtcblx0XHR0aGlzLmhvdFpvbmVCZy56SW5kZXggPSA0O1xuXG5cblx0XHRjb25zdCBjYW52YXMgPSBjYy5maW5kKCdDYW52YXMvTWFpbiBDYW1lcmEnKTtcblx0XHQvLyBjb25zb2xlLmxvZygnY2FudmFzOiAnLCBjYW52YXMpO1xuXG5cdFx0aWYgKCF0aGlzLmRhdGEuYmdJdGVtKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y2MubG9hZGVyLmxvYWQoe3VybDogdGhpcy5kYXRhLmJnSXRlbS51cmx9LCAoZXJyLCBpbWcpID0+IHtcblxuXHRcdFx0dGhpcy5hZGRNYXNrKHRoaXMuaG90Wm9uZUJnKTtcblxuXHRcdFx0dGhpcy5ob3Rab25lQmcud2lkdGggPSBpbWcud2lkdGg7XG5cdFx0XHR0aGlzLmhvdFpvbmVCZy5oZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXG5cblxuXHRcdFx0Y29uc3QgYm94ID0gdGhpcy5ob3Rab25lQmcuZ2V0Qm91bmRpbmdCb3goKTtcblxuXG5cdFx0XHRjb25zdCB0bXBTID0gNjQwIC8gNzIwO1xuXHRcdFx0bGV0IHN1Yk51bSA9IDcyMCAtIDY0MDtcblx0XHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cdFx0XHRjb25zdCB3aW5TaXplID0gY2Mud2luU2l6ZTtcblxuXHRcdFx0Y29uc29sZS5sb2coJ3RoaXMuaG90Wm9uZUJnLmJveDogJywgdGhpcy5ob3Rab25lQmcuZ2V0Qm91bmRpbmdCb3goKSk7XG5cdFx0XHRjb25zb2xlLmxvZygnbGV0IHZpc2lTaXplPWNjLmRpcmVjdG9yLmdldFZpc2libGVTaXplKCk7OiAnLCBjYy52aWV3LmdldFZpc2libGVTaXplKCkpO1xuXHRcdFx0Y29uc29sZS5sb2coJ2xmcmFtZVNpemU6ICcsIGZyYW1lU2l6ZSk7XG5cblx0XHRcdGxldCBzeCA9IGZyYW1lU2l6ZS53aWR0aCAvIHRoaXMuX2Rlc2lnblNpemUud2lkdGg7XG5cdFx0XHRsZXQgc3kgPSBmcmFtZVNpemUuaGVpZ2h0IC8gdGhpcy5fZGVzaWduU2l6ZS5oZWlnaHQ7XG5cdFx0XHRjb25zdCBtYXBTID0gTWF0aC5taW4oc3gsIHN5KTtcblx0XHRcdC8vIGNvbnN0IHN5ID0gY2FudmFzLmhlaWdodCAqIHRtcFMgLyBib3guaGVpZ2h0O1xuXG5cblx0XHRcdGNvbnN0IGJnQm90dG9tID0gY2MuZmluZCgnQ2FudmFzL2JnQm90dG9tJyk7XG5cdFx0XHRiZ0JvdHRvbS5zY2FsZSA9IG1hcFMgKiB0aGlzLl9jb2Nvc1NjYWxlO1xuXHRcdFx0Ly8gc3ViTnVtID0gYmdCb3R0b20uaGVpZ2h0O1xuXG5cdFx0XHQgc3ggPSBmcmFtZVNpemUud2lkdGggKiB0aGlzLl9jb2Nvc1NjYWxlIC8gaW1nLndpZHRoO1xuXHRcdFx0IHN5ID0gKGZyYW1lU2l6ZS5oZWlnaHQgKiB0aGlzLl9jb2Nvc1NjYWxlIC0gc3ViTnVtICogbWFwUyAqIHRoaXMuX2NvY29zU2NhbGUpIC8gaW1nLmhlaWdodDtcblxuXG5cdFx0XHRjb25zdCBzcHJOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdHZhciBzZiA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpO1xuXHRcdFx0Ly8gY29uc3Qgc3ByID0gdGhpcy5ob3Rab25lQmcuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRjb25zdCBzcHIgPSBzcHJOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gc2Zcblx0XHRcdHNwck5vZGUud2lkdGggPSB0aGlzLmhvdFpvbmVCZy53aWR0aDtcblx0XHRcdHNwck5vZGUuaGVpZ2h0ID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0O1xuXHRcdFx0c3ByTm9kZS5wYXJlbnQgPSB0aGlzLmhvdFpvbmVCZztcblxuXHRcdFx0dGhpcy5ob3Rab25lQmcuc2NhbGUgPSBNYXRoLm1pbihzeCwgc3kpO1xuXG5cdFx0XHQvLyB0aGlzLmhvdFpvbmVCZy55ID0gLWZyYW1lU2l6ZS5oZWlnaHQgLyAyICogdGhpcy5fY29jb3NTY2FsZSArIHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgKiB0aGlzLmhvdFpvbmVCZy5zY2FsZVkgKyAoc3ViTnVtICogbWFwUyAqIHRoaXMuX2NvY29zU2NhbGUpO1xuXHRcdFx0dGhpcy5ob3Rab25lQmcueSA9IGZyYW1lU2l6ZS5oZWlnaHQgLyAyICogdGhpcy5fY29jb3NTY2FsZSAtIHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgKiB0aGlzLmhvdFpvbmVCZy5zY2FsZVkgO1xuXG5cblx0XHRcdC8vIHRoaXMuaG90Wm9uZUJnLm9wYWNpdHkgPSAyMDtcblxuXHRcdFx0Y29uc3QgYmdXaGl0ZSA9IGNjLmZpbmQoJ0NhbnZhcy9iZ1doaXRlJyk7XG5cdFx0XHRiZ1doaXRlLnkgPSB0aGlzLmhvdFpvbmVCZy55O1xuXG5cdFx0XHRiZ1doaXRlLnNjYWxlWCA9IHRoaXMuaG90Wm9uZUJnLndpZHRoICogdGhpcy5ob3Rab25lQmcuc2NhbGVYIC8gYmdXaGl0ZS53aWR0aDtcblx0XHRcdGJnV2hpdGUuc2NhbGVZID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0ICogdGhpcy5ob3Rab25lQmcuc2NhbGVZIC8gYmdXaGl0ZS5oZWlnaHQ7XG5cblxuXHRcdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0XHRjb25zdCBzaGFkb3dOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdHNoYWRvd05vZGUueSA9IGJnV2hpdGUueTtcblx0XHRcdHNoYWRvd05vZGUuc2NhbGVYID0gYmdXaGl0ZS5zY2FsZVg7XG5cdFx0XHRzaGFkb3dOb2RlLnNjYWxlWSA9IGJnV2hpdGUuc2NhbGVZO1xuXHRcdFx0Y2FudmFzLmFkZENoaWxkKHNoYWRvd05vZGUpO1xuXHRcdFx0Y29uc3QgY3R4ID0gc2hhZG93Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdFx0Y3R4LmZpbGxDb2xvciA9IGNjLkNvbG9yLkJMQUNLLnNldEEoMzApO1xuXHRcdFx0Ly8gY3R4LmZpbGxSZWN0KDUsIDUsIHRoaXMuaG90Wm9uZUJnLndpZHRoKnRoaXMuaG90Wm9uZUJnLnNjYWxlWCwgdGhpcy5ob3Rab25lQmcuaGVpZ2h0ICogdGhpcy5ob3Rab25lQmcuc2NhbGVZKTtcblx0XHRcdGN0eC5maWxsUmVjdCgtYmdXaGl0ZS53aWR0aCAvIDIgKyA4IC8gYmdXaGl0ZS5zY2FsZVggKiB0aGlzLmhvdFpvbmVCZy5zY2FsZSwgLWJnV2hpdGUuaGVpZ2h0IC8gMiAtIDggLyBiZ1doaXRlLnNjYWxlWCAqIHRoaXMuaG90Wm9uZUJnLnNjYWxlLCBiZ1doaXRlLndpZHRoLCBiZ1doaXRlLmhlaWdodCk7XG5cdFx0XHRjdHguZmlsbCgpO1xuXG5cdFx0XHRzaGFkb3dOb2RlLnpJbmRleCA9IDE7XG5cdFx0XHRiZ1doaXRlLnpJbmRleCA9IDI7XG5cblx0XHRcdGJnQm90dG9tLnkgPSAtZnJhbWVTaXplLmhlaWdodCAvIDIgKiB0aGlzLl9jb2Nvc1NjYWxlIC0gMTUgKiBiZ0JvdHRvbS5zY2FsZVk7XG5cblx0XHRcdHRoaXMuZGF0YS5ob3Rab25lSXRlbUFyci5mb3JFYWNoKChpdGVtKSA9PiB7XG5cdFx0XHRcdGlmIChpdGVtLmdJZHggPT0gJzAnKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRPbmVDaXJjbGUoaXRlbSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoaXRlbS5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdHRoaXMuc2V0T25lUGljKGl0ZW0pO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGl0ZW0uZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHR0aGlzLnNldE9uZUFuaW1hKGl0ZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdH0pO1xuXG5cdH0sXG5cblx0YWRkTWFzayhub2RlKSB7XG5cdFx0Y29uc3QgbWFzayA9IG5vZGUuYWRkQ29tcG9uZW50KGNjLk1hc2spO1xuXHRcdG1hc2sudHlwZSA9IGNjLk1hc2suVHlwZS5SRUNUO1xuXHR9LFxuXG5cdGluaXRCb3R0b21QYXJ0KCkge1xuXG5cdFx0Y29uc3QgYmdCb3R0b20gPSBjYy5maW5kKCdDYW52YXMvYmdCb3R0b20nKTtcblx0XHRjb25zdCBzY3JpcHQgPSBiZ0JvdHRvbS5nZXRDb21wb25lbnQoJ2JnQm90dG9tJyk7XG5cblx0XHRjb25zdCBwaWNBcnIgPSBbXTtcblx0XHR0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIuZm9yRWFjaCgoaXRlbSkgPT4ge1xuXHRcdFx0aWYgKGl0ZW0uZ0lkeCA9PSAnMCcpIHtcblx0XHRcdFx0cGljQXJyLnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0c2NyaXB0LnNldEl0ZW1EYXRhKHBpY0Fycik7XG5cdH0sXG5cblxuXHRzZXRPbmVBbmltYShkYXRhKSB7XG5cblxuXHRcdGNvbnN0IHJhdGUgPSAodGhpcy5ob3Rab25lQmcuc2NhbGUgKiB0aGlzLmhvdFpvbmVCZy53aWR0aCkgLyB0aGlzLmRhdGEuYmdJdGVtLnJlY3Qud2lkdGg7XG5cblx0XHRjb25zdCByZWN0Tm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cmVjdE5vZGUubmFtZSA9ICdyZWN0JyArIGRhdGEuaW5kZXg7XG5cdFx0dGhpcy5ob3Rab25lQmcuYWRkQ2hpbGQocmVjdE5vZGUpO1xuXG5cblx0XHRjb25zdCBjdHggPSByZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdC8vIOe6ouiJsuefqeW9olxuXHRcdGN0eC5saW5lV2lkdGggPSA0O1xuXHRcdGN0eC5zdHJva2VDb2xvciA9IGNjLkNvbG9yLkJMQUNLO1xuXHRcdGN0eC5maWxsQ29sb3IgPSBjYy5Db2xvci5XSElURS5zZXRBKDEwMCk7XG5cblx0XHRjb25zdCBzY2FsZSA9IHJhdGUgLyB0aGlzLmhvdFpvbmVCZy5zY2FsZVk7XG5cblx0XHRyZWN0Tm9kZS53aWR0aCA9IGRhdGEucmVjdC53aWR0aCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS54ID0gLXRoaXMuaG90Wm9uZUJnLndpZHRoIC8gMiArIGRhdGEucmVjdC54ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueSA9IHRoaXMuaG90Wm9uZUJnLmhlaWdodCAvIDIgLSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGUgLSBkYXRhLnJlY3QueSAqIHNjYWxlO1xuXG5cdFx0cmVjdE5vZGUuYW5jaG9yWCA9IHJlY3ROb2RlLmFuY2hvclkgPSAwO1xuXG5cblx0XHRpZiAodGhpcy5kYXRhLmJnSXRlbS5pc1Nob3dEZWJ1Z0xpbmUpIHtcblx0XHRcdGN0eC5yZWN0KDAsIDAsIHJlY3ROb2RlLndpZHRoLCByZWN0Tm9kZS5oZWlnaHQpO1xuXHRcdH1cblx0XHRjdHguc3Ryb2tlKCk7XG5cdFx0Y3R4LmZpbGwoKTtcblxuXG5cblx0XHRjb25zdCBhbmltYU5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdGFuaW1hTm9kZS5uYW1lID0gJ2FuaW1hXycgKyBkYXRhLmluZGV4O1xuXHRcdHRoaXMuaG90Wm9uZUJnLmFkZENoaWxkKGFuaW1hTm9kZSk7XG5cblx0XHQvLyByZWN0Tm9kZS5hZGRDaGlsZChhbmltYU5vZGUpO1xuXHRcdC8vIGFuaW1hTm9kZS54ID0gcmVjdE5vZGUud2lkdGggLyAyO1xuXHRcdC8vIGFuaW1hTm9kZS55ID0gcmVjdE5vZGUuaGVpZ2h0IC8gMjtcblxuXG5cdFx0aWYgKGRhdGEuYXVkaW9fdXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShkYXRhLmF1ZGlvX3VybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGFuaW1hTm9kZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XG5cdFx0XHR9KTtcblx0XHR9XG5cblxuXHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbmltYU5vZGUuYWRkQ29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cblx0XHRjb25zdCBpbWFnZSA9IGRhdGEudGV4UG5nRGF0YS51cmwvL1wiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81YTBjNWFmM2U5NTJhY2QwYWM4M2E2ZTVjNmYwM2ZmMS5wbmdcIjtcblx0XHRjb25zdCBza2UgPSBkYXRhLnNrZUpzb25EYXRhLnVybC8vXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkODI1ZGNjZWVhMjk4ZDExNDZiZTgwNjdhZTNkMTdmLmpzb25cIjtcblx0XHRjb25zdCBhdGxhcyA9IGRhdGEudGV4SnNvbkRhdGEudXJsLy9cImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjQ2Zjg5OTFiNzI5ZmEzZTVhN2Y0ODAyZGU4MjhlZmEuanNvblwiO1xuXHRcdGNjLmxvYWRlci5sb2FkKGltYWdlLCAoZXJyb3IsIHRleHR1cmUpID0+IHtcblxuXHRcdFx0Y2MubG9hZGVyLmxvYWQoe3VybDogYXRsYXMsIHR5cGU6ICd0eHQnfSwgKGVycm9yLCBhdGxhc0pzb24pID0+IHtcblxuXHRcdFx0XHRjYy5sb2FkZXIubG9hZCh7dXJsOiBza2UsIHR5cGU6ICd0eHQnfSwgKGVycm9yLCBkcmFnb25Cb25lc0pzb24pID0+IHtcblxuXHRcdFx0XHRcdGNvbnN0IGF0bGFzID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXRsYXNBc3NldCgpO1xuXHRcdFx0XHRcdGF0bGFzLmF0bGFzSnNvbiA9IGF0bGFzSnNvbjtcblx0XHRcdFx0XHRhdGxhcy50ZXh0dXJlID0gdGV4dHVyZTtcblxuXHRcdFx0XHRcdGNvbnN0IGFzc2V0ID0gbmV3IGRyYWdvbkJvbmVzLkRyYWdvbkJvbmVzQXNzZXQoKTtcblx0XHRcdFx0XHRhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cblx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LmRyYWdvbkF0bGFzQXNzZXQgPSBhdGxhcztcblx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LmRyYWdvbkFzc2V0ID0gYXNzZXQ7XG5cblx0XHRcdFx0XHRsZXQganNvbiA9IEpTT04ucGFyc2UoYXNzZXQuZHJhZ29uQm9uZXNKc29uKTtcblx0XHRcdFx0XHRsZXQgYXJtYXR1cmVzID0ganNvbltcImFybWF0dXJlXCJdO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhcm1hdHVyZXM6ICcsIGFybWF0dXJlcyk7XG5cdFx0XHRcdFx0bGV0IGFybWF0dXJlTmFtZXMgPSBbXTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFybWF0dXJlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0YXJtYXR1cmVOYW1lcy5wdXNoKGFybWF0dXJlc1tpXS5uYW1lKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ2FybWF0dXJlTmFtZXM6ICcsIGFybWF0dXJlTmFtZXMpO1xuXHRcdFx0XHRcdGlmIChhcm1hdHVyZU5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGxldCBkZWZhdWx0QXJtYXR1cmVOYW1lID0gYXJtYXR1cmVOYW1lc1swXTtcblx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuYXJtYXR1cmVOYW1lID0gZGVmYXVsdEFybWF0dXJlTmFtZTtcblx0XHRcdFx0XHRcdC8vIGxldCBhbmltYXRpb25OYW1lcyA9IGRyYWdvbkRpc3BsYXkuZ2V0QW5pbWF0aW9uTmFtZXMoZGVmYXVsdEFybWF0dXJlTmFtZSk7XG5cdFx0XHRcdFx0XHRsZXQgZGVmYXVsdEFybWF0dXJlID0gYXJtYXR1cmVzWzBdO1xuXHRcdFx0XHRcdFx0bGV0IGFuaW1hdGlvbnMgPSBkZWZhdWx0QXJtYXR1cmUuYW5pbWF0aW9uO1xuXHRcdFx0XHRcdFx0bGV0IGFuaW1hdGlvbk5hbWVzID0gW107XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFuaW1hdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0YW5pbWF0aW9uTmFtZXMucHVzaChhbmltYXRpb25zW2ldLm5hbWUpO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRyZWN0Tm9kZS5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRcdFx0XHRcdHJlY3ROb2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlY3ROb2RlLmlzQ2xpY2tlZCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZWN0Tm9kZS5pc0NsaWNrZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnY2xpY2tlZCcpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChhbmltYU5vZGUuYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcEFsbEVmZmVjdHMoKTtcblx0XHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGFuaW1hTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKGFuaW1hdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oYW5pbWF0aW9uTmFtZXNbMF0sIDEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHR9LFxuXG5cblx0c2V0T25lUGljKGRhdGEpIHtcblx0XHRjb25zdCByYXRlID0gKHRoaXMuaG90Wm9uZUJnLnNjYWxlICogdGhpcy5ob3Rab25lQmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcGljTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XG5cdFx0cGljTm9kZS5kYXRhID0gZGF0YTtcblx0XHR0aGlzLmhvdFpvbmVCZy5hZGRDaGlsZChwaWNOb2RlKTtcblxuXHRcdGNjLmxvYWRlci5sb2FkKHt1cmw6IGRhdGEucGljX3VybH0sIChlcnIsIGltZykgPT4ge1xuXG5cdFx0XHRjb25zdCBzcHIgPSBwaWNOb2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0c3ByLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKGltZylcblxuXHRcdFx0Y29uc3Qgc2NhbGUgPSByYXRlIC8gdGhpcy5ob3Rab25lQmcuc2NhbGVZO1xuXG5cdFx0XHRwaWNOb2RlLndpZHRoID0gZGF0YS5yZWN0LndpZHRoICogc2NhbGU7XG5cdFx0XHRwaWNOb2RlLmhlaWdodCA9IGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZTtcblx0XHRcdHBpY05vZGUueCA9IC10aGlzLmhvdFpvbmVCZy53aWR0aCAvIDIgKyBkYXRhLnJlY3QueCAqIHNjYWxlO1xuXHRcdFx0cGljTm9kZS55ID0gdGhpcy5ob3Rab25lQmcuaGVpZ2h0IC8gMiAtIGRhdGEucmVjdC5oZWlnaHQgKiBzY2FsZSAtIGRhdGEucmVjdC55ICogc2NhbGU7XG5cblx0XHRcdHBpY05vZGUuYW5jaG9yWCA9IHBpY05vZGUuYW5jaG9yWSA9IDA7XG5cblx0XHRcdGlmIChkYXRhLmF1ZGlvX3VybCkge1xuXHRcdFx0XHR0aGlzLmFkZFBpY0F1ZGlvKHBpY05vZGUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdH0sXG5cblx0YWRkUGljQXVkaW8ocGljTm9kZSkge1xuXHRcdGNvbnN0IGRhdGEgPSBwaWNOb2RlLmRhdGE7XG5cdFx0XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRSZW1vdGUoZGF0YS5hdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0cGljTm9kZS5hdWRpb0NsaXAgPSBhdWRpb0NsaXA7XG5cdFx0fSk7XG5cblx0XHRwaWNOb2RlLmFkZENvbXBvbmVudChjYy5CdXR0b24pO1xuXHRcdHBpY05vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRpZiAocGljTm9kZS5hdWRpb0NsaXApIHtcblx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5zdG9wQWxsRWZmZWN0cygpO1xuXHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXlFZmZlY3QocGljTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0c2V0T25lQ2lyY2xlKGRhdGEpIHtcblx0XHRjb25zdCByYXRlID0gKHRoaXMuaG90Wm9uZUJnLnNjYWxlICogdGhpcy5ob3Rab25lQmcud2lkdGgpIC8gdGhpcy5kYXRhLmJnSXRlbS5yZWN0LndpZHRoO1xuXG5cdFx0Y29uc3QgcmVjdE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdHJlY3ROb2RlLm5hbWUgPSAncmVjdCcgKyBkYXRhLmluZGV4O1xuXHRcdHJlY3ROb2RlLmRhdGEgPSBkYXRhO1xuXHRcdHRoaXMuaG90Wm9uZUJnLmFkZENoaWxkKHJlY3ROb2RlKTtcblxuXG5cdFx0Y29uc3Qgc2NhbGUgPSByYXRlIC8gdGhpcy5ob3Rab25lQmcuc2NhbGVZO1xuXG5cdFx0cmVjdE5vZGUud2lkdGggPSBkYXRhLnJlY3Qud2lkdGggKiBzY2FsZTtcblx0XHRyZWN0Tm9kZS5oZWlnaHQgPSBkYXRhLnJlY3QuaGVpZ2h0ICogc2NhbGU7XG5cdFx0cmVjdE5vZGUueCA9IC10aGlzLmhvdFpvbmVCZy53aWR0aCAvIDIgKyBkYXRhLnJlY3QueCAqIHNjYWxlO1xuXHRcdHJlY3ROb2RlLnkgPSB0aGlzLmhvdFpvbmVCZy5oZWlnaHQgLyAyIC0gZGF0YS5yZWN0LmhlaWdodCAqIHNjYWxlIC0gZGF0YS5yZWN0LnkgKiBzY2FsZTtcblxuXHRcdHJlY3ROb2RlLmFuY2hvclggPSByZWN0Tm9kZS5hbmNob3JZID0gMDtcblxuXG5cdFx0aWYgKGRhdGEuYXVkaW9fdXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShkYXRhLmF1ZGlvX3VybCwgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdGRhdGEuYXVkaW9DbGlwID0gYXVkaW9DbGlwO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmVjdE5vZGUuYWRkQ29tcG9uZW50KGNjLkJ1dHRvbik7XG5cdFx0cmVjdE5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5zaG93Q2lyY2xlKHJlY3ROb2RlKTtcblx0XHR9KTtcblxuXG5cblxuXG5cdFx0Y29uc3QgYW5pbWFOb2RlID0gbmV3IGNjLk5vZGUoKTtcblx0XHRhbmltYU5vZGUubmFtZSA9ICdhbmltYV8nICsgZGF0YS5pbmRleDtcblx0XHR0aGlzLmhvdFpvbmVCZy5hZGRDaGlsZChhbmltYU5vZGUpO1xuXHRcdGRhdGEuYW5pbWFOb2RlID0gYW5pbWFOb2RlO1xuXG5cblx0XHRpZiAoZGF0YS5hdWRpb191cmwpIHtcblx0XHRcdGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKGRhdGEuYXVkaW9fdXJsLCAoZXJyLCBhdWRpb0NsaXApID0+IHtcblx0XHRcdFx0YW5pbWFOb2RlLmF1ZGlvQ2xpcCA9IGF1ZGlvQ2xpcDtcblx0XHRcdH0pO1xuXHRcdH1cblxuXG5cdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuaW1hTm9kZS5hZGRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblxuXHRcdGNvbnN0IGltYWdlID0gZGF0YS50ZXhQbmdEYXRhLnVybC8vXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzVhMGM1YWYzZTk1MmFjZDBhYzgzYTZlNWM2ZjAzZmYxLnBuZ1wiO1xuXHRcdGNvbnN0IHNrZSA9IGRhdGEuc2tlSnNvbkRhdGEudXJsLy9cImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmQ4MjVkY2NlZWEyOThkMTE0NmJlODA2N2FlM2QxN2YuanNvblwiO1xuXHRcdGNvbnN0IGF0bGFzID0gZGF0YS50ZXhKc29uRGF0YS51cmwvL1wiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8yNDZmODk5MWI3MjlmYTNlNWE3ZjQ4MDJkZTgyOGVmYS5qc29uXCI7XG5cdFx0Y2MubG9hZGVyLmxvYWQoaW1hZ2UsIChlcnJvciwgdGV4dHVyZSkgPT4ge1xuXG5cdFx0XHRjYy5sb2FkZXIubG9hZCh7dXJsOiBhdGxhcywgdHlwZTogJ3R4dCd9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuXG5cdFx0XHRcdGNjLmxvYWRlci5sb2FkKHt1cmw6IHNrZSwgdHlwZTogJ3R4dCd9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuXG5cdFx0XHRcdFx0Y29uc3QgYXRsYXMgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBdGxhc0Fzc2V0KCk7XG5cdFx0XHRcdFx0YXRsYXMuYXRsYXNKc29uID0gYXRsYXNKc29uO1xuXHRcdFx0XHRcdGF0bGFzLnRleHR1cmUgPSB0ZXh0dXJlO1xuXG5cdFx0XHRcdFx0Y29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpO1xuXHRcdFx0XHRcdGFzc2V0LmRyYWdvbkJvbmVzSnNvbiA9IGRyYWdvbkJvbmVzSnNvbjtcblxuXHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuZHJhZ29uQXRsYXNBc3NldCA9IGF0bGFzO1xuXHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcblxuXHRcdFx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShhc3NldC5kcmFnb25Cb25lc0pzb24pO1xuXHRcdFx0XHRcdGxldCBhcm1hdHVyZXMgPSBqc29uW1wiYXJtYXR1cmVcIl07XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2FybWF0dXJlczogJywgYXJtYXR1cmVzKTtcblx0XHRcdFx0XHRsZXQgYXJtYXR1cmVOYW1lcyA9IFtdO1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYXJtYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRhcm1hdHVyZU5hbWVzLnB1c2goYXJtYXR1cmVzW2ldLm5hbWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygnYXJtYXR1cmVOYW1lczogJywgYXJtYXR1cmVOYW1lcyk7XG5cdFx0XHRcdFx0aWYgKGFybWF0dXJlTmFtZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0bGV0IGRlZmF1bHRBcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWVzWzBdO1xuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBkZWZhdWx0QXJtYXR1cmVOYW1lO1xuXHRcdFx0XHRcdFx0Ly8gbGV0IGFuaW1hdGlvbk5hbWVzID0gZHJhZ29uRGlzcGxheS5nZXRBbmltYXRpb25OYW1lcyhkZWZhdWx0QXJtYXR1cmVOYW1lKTtcblx0XHRcdFx0XHRcdGxldCBkZWZhdWx0QXJtYXR1cmUgPSBhcm1hdHVyZXNbMF07XG5cdFx0XHRcdFx0XHRsZXQgYW5pbWF0aW9ucyA9IGRlZmF1bHRBcm1hdHVyZS5hbmltYXRpb247XG5cdFx0XHRcdFx0XHRsZXQgYW5pbWF0aW9uTmFtZXMgPSBbXTtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYW5pbWF0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRhbmltYXRpb25OYW1lcy5wdXNoKGFuaW1hdGlvbnNbaV0ubmFtZSk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIHJlY3ROb2RlLmFkZENvbXBvbmVudChjYy5CdXR0b24pO1xuXHRcdFx0XHRcdFx0Ly8gcmVjdE5vZGUub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0YW5pbWFOb2RlLnNob3dBbmltYSA9ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlY3ROb2RlLmlzQ2xpY2tlZCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZWN0Tm9kZS5pc0NsaWNrZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnY2xpY2tlZCcpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChhbmltYU5vZGUuYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcEFsbEVmZmVjdHMoKTtcblx0XHRcdFx0XHRcdFx0XHRjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGFuaW1hTm9kZS5hdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKGFuaW1hdGlvbk5hbWVzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oYW5pbWF0aW9uTmFtZXNbMF0sIDEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0fSxcblxuXHRfY2lyY2xlOiBudWxsLFxuXHRpbml0Q2lyY2xlKCkge1xuXG5cdFx0dGhpcy5fY2lyY2xlID0gY2MuZmluZCgnQ2FudmFzL2NpcmNsZScpO1xuXHRcdHRoaXMuX2NpcmNsZS5hY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLl9jaXJjbGUuekluZGV4ID0gMTI7XG5cdH0sXG5cblx0c2hvd0NpcmNsZShub2RlKSB7XG5cdFx0Y29uc29sZS5sb2coJyBpbiBzaG93Q2lyY2xlJyk7XG5cblx0XHRpZiAobm9kZSA9PSB0aGlzLl9jaXJjbGUuaXRlbU5vZGUpIHtcblxuXHRcdFx0bm9kZS5kYXRhLmFuaW1hTm9kZS5zaG93QW5pbWEoKTtcblx0XHRcdC8vIGlmIChub2RlLmRhdGEuYXVkaW9DbGlwKSB7XG5cdFx0XHQvLyBcdGNjLmF1ZGlvRW5naW5lLnN0b3BBbGwoKTtcblx0XHRcdC8vIFx0Y2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChub2RlLmRhdGEuYXVkaW9DbGlwLCBmYWxzZSwgMC44KTtcblx0XHRcdC8vIH1cblx0XHRcdHRoaXMuaGlkZUNpcmNsZSgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2NpcmNsZS5pdGVtTm9kZSA9IG5vZGU7XG5cblx0XHRub2RlLnggKz0gbm9kZS53aWR0aCAvIDI7XG5cdFx0bm9kZS55ICs9IG5vZGUuaGVpZ2h0IC8gMjtcblx0XHRjb25zdCByYXRlID0gZ2V0U2NhbGVSYXRlQnkyTm9kZSh0aGlzLl9jaXJjbGUsIG5vZGUpO1xuXHRcdGNvbnN0IHBvcyA9IGxvY2FsUG9zVG9sb2NhbFBvcyh0aGlzLl9jaXJjbGUsIG5vZGUpO1xuXHRcdG5vZGUueCAtPSBub2RlLndpZHRoIC8gMjtcblx0XHRub2RlLnkgLT0gbm9kZS5oZWlnaHQgLyAyO1xuXG5cdFx0dGhpcy5fY2lyY2xlLnNjYWxlICo9IHJhdGU7XG5cdFx0dGhpcy5fY2lyY2xlLnNjYWxlICo9ICg1LzQpO1xuXG5cdFx0dGhpcy5fY2lyY2xlLnggPSBwb3MueDtcblx0XHR0aGlzLl9jaXJjbGUueSA9IHBvcy55O1xuXG5cdFx0dGhpcy5fY2lyY2xlLmFjdGl2ZSA9IHRydWU7XG5cblx0XHR0aGlzLl9jaXJjbGUub3BhY2l0eSA9IDA7XG5cdFx0Y2MudHdlZW4odGhpcy5fY2lyY2xlKVxuXHRcdFx0LnRvKDEsIHtvcGFjaXR5OiAyNTV9LCB7ZWFzaW5nOiAnY3ViaWNPdXQnfSlcblx0XHRcdC5zdGFydCgpO1xuXG5cdH0sXG5cblx0aW5pdExpc3RlbmVyKCkge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGNjLmZpbmQoJ0NhbnZhcycpO1xuXHRcdGNhbnZhcy5hZGRDb21wb25lbnQoY2MuQnV0dG9uKTtcblx0XHRjYW52YXMub24oJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5oaWRlQ2lyY2xlKCk7XG5cdFx0fSk7XG5cdH0sXG5cblx0aGlkZUNpcmNsZSgpIHtcblx0XHR0aGlzLl9jaXJjbGUuaXRlbU5vZGUgPSBudWxsO1xuXHRcdGNjLnR3ZWVuKHRoaXMuX2NpcmNsZSlcblx0XHRcdC50bygxLCB7b3BhY2l0eTogMH0sIHtlYXNpbmc6ICdjdWJpY091dCd9KVxuXHRcdFx0LnN0YXJ0KCk7XG5cdH1cblxuXG5cdC8vIHVwZGF0ZSAoZHQpIHt9LFxufSk7XG4iXX0=
//------QC-SOURCE-SPLIT------
(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/mz_004/script/util.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, '5ac8b17OKNJaawviu75DIhe', 'util');
// mz_004/script/util.js
"use strict";
exports.__esModule = true;
exports.getPosByAngle = getPosByAngle;
exports.getAngleByPos = getAngleByPos;
exports.exchangeNodePos = exchangeNodePos;
exports.RandomInt = RandomInt;
exports.randomSortByArr = randomSortByArr;
exports.setSprNodeMaxLen = setSprNodeMaxLen;
exports.localPosTolocalPos = localPosTolocalPos;
exports.getScaleRateBy2Node = getScaleRateBy2Node;
function getPosByAngle(angle, len) {
var radian = angle * Math.PI / 180;
var x = Math.sin(radian) * len;
var y = Math.cos(radian) * len;
return {
x: x,
y: y
};
}
function getAngleByPos(px, py, mx, my) {
var x = Math.abs(px - mx);
var y = Math.abs(py - my);
var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
var cos = y / z;
var radina = Math.acos(cos); // 用反三角函数求弧度
var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度
if (mx > px && my > py) {
// 鼠标在第四象限
angle = 180 - angle;
}
if (mx === px && my > py) {
// 鼠标在y轴负方向上
angle = 180;
}
if (mx > px && my === py) {
// 鼠标在x轴正方向上
angle = 90;
}
if (mx < px && my > py) {
// 鼠标在第三象限
angle = 180 + angle;
}
if (mx < px && my === py) {
// 鼠标在x轴负方向
angle = 270;
}
if (mx < px && my < py) {
// 鼠标在第二象限
angle = 360 - angle;
} // console.log('angle: ', angle);
return angle;
}
function exchangeNodePos(baseNode, targetNode) {
return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}
function RandomInt(a, b) {
if (b === void 0) {
b = 0;
}
var max = Math.max(a, b);
var min = Math.min(a, b);
return Math.floor(Math.random() * (max - min) + min);
}
function randomSortByArr(arr) {
var newArr = [];
var tmpArr = arr.concat();
while (tmpArr.length > 0) {
var randomIndex = Math.floor(tmpArr.length * Math.random());
newArr.push(tmpArr[randomIndex]);
tmpArr.splice(randomIndex, 1);
}
return newArr;
}
function setSprNodeMaxLen(sprNode, maxW, maxH) {
var sx = maxW / sprNode.width;
var sy = maxH / sprNode.height;
var s = Math.min(sx, sy);
sprNode.scale = Math.round(s * 1000) / 1000;
}
function localPosTolocalPos(baseNode, targetNode) {
var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
function getScaleRateBy2Node(baseNode, targetNode, maxFlag) {
if (maxFlag === void 0) {
maxFlag = true;
}
var worldRect1 = targetNode.getBoundingBoxToWorld();
var worldRect2 = baseNode.getBoundingBoxToWorld();
var sx = worldRect1.width / worldRect2.width;
var sy = worldRect1.height / worldRect2.height;
if (maxFlag) {
return Math.max(sx, sy);
} else {
return Math.min(sx, sy);
}
}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9tel8wMDQvc2NyaXB0L3V0aWwuanMiXSwibmFtZXMiOlsiZ2V0UG9zQnlBbmdsZSIsImFuZ2xlIiwibGVuIiwicmFkaWFuIiwiTWF0aCIsIlBJIiwieCIsInNpbiIsInkiLCJjb3MiLCJnZXRBbmdsZUJ5UG9zIiwicHgiLCJweSIsIm14IiwibXkiLCJhYnMiLCJ6Iiwic3FydCIsInBvdyIsInJhZGluYSIsImFjb3MiLCJmbG9vciIsImV4Y2hhbmdlTm9kZVBvcyIsImJhc2VOb2RlIiwidGFyZ2V0Tm9kZSIsImNvbnZlcnRUb05vZGVTcGFjZUFSIiwiX3BhcmVudCIsImNvbnZlcnRUb1dvcmxkU3BhY2VBUiIsImNjIiwidjIiLCJSYW5kb21JbnQiLCJhIiwiYiIsIm1heCIsIm1pbiIsInJhbmRvbSIsInJhbmRvbVNvcnRCeUFyciIsImFyciIsIm5ld0FyciIsInRtcEFyciIsImNvbmNhdCIsImxlbmd0aCIsInJhbmRvbUluZGV4IiwicHVzaCIsInNwbGljZSIsInNldFNwck5vZGVNYXhMZW4iLCJzcHJOb2RlIiwibWF4VyIsIm1heEgiLCJzeCIsIndpZHRoIiwic3kiLCJoZWlnaHQiLCJzIiwic2NhbGUiLCJyb3VuZCIsImxvY2FsUG9zVG9sb2NhbFBvcyIsIndvcmxkUG9zIiwicGFyZW50IiwibG9jYWxQb3MiLCJnZXRTY2FsZVJhdGVCeTJOb2RlIiwibWF4RmxhZyIsIndvcmxkUmVjdDEiLCJnZXRCb3VuZGluZ0JveFRvV29ybGQiLCJ3b3JsZFJlY3QyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxTQUFTQSxhQUFULENBQXVCQyxLQUF2QixFQUE4QkMsR0FBOUIsRUFBbUM7QUFFeEMsTUFBTUMsTUFBTSxHQUFHRixLQUFLLEdBQUdHLElBQUksQ0FBQ0MsRUFBYixHQUFrQixHQUFqQztBQUNBLE1BQU1DLENBQUMsR0FBR0YsSUFBSSxDQUFDRyxHQUFMLENBQVNKLE1BQVQsSUFBbUJELEdBQTdCO0FBQ0Es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Q0MsRUFBSCxDQUFNTCxVQUFVLENBQUNsQixDQUFqQixFQUFvQmtCLFVBQVUsQ0FBQ2hCLENBQS9CLENBQXhDLENBQWpCO0FBQ0EsTUFBTW1ELFFBQVEsR0FBR3BDLFFBQVEsQ0FBQ21DLE1BQVQsQ0FBZ0JqQyxvQkFBaEIsQ0FBcUNHLEVBQUUsQ0FBQ0MsRUFBSCxDQUFNNEIsUUFBUSxDQUFDbkQsQ0FBZixFQUFrQm1ELFFBQVEsQ0FBQ2pELENBQTNCLENBQXJDLENBQWpCO0FBQ0EsU0FBT21ELFFBQVA7QUFDQTs7QUFFTSxTQUFTQyxtQkFBVCxDQUE2QnJDLFFBQTdCLEVBQXVDQyxVQUF2QyxFQUFtRHFDLE9BQW5ELEVBQW1FO0FBQUEsTUFBaEJBLE9BQWdCO0FBQWhCQSxJQUFBQSxPQUFnQixHQUFOLElBQU07QUFBQTs7QUFDekUsTUFBTUMsVUFBVSxHQUFHdEMsVUFBVSxDQUFDdUMscUJBQVgsRUFBbkI7QUFDQSxNQUFNQyxVQUFVLEdBQUd6QyxRQUFRLENBQUN3QyxxQkFBVCxFQUFuQjtBQUVBLE1BQU1kLEVBQUUsR0FBR2EsVUFBVSxDQUFDWixLQUFYLEdBQW1CYyxVQUFVLENBQUNkLEtBQXpDO0FBQ0EsTUFBTUMsRUFBRSxHQUFHVyxVQUFVLENBQUNWLE1BQVgsR0FBb0JZLFVBQVUsQ0FBQ1osTUFBMUM7O0FBQ0EsTUFBSVMsT0FBSixFQUFhO0FBQ1osV0FBT3pELElBQUksQ0FBQzZCLEdBQUwsQ0FBU2dCLEVBQVQsRUFBYUUsRUFBYixDQUFQO0FBQ0EsR0FGRCxNQUVPO0FBQ04sV0FBTy9DLElBQUksQ0FBQzhCLEdBQUwsQ0FBU2UsRUFBVCxFQUFhRSxFQUFiLENBQVA7QUFDQTtBQUNEIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0UG9zQnlBbmdsZShhbmdsZSwgbGVuKSB7XG5cbiAgY29uc3QgcmFkaWFuID0gYW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xuICBjb25zdCB4ID0gTWF0aC5zaW4ocmFkaWFuKSAqIGxlbjtcbiAgY29uc3QgeSA9IE1hdGguY29zKHJhZGlhbikgKiBsZW47XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmdsZUJ5UG9zKHB4LCBweSwgbXgsIG15KSB7XG5cbiAgY29uc3QgeCA9IE1hdGguYWJzKHB4IC0gbXgpO1xuICBjb25zdCB5ID0gTWF0aC5hYnMocHkgLSBteSk7XG5cbiAgY29uc3QgeiA9IE1hdGguc3FydChNYXRoLnBvdyh4LCAyKSArIE1hdGgucG93KHksIDIpKTtcbiAgY29uc3QgY29zID0geSAvIHo7XG4gIGNvbnN0IHJhZGluYSA9IE1hdGguYWNvcyhjb3MpOyAvLyDnlKjlj43kuInop5Llh73mlbDmsYLlvKfluqZcbiAgbGV0IGFuZ2xlID0gTWF0aC5mbG9vcigxODAgLyAoTWF0aC5QSSAvIHJhZGluYSkgKiAxMDApIC8gMTAwOyAvLyDlsIblvKfluqbovazmjaLmiJDop5LluqZcblxuICBpZiAobXggPiBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5Zub6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgLSBhbmdsZTtcbiAgfVxuICBpZiAobXggPT09IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKh56L206LSf5pa55ZCR5LiKXG4gICAgYW5nbGUgPSAxODA7XG4gIH1cbiAgaWYgKG14ID4gcHggJiYgbXkgPT09IHB5KSB7Ly8g6byg5qCH5ZyoeOi9tOato+aWueWQkeS4ilxuICAgIGFuZ2xlID0gOTA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqOesrOS4ieixoemZkFxuICAgIGFuZ2xlID0gMTgwICsgYW5nbGU7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPT09IHB5KSB7Ly8g6byg5qCH5ZyoeOi9tOi0n+aWueWQkVxuICAgIGFuZ2xlID0gMjcwO1xuICB9XG4gIGlmIChteCA8IHB4ICYmIG15IDwgcHkpIHsvLyDpvKDmoIflnKjnrKzkuozosaHpmZBcbiAgICBhbmdsZSA9IDM2MCAtIGFuZ2xlO1xuICB9XG5cbiAgLy8gY29uc29sZS5sb2coJ2FuZ2xlOiAnLCBhbmdsZSk7XG4gIHJldHVybiBhbmdsZTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhjaGFuZ2VOb2RlUG9zKGJhc2VOb2RlLCB0YXJnZXROb2RlKSB7XG4gIHJldHVybiBiYXNlTm9kZS5jb252ZXJ0VG9Ob2RlU3BhY2VBUih0YXJnZXROb2RlLl9wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKHRhcmdldE5vZGUueCwgdGFyZ2V0Tm9kZS55KSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUmFuZG9tSW50KGEsIGIgPSAwKSB7XG4gIGxldCBtYXggPSBNYXRoLm1heChhLCBiKTtcbiAgbGV0IG1pbiA9IE1hdGgubWluKGEsIGIpO1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikgKyBtaW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tU29ydEJ5QXJyKGFycikge1xuICBjb25zdCBuZXdBcnIgPSBbXTtcbiAgY29uc3QgdG1wQXJyID0gYXJyLmNvbmNhdCgpO1xuICB3aGlsZSAodG1wQXJyLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IodG1wQXJyLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpO1xuICAgIG5ld0Fyci5wdXNoKHRtcEFycltyYW5kb21JbmRleF0pO1xuICAgIHRtcEFyci5zcGxpY2UocmFuZG9tSW5kZXgsIDEpO1xuICB9XG4gIHJldHVybiBuZXdBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTcHJOb2RlTWF4TGVuKHNwck5vZGUsIG1heFcsIG1heEgpIHtcbiAgY29uc3Qgc3ggPSBtYXhXIC8gc3ByTm9kZS53aWR0aDtcbiAgY29uc3Qgc3kgPSBtYXhIIC8gc3ByTm9kZS5oZWlnaHQ7XG4gIGNvbnN0IHMgPSBNYXRoLm1pbihzeCwgc3kpO1xuICBzcHJOb2RlLnNjYWxlID0gTWF0aC5yb3VuZChzICogMTAwMCkgLyAxMDAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxQb3NUb2xvY2FsUG9zKGJhc2VOb2RlLCB0YXJnZXROb2RlKSB7XG5cdGNvbnN0IHdvcmxkUG9zID0gdGFyZ2V0Tm9kZS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGNjLnYyKHRhcmdldE5vZGUueCwgdGFyZ2V0Tm9kZS55KSk7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cbiJdfQ==
//------QC-SOURCE-SPLIT------ //------QC-SOURCE-SPLIT------
(function() { (function() {
......
(function () { (function () {
var scripts = [{"deps":{"./assets/mz_004/script/util":2,"./assets/mz_004/prefab/bgBottom":3,"./assets/mz_004/script/scene":1},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./util":2},"path":"preview-scripts/assets/mz_004/script/scene.js"},{"deps":{},"path":"preview-scripts/assets/mz_004/script/util.js"},{"deps":{"../script/util":2},"path":"preview-scripts/assets/mz_004/prefab/bgBottom.js"}]; var scripts = [{"deps":{"./assets/mz_004/script/util":1,"./assets/mz_004/script/scene":2,"./assets/mz_004/prefab/bgBottom":3},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/mz_004/script/util.js"},{"deps":{"./util":1},"path":"preview-scripts/assets/mz_004/script/scene.js"},{"deps":{"../script/util":1},"path":"preview-scripts/assets/mz_004/prefab/bgBottom.js"}];
var entries = ["preview-scripts/__qc_index__.js"]; var entries = ["preview-scripts/__qc_index__.js"];
var bundleScript = 'preview-scripts/__qc_bundle__.js'; var bundleScript = 'preview-scripts/__qc_bundle__.js';
......
{"version":3,"sources":["assets/mz_004/prefab/bgBottom.js"],"names":["cc","Class","Component","properties","_canTouch","_isTop","_arrowUp","_arrowDown","_pageIndex","_maxPage","_lineMaxCount","_disW","_maxW","onLoad","node","getChildByName","zIndex","_itemLen","Math","floor","start","_initListener","_initItemLayer","_itemLayer","Node","addChild","_initTopBtnListener","_initPageBtnListener","btn","on","moveLen","scaleY","time","targetY","tween","by","y","call","_setTopBtnState","_pageUpBtn","_pageDownBtn","pageUp","_refreshPage","_showBtnAnima","pageDown","to","scale","easing","_setPageBtnState","active","opacity","arrow1","arrow2","delay","_dataArr","setItemData","dataArr","console","log","length","_initPageArr","_pageArr","tmpArr","curLen","i","item","_addOneItem","width","push","data","height","_addItemPic","pic_url","_addItemLabel","text","_addItemAudio","audio_url","url","imgLen","assetManager","loadRemote","err","texture","sprNode","sf","SpriteFrame","addComponent","Sprite","spriteFrame","_labelFont","labelNode","color","Color","BLACK","label","Label","string","fontSize","verticalAlign","VerticalAlign","CENTER","fontLabel","getComponent","font","_forceUpdateRenderData","audioClip","_addItemListener","Button","audioEngine","stopAll","play","removeAllChildren","disW","startIndex","showArr","baseX","_getCurPageBaseX","baseY","forEach","el","x","arr"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\nimport {loadImage, setSprNodeMaxLen} from \"../script/util\";\n\ncc.Class({\n\textends: cc.Component,\n\n\tproperties: {},\n\n\t// LIFE-CYCLE CALLBACKS:\n\n\t_canTouch: null,\n\t_isTop: null,\n\t_arrowUp: null,\n\t_arrowDown: null,\n\t_pageIndex: null,\n\t_maxPage: null,\n\t_lineMaxCount: null,\n\t_disW: null,\n\t_maxW: null,\n\tonLoad() {\n\t\tthis._canTouch = true;\n\t\tthis._isTop = false;\n\n\t\tthis._arrowUp = this.node.getChildByName('arrowUp');\n\t\tthis._arrowDown = this.node.getChildByName('arrowDown');\n\n\t\tthis.node.zIndex = 10;\n\t\tthis._itemLen = 75;\n\t\tthis._pageIndex = 0;\n\t\tthis._maxPage = 0;\n\n\t\tthis._disW = 5;\n\t\tthis._maxW = 1280 - 90;\n\t\tthis._lineMaxCount = Math.floor(this._maxW / (this._disW + this._itemLen));\n\n\t},\n\n\tstart() {\n\n\t\tthis._initListener();\n\t\tthis._initItemLayer();\n\t},\n\n\t_itemLayer: null,\n\t_initItemLayer() {\n\t\tthis._itemLayer = new cc.Node();\n\t\tthis.node.addChild(this._itemLayer);\n\t},\n\n\t_initListener() {\n\n\t\tthis._initTopBtnListener();\n\t\tthis._initPageBtnListener();\n\t},\n\n\t_initTopBtnListener() {\n\t\tconst btn = this.node.getChildByName('btn');\n\t\tbtn.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._canTouch = false;\n\n\t\t\tconst moveLen = 80 * this.node.scaleY;\n\t\t\tconst time = 0.5;\n\n\t\t\tlet targetY = moveLen;\n\t\t\tif (this._isTop) {\n\t\t\t\ttargetY = -moveLen;\n\t\t\t}\n\t\t\tcc.tween(this.node)\n\t\t\t\t.by(time, {y: targetY})\n\t\t\t\t.call(() => {\n\t\t\t\t\tthis._canTouch = true;\n\t\t\t\t})\n\t\t\t\t.start()\n\n\t\t\tthis._setTopBtnState(time);\n\t\t\tthis._isTop = !this._isTop;\n\n\t\t});\n\t},\n\n\t_pageUpBtn: null,\n\t_pageDownBtn: null,\n\t_initPageBtnListener() {\n\t\tconst pageUp = this.node.getChildByName('pageUp');\n\t\tpageUp.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this._pageIndex <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._pageIndex--;\n\t\t\tthis._refreshPage();\n\t\t\tthis._showBtnAnima(pageUp);\n\t\t});\n\t\tthis._pageUpBtn = pageUp;\n\n\n\t\tconst pageDown = this.node.getChildByName('pageDown');\n\t\tpageDown.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this._pageIndex >= this._maxPage - 1) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._pageIndex++;\n\t\t\tthis._refreshPage();\n\t\t\tthis._showBtnAnima(pageDown);\n\t\t});\n\t\tthis._pageDownBtn = pageDown;\n\n\t},\n\n\t_showBtnAnima(btn) {\n\t\tcc.tween(btn)\n\t\t\t.to(0.08, {scale: 1.3}, {easing: 'sineOut'})\n\t\t\t.to(0.08, {scale: 1}, {easing: 'sineOut'})\n\t\t\t.start();\n\t},\n\n\t_setPageBtnState() {\n\t\tif (this._maxPage == 0) {\n\t\t\tthis._pageUpBtn.active = this._pageDownBtn.active = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._pageIndex == 0) {\n\t\t\tthis._pageUpBtn.opacity = 100;\n\t\t} else {\n\t\t\tthis._pageUpBtn.opacity = 255;\n\t\t}\n\n\t\tif (this._pageIndex == this._maxPage - 1) {\n\t\t\tthis._pageDownBtn.opacity = 100;\n\t\t} else {\n\t\t\tthis._pageDownBtn.opacity = 255;\n\t\t}\n\t},\n\n\t_setTopBtnState(time) {\n\n\t\tlet arrow1, arrow2;\n\t\tif (this._isTop) {\n\t\t\tarrow1 = this._arrowDown;\n\t\t\tarrow2 = this._arrowUp;\n\t\t} else {\n\t\t\tarrow1 = this._arrowUp;\n\t\t\tarrow2 = this._arrowDown;\n\t\t}\n\n\t\tarrow1.scale = 1;\n\t\tarrow2.scale = 0;\n\n\t\tcc.tween(arrow1)\n\t\t\t.to(time / 2, { scale: 0 }, {easing: 'cubicOut'})\n\t\t\t.start()\n\n\t\tcc.tween(arrow2)\n\t\t\t.delay(time / 2)\n\t\t\t.to(time / 2, {scale: 1}, {easing: 'cubicOut'})\n\t\t\t.start();\n\n\n\t},\n\n\n\t_dataArr: null,\n\tsetItemData(dataArr) {\n\n\t\tconsole.log(' in setItemData', dataArr);\n\n\t\tif (!dataArr || dataArr.length == 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._dataArr = dataArr;\n\t\t// this._maxPage = Math.ceil(dataArr.length / this._lineMaxCount) - 1;\n\n\t\tthis._initPageArr();\n\n\t\tthis._pageIndex = 0;\n\t\tthis._refreshPage();\n\t},\n\n\t_pageArr: null,\n\t_initPageArr() {\n\n\t\tlet tmpArr = [];\n\t\tthis._pageArr = [tmpArr];\n\t\tlet curLen = this._disW;\n\t\tfor (let i=0; i<this._dataArr.length; i++) {\n\n\t\t\tconst item = this._addOneItem(this._dataArr[i]);\n\t\t\tcurLen += item.width + this._disW;\n\t\t\tif (curLen > this._maxW) {\n\t\t\t\ttmpArr = [item];\n\t\t\t\tthis._pageArr.push(tmpArr);\n\t\t\t} else {\n\t\t\t\ttmpArr.push(item);\n\t\t\t}\n\t\t}\n\t\tthis._maxPage = this._pageArr.length;\n\t\tconsole.log('this._maxPage: ', this._maxPage);\n\t},\n\n\n\t_itemLen: null,\n\t_addOneItem(data) {\n\n\t\tconst item = new cc.Node();\n\t\titem.width = this._itemLen;\n\t\titem.height = this._itemLen;\n\t\t// const rect = item.addComponent(cc.Graphics);\n\t\t// rect.fillColor = cc.Color.BLACK.setA(100);\n\t\t// rect.fillRect(-this._itemLen / 2, -this._itemLen / 2, this._itemLen, this._itemLen);\n\t\t// rect.fill();\n\n\t\tthis._addItemPic(item, data.pic_url);\n\t\tthis._addItemLabel(item, data.text);\n\t\tthis._addItemAudio(item, data.audio_url);\n\n\t\titem.data = data;\n\t\treturn item;\n\t},\n\n\t_addItemPic(item, url) {\n\t\tif (!url) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imgLen = this._itemLen * 0.8;\n\t\tcc.assetManager.loadRemote(url, (err, texture) => {\n\n\t\t\tconst sprNode = new cc.Node();\n\t\t\titem.addChild(sprNode);\n\t\t\tsprNode.width = texture.width;\n\t\t\tsprNode.height = texture.height;\n\t\t\tsprNode.y = (this._itemLen - imgLen) / 2;\n\t\t\tsetSprNodeMaxLen(sprNode, imgLen, imgLen);\n\n\t\t\tconst sf = new cc.SpriteFrame(texture);\n\t\t\tsprNode.addComponent(cc.Sprite).spriteFrame = sf;\n\t\t});\n\t},\n\n\t_labelFont: null,\n\t_addItemLabel(item, text) {\n\t\tif (!text) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst labelNode = new cc.Node();\n\t\tlabelNode.color = cc.Color.BLACK;\n\n\t\tconst label = labelNode.addComponent(cc.Label);\n\t\tlabel.string = text;\n\t\t// label.string ='ltg + ';\n\t\titem.addChild(labelNode);\n\t\tlabelNode.y = -this._itemLen * 0.4;\n\t\tlabel.fontSize = 16;\n\t\tlabel.verticalAlign = cc.Label.VerticalAlign.CENTER;\n\n\t\tif (!this._labelFont) {\n\n\t\t\tconst fontLabel = this.node.getChildByName('font').getComponent(cc.Label);\n\t\t\tthis._labelFont = fontLabel.font;\n\t\t}\n\n\t\tlabel.font = this._labelFont;\n\t\tlabel._forceUpdateRenderData(true)\n\t\tif (labelNode.width > this._itemLen) {\n\t\t\titem.width = labelNode.width;\n\t\t}\n\n\t},\n\n\t_addItemAudio(item, url) {\n\t\tif (!url) {\n\t\t\treturn;\n\t\t}\n\n\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\titem.audioClip = audioClip;\n\t\t\tthis._addItemListener(item);\n\t\t});\n\t},\n\n\t_addItemListener(item) {\n\t\titem.addComponent(cc.Button);\n\t\titem.on('click', () => {\n\t\t\tif (item.audioClip) {\n\t\t\t\tcc.audioEngine.stopAll();\n\t\t\t\tcc.audioEngine.play(item.audioClip, false, 0.5);\n\t\t\t}\n\t\t});\n\t},\n\n\t_refreshPage() {\n\n\t\tthis._itemLayer.removeAllChildren();\n\n\t\tconst dataArr = this._dataArr;\n\t\tconst disW = this._disW;\n\t\tconst startIndex = this._pageIndex * this._lineMaxCount;\n\n\t\t// const showArr = dataArr.slice(startIndex, startIndex + this._lineMaxCount);\n\t\tconst showArr = this._pageArr[this._pageIndex];\n\t\tlet baseX = this._getCurPageBaseX();\n\n\n\t\t// const baseX = -(disW + this._itemLen) * (showArr.length - 1) / 2;\n\t\tconst baseY = -25;\n\n\t\tshowArr.forEach((el, i) => {\n\t\t\tconst item = this._addOneItem(el.data);\n\t\t\tthis._itemLayer.addChild(item);\n\t\t\titem.x = baseX + (disW + item.width) / 2\n\t\t\titem.y = baseY;\n\n\t\t\tbaseX = item.x + (disW + item.width) / 2;\n\t\t});\n\n\t\tthis._setPageBtnState();\n\n\t},\n\n\t_getCurPageBaseX() {\n\t\tconst arr = this._pageArr[this._pageIndex];\n\t\tconsole.log('arr: ', arr);\n\t\tlet curLen = this._disW;\n\t\tfor (let i=0; i<arr.length; i++) {\n\t\t\tcurLen += (arr[i].width + this._disW)\n\t\t}\n\t\treturn -curLen / 2;\n\t},\n\t// update (dt) {},\n});\n"]} {"version":3,"sources":["assets/mz_004/prefab/bgBottom.js"],"names":["cc","Class","Component","properties","_canTouch","_isTop","_arrowUp","_arrowDown","_pageIndex","_maxPage","_lineMaxCount","_disW","_maxW","onLoad","node","getChildByName","zIndex","_itemLen","Math","floor","start","_initListener","_initItemLayer","_itemLayer","Node","addChild","_initTopBtnListener","_initPageBtnListener","btn","on","moveLen","scaleY","time","targetY","tween","by","y","call","_setTopBtnState","_pageUpBtn","_pageDownBtn","pageUp","_refreshPage","_showBtnAnima","pageDown","to","scale","easing","_setPageBtnState","active","opacity","arrow1","arrow2","delay","_dataArr","setItemData","dataArr","console","log","length","_initPageArr","_pageArr","tmpArr","curLen","i","item","_addOneItem","width","push","data","height","_addItemPic","pic_url","_addItemLabel","text","_addItemAudio","audio_url","url","imgLen","assetManager","loadRemote","err","texture","sprNode","sf","SpriteFrame","addComponent","Sprite","spriteFrame","_labelFont","labelNode","color","Color","BLACK","label","Label","string","fontSize","verticalAlign","VerticalAlign","CENTER","fontLabel","getComponent","font","_forceUpdateRenderData","audioClip","_addItemListener","Button","audioEngine","stopAllEffects","playEffect","removeAllChildren","disW","startIndex","showArr","baseX","_getCurPageBaseX","baseY","forEach","el","x","arr"],"mappings":";;;;;;AAOA;;AAPA;AACA;AACA;AACA;AACA;AACA;AAIAA,EAAE,CAACC,KAAH,CAAS;AACR,aAASD,EAAE,CAACE,SADJ;AAGRC,EAAAA,UAAU,EAAE,EAHJ;AAKR;AAEAC,EAAAA,SAAS,EAAE,IAPH;AAQRC,EAAAA,MAAM,EAAE,IARA;AASRC,EAAAA,QAAQ,EAAE,IATF;AAURC,EAAAA,UAAU,EAAE,IAVJ;AAWRC,EAAAA,UAAU,EAAE,IAXJ;AAYRC,EAAAA,QAAQ,EAAE,IAZF;AAaRC,EAAAA,aAAa,EAAE,IAbP;AAcRC,EAAAA,KAAK,EAAE,IAdC;AAeRC,EAAAA,KAAK,EAAE,IAfC;AAgBRC,EAAAA,MAhBQ,oBAgBC;AACR,SAAKT,SAAL,GAAiB,IAAjB;AACA,SAAKC,MAAL,GAAc,KAAd;AAEA,SAAKC,QAAL,GAAgB,KAAKQ,IAAL,CAAUC,cAAV,CAAyB,SAAzB,CAAhB;AACA,SAAKR,UAAL,GAAkB,KAAKO,IAAL,CAAUC,cAAV,CAAyB,WAAzB,CAAlB;AAEA,SAAKD,IAAL,CAAUE,MAAV,GAAmB,EAAnB;AACA,SAAKC,QAAL,GAAgB,EAAhB;AACA,SAAKT,UAAL,GAAkB,CAAlB;AACA,SAAKC,QAAL,GAAgB,CAAhB;AAEA,SAAKE,KAAL,GAAa,CAAb;AACA,SAAKC,KAAL,GAAa,OAAO,EAApB;AACA,SAAKF,aAAL,GAAqBQ,IAAI,CAACC,KAAL,CAAW,KAAKP,KAAL,IAAc,KAAKD,KAAL,GAAa,KAAKM,QAAhC,CAAX,CAArB;AAEA,GAhCO;AAkCRG,EAAAA,KAlCQ,mBAkCA;AAEP,SAAKC,aAAL;;AACA,SAAKC,cAAL;AACA,GAtCO;AAwCRC,EAAAA,UAAU,EAAE,IAxCJ;AAyCRD,EAAAA,cAzCQ,4BAyCS;AAChB,SAAKC,UAAL,GAAkB,IAAIvB,EAAE,CAACwB,IAAP,EAAlB;AACA,SAAKV,IAAL,CAAUW,QAAV,CAAmB,KAAKF,UAAxB;AACA,GA5CO;AA8CRF,EAAAA,aA9CQ,2BA8CQ;AAEf,SAAKK,mBAAL;;AACA,SAAKC,oBAAL;AACA,GAlDO;AAoDRD,EAAAA,mBApDQ,iCAoDc;AAAA;;AACrB,QAAME,GAAG,GAAG,KAAKd,IAAL,CAAUC,cAAV,CAAyB,KAAzB,CAAZ;AACAa,IAAAA,GAAG,CAACC,EAAJ,CAAO,OAAP,EAAgB,YAAM;AACrB,UAAI,CAAC,KAAI,CAACzB,SAAV,EAAqB;AACpB;AACA;;AAED,MAAA,KAAI,CAACA,SAAL,GAAiB,KAAjB;AAEA,UAAM0B,OAAO,GAAG,KAAK,KAAI,CAAChB,IAAL,CAAUiB,MAA/B;AACA,UAAMC,IAAI,GAAG,GAAb;AAEA,UAAIC,OAAO,GAAGH,OAAd;;AACA,UAAI,KAAI,CAACzB,MAAT,EAAiB;AAChB4B,QAAAA,OAAO,GAAG,CAACH,OAAX;AACA;;AACD9B,MAAAA,EAAE,CAACkC,KAAH,CAAS,KAAI,CAACpB,IAAd,EACEqB,EADF,CACKH,IADL,EACW;AAACI,QAAAA,CAAC,EAAEH;AAAJ,OADX,EAEEI,IAFF,CAEO,YAAM;AACX,QAAA,KAAI,CAACjC,SAAL,GAAiB,IAAjB;AACA,OAJF,EAKEgB,KALF;;AAOA,MAAA,KAAI,CAACkB,eAAL,CAAqBN,IAArB;;AACA,MAAA,KAAI,CAAC3B,MAAL,GAAc,CAAC,KAAI,CAACA,MAApB;AAEA,KAxBD;AAyBA,GA/EO;AAiFRkC,EAAAA,UAAU,EAAE,IAjFJ;AAkFRC,EAAAA,YAAY,EAAE,IAlFN;AAmFRb,EAAAA,oBAnFQ,kCAmFe;AAAA;;AACtB,QAAMc,MAAM,GAAG,KAAK3B,IAAL,CAAUC,cAAV,CAAyB,QAAzB,CAAf;AACA0B,IAAAA,MAAM,CAACZ,EAAP,CAAU,OAAV,EAAmB,YAAM;AACxB,UAAI,CAAC,MAAI,CAACzB,SAAV,EAAqB;AACpB;AACA;;AAED,UAAI,MAAI,CAACI,UAAL,IAAmB,CAAvB,EAA0B;AACzB;AACA;;AACD,MAAA,MAAI,CAACA,UAAL;;AACA,MAAA,MAAI,CAACkC,YAAL;;AACA,MAAA,MAAI,CAACC,aAAL,CAAmBF,MAAnB;AACA,KAXD;AAYA,SAAKF,UAAL,GAAkBE,MAAlB;AAGA,QAAMG,QAAQ,GAAG,KAAK9B,IAAL,CAAUC,cAAV,CAAyB,UAAzB,CAAjB;AACA6B,IAAAA,QAAQ,CAACf,EAAT,CAAY,OAAZ,EAAqB,YAAM;AAC1B,UAAI,CAAC,MAAI,CAACzB,SAAV,EAAqB;AACpB;AACA;;AAED,UAAI,MAAI,CAACI,UAAL,IAAmB,MAAI,CAACC,QAAL,GAAgB,CAAvC,EAA0C;AACzC;AACA;;AACD,MAAA,MAAI,CAACD,UAAL;;AACA,MAAA,MAAI,CAACkC,YAAL;;AACA,MAAA,MAAI,CAACC,aAAL,CAAmBC,QAAnB;AACA,KAXD;AAYA,SAAKJ,YAAL,GAAoBI,QAApB;AAEA,GAnHO;AAqHRD,EAAAA,aArHQ,yBAqHMf,GArHN,EAqHW;AAClB5B,IAAAA,EAAE,CAACkC,KAAH,CAASN,GAAT,EACEiB,EADF,CACK,IADL,EACW;AAACC,MAAAA,KAAK,EAAE;AAAR,KADX,EACyB;AAACC,MAAAA,MAAM,EAAE;AAAT,KADzB,EAEEF,EAFF,CAEK,IAFL,EAEW;AAACC,MAAAA,KAAK,EAAE;AAAR,KAFX,EAEuB;AAACC,MAAAA,MAAM,EAAE;AAAT,KAFvB,EAGE3B,KAHF;AAIA,GA1HO;AA4HR4B,EAAAA,gBA5HQ,8BA4HW;AAClB,QAAI,KAAKvC,QAAL,IAAiB,CAArB,EAAwB;AACvB,WAAK8B,UAAL,CAAgBU,MAAhB,GAAyB,KAAKT,YAAL,CAAkBS,MAAlB,GAA2B,KAApD;AACA;AACA;;AAED,QAAI,KAAKzC,UAAL,IAAmB,CAAvB,EAA0B;AACzB,WAAK+B,UAAL,CAAgBW,OAAhB,GAA0B,GAA1B;AACA,KAFD,MAEO;AACN,WAAKX,UAAL,CAAgBW,OAAhB,GAA0B,GAA1B;AACA;;AAED,QAAI,KAAK1C,UAAL,IAAmB,KAAKC,QAAL,GAAgB,CAAvC,EAA0C;AACzC,WAAK+B,YAAL,CAAkBU,OAAlB,GAA4B,GAA5B;AACA,KAFD,MAEO;AACN,WAAKV,YAAL,CAAkBU,OAAlB,GAA4B,GAA5B;AACA;AACD,GA7IO;AA+IRZ,EAAAA,eA/IQ,2BA+IQN,IA/IR,EA+Ic;AAErB,QAAImB,MAAJ,EAAYC,MAAZ;;AACA,QAAI,KAAK/C,MAAT,EAAiB;AAChB8C,MAAAA,MAAM,GAAG,KAAK5C,UAAd;AACA6C,MAAAA,MAAM,GAAG,KAAK9C,QAAd;AACA,KAHD,MAGO;AACN6C,MAAAA,MAAM,GAAG,KAAK7C,QAAd;AACA8C,MAAAA,MAAM,GAAG,KAAK7C,UAAd;AACA;;AAED4C,IAAAA,MAAM,CAACL,KAAP,GAAe,CAAf;AACAM,IAAAA,MAAM,CAACN,KAAP,GAAe,CAAf;AAEA9C,IAAAA,EAAE,CAACkC,KAAH,CAASiB,MAAT,EACEN,EADF,CACKb,IAAI,GAAG,CADZ,EACe;AAAEc,MAAAA,KAAK,EAAE;AAAT,KADf,EAC6B;AAACC,MAAAA,MAAM,EAAE;AAAT,KAD7B,EAEE3B,KAFF;AAIApB,IAAAA,EAAE,CAACkC,KAAH,CAASkB,MAAT,EACEC,KADF,CACQrB,IAAI,GAAG,CADf,EAEEa,EAFF,CAEKb,IAAI,GAAG,CAFZ,EAEe;AAACc,MAAAA,KAAK,EAAE;AAAR,KAFf,EAE2B;AAACC,MAAAA,MAAM,EAAE;AAAT,KAF3B,EAGE3B,KAHF;AAMA,GAvKO;AA0KRkC,EAAAA,QAAQ,EAAE,IA1KF;AA2KRC,EAAAA,WA3KQ,uBA2KIC,OA3KJ,EA2Ka;AAEpBC,IAAAA,OAAO,CAACC,GAAR,CAAY,iBAAZ,EAA+BF,OAA/B;;AAEA,QAAI,CAACA,OAAD,IAAYA,OAAO,CAACG,MAAR,IAAkB,CAAlC,EAAqC;AACpC;AACA;;AACD,SAAKL,QAAL,GAAgBE,OAAhB,CAPoB,CAQpB;;AAEA,SAAKI,YAAL;;AAEA,SAAKpD,UAAL,GAAkB,CAAlB;;AACA,SAAKkC,YAAL;AACA,GAzLO;AA2LRmB,EAAAA,QAAQ,EAAE,IA3LF;AA4LRD,EAAAA,YA5LQ,0BA4LO;AAEd,QAAIE,MAAM,GAAG,EAAb;AACA,SAAKD,QAAL,GAAgB,CAACC,MAAD,CAAhB;AACA,QAAIC,MAAM,GAAG,KAAKpD,KAAlB;;AACA,SAAK,IAAIqD,CAAC,GAAC,CAAX,EAAcA,CAAC,GAAC,KAAKV,QAAL,CAAcK,MAA9B,EAAsCK,CAAC,EAAvC,EAA2C;AAE1C,UAAMC,IAAI,GAAG,KAAKC,WAAL,CAAiB,KAAKZ,QAAL,CAAcU,CAAd,CAAjB,CAAb;;AACAD,MAAAA,MAAM,IAAIE,IAAI,CAACE,KAAL,GAAa,KAAKxD,KAA5B;;AACA,UAAIoD,MAAM,GAAG,KAAKnD,KAAlB,EAAyB;AACxBkD,QAAAA,MAAM,GAAG,CAACG,IAAD,CAAT;;AACA,aAAKJ,QAAL,CAAcO,IAAd,CAAmBN,MAAnB;AACA,OAHD,MAGO;AACNA,QAAAA,MAAM,CAACM,IAAP,CAAYH,IAAZ;AACA;AACD;;AACD,SAAKxD,QAAL,GAAgB,KAAKoD,QAAL,CAAcF,MAA9B;AACAF,IAAAA,OAAO,CAACC,GAAR,CAAY,iBAAZ,EAA+B,KAAKjD,QAApC;AACA,GA9MO;AAiNRQ,EAAAA,QAAQ,EAAE,IAjNF;AAkNRiD,EAAAA,WAlNQ,uBAkNIG,IAlNJ,EAkNU;AAEjB,QAAMJ,IAAI,GAAG,IAAIjE,EAAE,CAACwB,IAAP,EAAb;AACAyC,IAAAA,IAAI,CAACE,KAAL,GAAa,KAAKlD,QAAlB;AACAgD,IAAAA,IAAI,CAACK,MAAL,GAAc,KAAKrD,QAAnB,CAJiB,CAKjB;AACA;AACA;AACA;;AAEA,SAAKsD,WAAL,CAAiBN,IAAjB,EAAuBI,IAAI,CAACG,OAA5B;;AACA,SAAKC,aAAL,CAAmBR,IAAnB,EAAyBI,IAAI,CAACK,IAA9B;;AACA,SAAKC,aAAL,CAAmBV,IAAnB,EAAyBI,IAAI,CAACO,SAA9B;;AAEAX,IAAAA,IAAI,CAACI,IAAL,GAAYA,IAAZ;AACA,WAAOJ,IAAP;AACA,GAlOO;AAoORM,EAAAA,WApOQ,uBAoOIN,IApOJ,EAoOUY,GApOV,EAoOe;AAAA;;AACtB,QAAI,CAACA,GAAL,EAAU;AACT;AACA;;AAED,QAAMC,MAAM,GAAG,KAAK7D,QAAL,GAAgB,GAA/B;AACAjB,IAAAA,EAAE,CAAC+E,YAAH,CAAgBC,UAAhB,CAA2BH,GAA3B,EAAgC,UAACI,GAAD,EAAMC,OAAN,EAAkB;AAEjD,UAAMC,OAAO,GAAG,IAAInF,EAAE,CAACwB,IAAP,EAAhB;AACAyC,MAAAA,IAAI,CAACxC,QAAL,CAAc0D,OAAd;AACAA,MAAAA,OAAO,CAAChB,KAAR,GAAgBe,OAAO,CAACf,KAAxB;AACAgB,MAAAA,OAAO,CAACb,MAAR,GAAiBY,OAAO,CAACZ,MAAzB;AACAa,MAAAA,OAAO,CAAC/C,CAAR,GAAY,CAAC,MAAI,CAACnB,QAAL,GAAgB6D,MAAjB,IAA2B,CAAvC;AACA,kCAAiBK,OAAjB,EAA0BL,MAA1B,EAAkCA,MAAlC;AAEA,UAAMM,EAAE,GAAG,IAAIpF,EAAE,CAACqF,WAAP,CAAmBH,OAAnB,CAAX;AACAC,MAAAA,OAAO,CAACG,YAAR,CAAqBtF,EAAE,CAACuF,MAAxB,EAAgCC,WAAhC,GAA8CJ,EAA9C;AACA,KAXD;AAYA,GAtPO;AAwPRK,EAAAA,UAAU,EAAE,IAxPJ;AAyPRhB,EAAAA,aAzPQ,yBAyPMR,IAzPN,EAyPYS,IAzPZ,EAyPkB;AACzB,QAAI,CAACA,IAAL,EAAW;AACV;AACA;;AAED,QAAMgB,SAAS,GAAG,IAAI1F,EAAE,CAACwB,IAAP,EAAlB;AACAkE,IAAAA,SAAS,CAACC,KAAV,GAAkB3F,EAAE,CAAC4F,KAAH,CAASC,KAA3B;AAEA,QAAMC,KAAK,GAAGJ,SAAS,CAACJ,YAAV,CAAuBtF,EAAE,CAAC+F,KAA1B,CAAd;AACAD,IAAAA,KAAK,CAACE,MAAN,GAAetB,IAAf,CATyB,CAUzB;;AACAT,IAAAA,IAAI,CAACxC,QAAL,CAAciE,SAAd;AACAA,IAAAA,SAAS,CAACtD,CAAV,GAAc,CAAC,KAAKnB,QAAN,GAAiB,GAA/B;AACA6E,IAAAA,KAAK,CAACG,QAAN,GAAiB,EAAjB;AACAH,IAAAA,KAAK,CAACI,aAAN,GAAsBlG,EAAE,CAAC+F,KAAH,CAASI,aAAT,CAAuBC,MAA7C;;AAEA,QAAI,CAAC,KAAKX,UAAV,EAAsB;AAErB,UAAMY,SAAS,GAAG,KAAKvF,IAAL,CAAUC,cAAV,CAAyB,MAAzB,EAAiCuF,YAAjC,CAA8CtG,EAAE,CAAC+F,KAAjD,CAAlB;AACA,WAAKN,UAAL,GAAkBY,SAAS,CAACE,IAA5B;AACA;;AAEDT,IAAAA,KAAK,CAACS,IAAN,GAAa,KAAKd,UAAlB;;AACAK,IAAAA,KAAK,CAACU,sBAAN,CAA6B,IAA7B;;AACA,QAAId,SAAS,CAACvB,KAAV,GAAkB,KAAKlD,QAA3B,EAAqC;AACpCgD,MAAAA,IAAI,CAACE,KAAL,GAAauB,SAAS,CAACvB,KAAvB;AACA;AAED,GArRO;AAuRRQ,EAAAA,aAvRQ,yBAuRMV,IAvRN,EAuRYY,GAvRZ,EAuRiB;AAAA;;AACxB,QAAI,CAACA,GAAL,EAAU;AACT;AACA;;AAED7E,IAAAA,EAAE,CAAC+E,YAAH,CAAgBC,UAAhB,CAA2BH,GAA3B,EAAgC,UAACI,GAAD,EAAMwB,SAAN,EAAoB;AACnDxC,MAAAA,IAAI,CAACwC,SAAL,GAAiBA,SAAjB;;AACA,MAAA,MAAI,CAACC,gBAAL,CAAsBzC,IAAtB;AACA,KAHD;AAIA,GAhSO;AAkSRyC,EAAAA,gBAlSQ,4BAkSSzC,IAlST,EAkSe;AACtBA,IAAAA,IAAI,CAACqB,YAAL,CAAkBtF,EAAE,CAAC2G,MAArB;AACA1C,IAAAA,IAAI,CAACpC,EAAL,CAAQ,OAAR,EAAiB,YAAM;AACtB,UAAIoC,IAAI,CAACwC,SAAT,EAAoB;AACnBzG,QAAAA,EAAE,CAAC4G,WAAH,CAAeC,cAAf;AACA7G,QAAAA,EAAE,CAAC4G,WAAH,CAAeE,UAAf,CAA0B7C,IAAI,CAACwC,SAA/B,EAA0C,KAA1C,EAAiD,GAAjD;AACA;AACD,KALD;AAMA,GA1SO;AA4SR/D,EAAAA,YA5SQ,0BA4SO;AAAA;;AAEd,SAAKnB,UAAL,CAAgBwF,iBAAhB;;AAEA,QAAMvD,OAAO,GAAG,KAAKF,QAArB;AACA,QAAM0D,IAAI,GAAG,KAAKrG,KAAlB;AACA,QAAMsG,UAAU,GAAG,KAAKzG,UAAL,GAAkB,KAAKE,aAA1C,CANc,CAQd;;AACA,QAAMwG,OAAO,GAAG,KAAKrD,QAAL,CAAc,KAAKrD,UAAnB,CAAhB;;AACA,QAAI2G,KAAK,GAAG,KAAKC,gBAAL,EAAZ,CAVc,CAad;;;AACA,QAAMC,KAAK,GAAG,CAAC,EAAf;AAEAH,IAAAA,OAAO,CAACI,OAAR,CAAgB,UAACC,EAAD,EAAKvD,CAAL,EAAW;AAC1B,UAAMC,IAAI,GAAG,MAAI,CAACC,WAAL,CAAiBqD,EAAE,CAAClD,IAApB,CAAb;;AACA,MAAA,MAAI,CAAC9C,UAAL,CAAgBE,QAAhB,CAAyBwC,IAAzB;;AACAA,MAAAA,IAAI,CAACuD,CAAL,GAASL,KAAK,GAAG,CAACH,IAAI,GAAG/C,IAAI,CAACE,KAAb,IAAsB,CAAvC;AACAF,MAAAA,IAAI,CAAC7B,CAAL,GAASiF,KAAT;AAEAF,MAAAA,KAAK,GAAGlD,IAAI,CAACuD,CAAL,GAAS,CAACR,IAAI,GAAG/C,IAAI,CAACE,KAAb,IAAsB,CAAvC;AACA,KAPD;;AASA,SAAKnB,gBAAL;AAEA,GAvUO;AAyURoE,EAAAA,gBAzUQ,8BAyUW;AAClB,QAAMK,GAAG,GAAG,KAAK5D,QAAL,CAAc,KAAKrD,UAAnB,CAAZ;AACAiD,IAAAA,OAAO,CAACC,GAAR,CAAY,OAAZ,EAAqB+D,GAArB;AACA,QAAI1D,MAAM,GAAG,KAAKpD,KAAlB;;AACA,SAAK,IAAIqD,CAAC,GAAC,CAAX,EAAcA,CAAC,GAACyD,GAAG,CAAC9D,MAApB,EAA4BK,CAAC,EAA7B,EAAiC;AAChCD,MAAAA,MAAM,IAAK0D,GAAG,CAACzD,CAAD,CAAH,CAAOG,KAAP,GAAe,KAAKxD,KAA/B;AACA;;AACD,WAAO,CAACoD,MAAD,GAAU,CAAjB;AACA,GAjVO,CAkVR;;AAlVQ,CAAT","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\nimport {loadImage, setSprNodeMaxLen} from \"../script/util\";\n\ncc.Class({\n\textends: cc.Component,\n\n\tproperties: {},\n\n\t// LIFE-CYCLE CALLBACKS:\n\n\t_canTouch: null,\n\t_isTop: null,\n\t_arrowUp: null,\n\t_arrowDown: null,\n\t_pageIndex: null,\n\t_maxPage: null,\n\t_lineMaxCount: null,\n\t_disW: null,\n\t_maxW: null,\n\tonLoad() {\n\t\tthis._canTouch = true;\n\t\tthis._isTop = false;\n\n\t\tthis._arrowUp = this.node.getChildByName('arrowUp');\n\t\tthis._arrowDown = this.node.getChildByName('arrowDown');\n\n\t\tthis.node.zIndex = 10;\n\t\tthis._itemLen = 75;\n\t\tthis._pageIndex = 0;\n\t\tthis._maxPage = 0;\n\n\t\tthis._disW = 5;\n\t\tthis._maxW = 1280 - 90;\n\t\tthis._lineMaxCount = Math.floor(this._maxW / (this._disW + this._itemLen));\n\n\t},\n\n\tstart() {\n\n\t\tthis._initListener();\n\t\tthis._initItemLayer();\n\t},\n\n\t_itemLayer: null,\n\t_initItemLayer() {\n\t\tthis._itemLayer = new cc.Node();\n\t\tthis.node.addChild(this._itemLayer);\n\t},\n\n\t_initListener() {\n\n\t\tthis._initTopBtnListener();\n\t\tthis._initPageBtnListener();\n\t},\n\n\t_initTopBtnListener() {\n\t\tconst btn = this.node.getChildByName('btn');\n\t\tbtn.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._canTouch = false;\n\n\t\t\tconst moveLen = 80 * this.node.scaleY;\n\t\t\tconst time = 0.5;\n\n\t\t\tlet targetY = moveLen;\n\t\t\tif (this._isTop) {\n\t\t\t\ttargetY = -moveLen;\n\t\t\t}\n\t\t\tcc.tween(this.node)\n\t\t\t\t.by(time, {y: targetY})\n\t\t\t\t.call(() => {\n\t\t\t\t\tthis._canTouch = true;\n\t\t\t\t})\n\t\t\t\t.start()\n\n\t\t\tthis._setTopBtnState(time);\n\t\t\tthis._isTop = !this._isTop;\n\n\t\t});\n\t},\n\n\t_pageUpBtn: null,\n\t_pageDownBtn: null,\n\t_initPageBtnListener() {\n\t\tconst pageUp = this.node.getChildByName('pageUp');\n\t\tpageUp.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this._pageIndex <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._pageIndex--;\n\t\t\tthis._refreshPage();\n\t\t\tthis._showBtnAnima(pageUp);\n\t\t});\n\t\tthis._pageUpBtn = pageUp;\n\n\n\t\tconst pageDown = this.node.getChildByName('pageDown');\n\t\tpageDown.on('click', () => {\n\t\t\tif (!this._canTouch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this._pageIndex >= this._maxPage - 1) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._pageIndex++;\n\t\t\tthis._refreshPage();\n\t\t\tthis._showBtnAnima(pageDown);\n\t\t});\n\t\tthis._pageDownBtn = pageDown;\n\n\t},\n\n\t_showBtnAnima(btn) {\n\t\tcc.tween(btn)\n\t\t\t.to(0.08, {scale: 1.3}, {easing: 'sineOut'})\n\t\t\t.to(0.08, {scale: 1}, {easing: 'sineOut'})\n\t\t\t.start();\n\t},\n\n\t_setPageBtnState() {\n\t\tif (this._maxPage == 0) {\n\t\t\tthis._pageUpBtn.active = this._pageDownBtn.active = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._pageIndex == 0) {\n\t\t\tthis._pageUpBtn.opacity = 100;\n\t\t} else {\n\t\t\tthis._pageUpBtn.opacity = 255;\n\t\t}\n\n\t\tif (this._pageIndex == this._maxPage - 1) {\n\t\t\tthis._pageDownBtn.opacity = 100;\n\t\t} else {\n\t\t\tthis._pageDownBtn.opacity = 255;\n\t\t}\n\t},\n\n\t_setTopBtnState(time) {\n\n\t\tlet arrow1, arrow2;\n\t\tif (this._isTop) {\n\t\t\tarrow1 = this._arrowDown;\n\t\t\tarrow2 = this._arrowUp;\n\t\t} else {\n\t\t\tarrow1 = this._arrowUp;\n\t\t\tarrow2 = this._arrowDown;\n\t\t}\n\n\t\tarrow1.scale = 1;\n\t\tarrow2.scale = 0;\n\n\t\tcc.tween(arrow1)\n\t\t\t.to(time / 2, { scale: 0 }, {easing: 'cubicOut'})\n\t\t\t.start()\n\n\t\tcc.tween(arrow2)\n\t\t\t.delay(time / 2)\n\t\t\t.to(time / 2, {scale: 1}, {easing: 'cubicOut'})\n\t\t\t.start();\n\n\n\t},\n\n\n\t_dataArr: null,\n\tsetItemData(dataArr) {\n\n\t\tconsole.log(' in setItemData', dataArr);\n\n\t\tif (!dataArr || dataArr.length == 0) {\n\t\t\treturn;\n\t\t}\n\t\tthis._dataArr = dataArr;\n\t\t// this._maxPage = Math.ceil(dataArr.length / this._lineMaxCount) - 1;\n\n\t\tthis._initPageArr();\n\n\t\tthis._pageIndex = 0;\n\t\tthis._refreshPage();\n\t},\n\n\t_pageArr: null,\n\t_initPageArr() {\n\n\t\tlet tmpArr = [];\n\t\tthis._pageArr = [tmpArr];\n\t\tlet curLen = this._disW;\n\t\tfor (let i=0; i<this._dataArr.length; i++) {\n\n\t\t\tconst item = this._addOneItem(this._dataArr[i]);\n\t\t\tcurLen += item.width + this._disW;\n\t\t\tif (curLen > this._maxW) {\n\t\t\t\ttmpArr = [item];\n\t\t\t\tthis._pageArr.push(tmpArr);\n\t\t\t} else {\n\t\t\t\ttmpArr.push(item);\n\t\t\t}\n\t\t}\n\t\tthis._maxPage = this._pageArr.length;\n\t\tconsole.log('this._maxPage: ', this._maxPage);\n\t},\n\n\n\t_itemLen: null,\n\t_addOneItem(data) {\n\n\t\tconst item = new cc.Node();\n\t\titem.width = this._itemLen;\n\t\titem.height = this._itemLen;\n\t\t// const rect = item.addComponent(cc.Graphics);\n\t\t// rect.fillColor = cc.Color.BLACK.setA(100);\n\t\t// rect.fillRect(-this._itemLen / 2, -this._itemLen / 2, this._itemLen, this._itemLen);\n\t\t// rect.fill();\n\n\t\tthis._addItemPic(item, data.pic_url);\n\t\tthis._addItemLabel(item, data.text);\n\t\tthis._addItemAudio(item, data.audio_url);\n\n\t\titem.data = data;\n\t\treturn item;\n\t},\n\n\t_addItemPic(item, url) {\n\t\tif (!url) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imgLen = this._itemLen * 0.8;\n\t\tcc.assetManager.loadRemote(url, (err, texture) => {\n\n\t\t\tconst sprNode = new cc.Node();\n\t\t\titem.addChild(sprNode);\n\t\t\tsprNode.width = texture.width;\n\t\t\tsprNode.height = texture.height;\n\t\t\tsprNode.y = (this._itemLen - imgLen) / 2;\n\t\t\tsetSprNodeMaxLen(sprNode, imgLen, imgLen);\n\n\t\t\tconst sf = new cc.SpriteFrame(texture);\n\t\t\tsprNode.addComponent(cc.Sprite).spriteFrame = sf;\n\t\t});\n\t},\n\n\t_labelFont: null,\n\t_addItemLabel(item, text) {\n\t\tif (!text) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst labelNode = new cc.Node();\n\t\tlabelNode.color = cc.Color.BLACK;\n\n\t\tconst label = labelNode.addComponent(cc.Label);\n\t\tlabel.string = text;\n\t\t// label.string ='ltg + ';\n\t\titem.addChild(labelNode);\n\t\tlabelNode.y = -this._itemLen * 0.4;\n\t\tlabel.fontSize = 16;\n\t\tlabel.verticalAlign = cc.Label.VerticalAlign.CENTER;\n\n\t\tif (!this._labelFont) {\n\n\t\t\tconst fontLabel = this.node.getChildByName('font').getComponent(cc.Label);\n\t\t\tthis._labelFont = fontLabel.font;\n\t\t}\n\n\t\tlabel.font = this._labelFont;\n\t\tlabel._forceUpdateRenderData(true)\n\t\tif (labelNode.width > this._itemLen) {\n\t\t\titem.width = labelNode.width;\n\t\t}\n\n\t},\n\n\t_addItemAudio(item, url) {\n\t\tif (!url) {\n\t\t\treturn;\n\t\t}\n\n\t\tcc.assetManager.loadRemote(url, (err, audioClip) => {\n\t\t\titem.audioClip = audioClip;\n\t\t\tthis._addItemListener(item);\n\t\t});\n\t},\n\n\t_addItemListener(item) {\n\t\titem.addComponent(cc.Button);\n\t\titem.on('click', () => {\n\t\t\tif (item.audioClip) {\n\t\t\t\tcc.audioEngine.stopAllEffects();\n\t\t\t\tcc.audioEngine.playEffect(item.audioClip, false, 0.5);\n\t\t\t}\n\t\t});\n\t},\n\n\t_refreshPage() {\n\n\t\tthis._itemLayer.removeAllChildren();\n\n\t\tconst dataArr = this._dataArr;\n\t\tconst disW = this._disW;\n\t\tconst startIndex = this._pageIndex * this._lineMaxCount;\n\n\t\t// const showArr = dataArr.slice(startIndex, startIndex + this._lineMaxCount);\n\t\tconst showArr = this._pageArr[this._pageIndex];\n\t\tlet baseX = this._getCurPageBaseX();\n\n\n\t\t// const baseX = -(disW + this._itemLen) * (showArr.length - 1) / 2;\n\t\tconst baseY = -25;\n\n\t\tshowArr.forEach((el, i) => {\n\t\t\tconst item = this._addOneItem(el.data);\n\t\t\tthis._itemLayer.addChild(item);\n\t\t\titem.x = baseX + (disW + item.width) / 2\n\t\t\titem.y = baseY;\n\n\t\t\tbaseX = item.x + (disW + item.width) / 2;\n\t\t});\n\n\t\tthis._setPageBtnState();\n\n\t},\n\n\t_getCurPageBaseX() {\n\t\tconst arr = this._pageArr[this._pageIndex];\n\t\tconsole.log('arr: ', arr);\n\t\tlet curLen = this._disW;\n\t\tfor (let i=0; i<arr.length; i++) {\n\t\t\tcurLen += (arr[i].width + this._disW)\n\t\t}\n\t\treturn -curLen / 2;\n\t},\n\t// update (dt) {},\n});\n"]}
\ No newline at end of file \ No newline at end of file
{"version":3,"sources":["assets/mz_004/script/scene.js"],"names":["cc","Class","Component","properties","baseWidth","type","Integer","baseHeight","onLoad","debug","setDisplayStats","initSceneData","initSize","_imageResList","_audioResList","_animaResList","_designSize","view","getDesignResolutionSize","start","getData","bind","window","courseware","data","console","log","getDefaultData","preloadItem","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","func","dataJson","data1","JSON","parse","bgItem","rect","height","width","x","y","url","hotZoneItemArr","id","imgScale","index","itemType","mapScale","skeJsonData","name","texJsonData","texPngData","picArr","audio_url","pic_url","text","concat","preloadArr","assetManager","loadAny","err","loadEnd","hideAirClassLoading","push","forEach","item","initView","initBg","initHotZone","initBottomPart","initCircle","initListener","_cocosScale","frameSize","getFrameSize","sx","winSize","sy","s","Math","min","bgNode","find","scale","max","anchorX","anchorY","bg","rectNode","Node","scaleX","scaleY","addChild","ctx","addComponent","Graphics","fillColor","bgColor","fillRect","fill","initHotZoneBg","hotZoneBg","parent","zIndex","canvas","loader","load","img","addMask","box","getBoundingBox","tmpS","subNum","getVisibleSize","mapS","bgBottom","sprNode","sf","SpriteFrame","spr","Sprite","spriteFrame","bgWhite","shadowNode","Color","BLACK","setA","setOneCircle","node","mask","Mask","Type","RECT","script","getComponent","setItemData","setOneAnima","rate","lineWidth","strokeColor","WHITE","isShowDebugLine","stroke","animaNode","loadRemote","audioClip","dragonDisplay","dragonBones","ArmatureDisplay","image","ske","atlas","error","texture","atlasJson","dragonBonesJson","DragonBonesAtlasAsset","asset","DragonBonesAsset","dragonAtlasAsset","dragonAsset","json","armatures","armatureNames","i","length","defaultArmatureName","armatureName","defaultArmature","animations","animation","animationNames","Button","on","isClicked","audioEngine","stopAll","play","playAnimation","setOnePic","picNode","showCircle","showAnima","_circle","active","itemNode","hideCircle","pos","opacity","tween","to","easing"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\nimport {getScaleRateBy2Node, localPosTolocalPos} from \"./util\";\n\ncc.Class({\n\textends: cc.Component,\n\n\tproperties: {\n\t\tbaseWidth: {\n\t\t\tdefault: 1280,\n\t\t\ttype: cc.Integer\n\t\t},\n\t\tbaseHeight: {\n\t\t\tdefault: 720,\n\t\t\ttype: cc.Integer\n\t\t}\n\t\t// foo: {\n\t\t// // ATTRIBUTES:\n\t\t// default: null, // The default value will be used only when the component attaching\n\t\t// // to a node for the first time\n\t\t// type: cc.SpriteFrame, // optional, default is typeof default\n\t\t// serializable: true, // optional, default is true\n\t\t// },\n\t\t// bar: {\n\t\t// get () {\n\t\t// return this._bar;\n\t\t// },\n\t\t// set (value) {\n\t\t// this._bar = value;\n\t\t// }\n\t\t// },\n\t},\n\n\t// LIFE-CYCLE CALLBACKS:\n\n\t// baseWidth: 1280;\n\t// baseHeight: 720;\n\n\tonLoad() {\n\t\tcc.debug.setDisplayStats(false);\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t},\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\t},\n\n\t_designSize: null,\n\tinitSize() {\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t},\n\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\t// console.log('has window');\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\t\tgetData((data) => {\n\t\t\tconsole.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.preloadItem()\n\t\t})\n\t},\n\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\tgetData(func) {\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\n\t\tconst dataJson = '{\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/cea0606b09735d7346dc57626f0a0a9b.png\",\"rect\":{\"x\":205.28,\"y\":0,\"width\":844.44,\"height\":475}},\"hotZoneItemArr\":[{\"id\":\"1597805601321\",\"index\":0,\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/ddf2a304102c90bd2ed1cadf27f8feb7.png\",\"text\":\"arrow\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/1961d807c944e6551af02c7b57e117f3.mp3\",\"itemType\":\"rect\",\"fontScale\":0.98046875,\"imgScale\":4.139756944444445,\"mapScale\":0.98046875,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/ab66b9d704187f60fd8a61c981435b8e.json\",\"name\":\"finish2_ske.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/a4b74d67df855493b394c7df9625ba24.json\",\"name\":\"finish2_tex.json\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/e485027385bab93761a5d1749166ba83.png\",\"name\":\"finish2_tex.png\"},\"gIdx\":\"0\",\"fontSize\":50,\"fontName\":\"BRLNSR_1\",\"ontColor\":\"#8f3758\",\"rect\":{\"x\":75.22,\"y\":135.5,\"width\":200,\"height\":200}},{\"id\":\"1597805655229\",\"index\":1,\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png\",\"text\":\"home\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3\",\"itemType\":\"rect\",\"fontScale\":0.98046875,\"imgScale\":3.72578125,\"mapScale\":0.98046875,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\",\"name\":\"finish1_ske.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\",\"name\":\"finish1_tex.json\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\",\"name\":\"finish1_tex.png\"},\"gIdx\":\"0\",\"fontSize\":50,\"fontName\":\"BRLNSR_1\",\"ontColor\":\"#8f3758\",\"rect\":{\"x\":661.72,\"y\":69,\"width\":77,\"height\":77}}],\"picArr\":[{\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/29cdcc64c0898a1ec63f89b8b2fdd0e6.png\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3\",\"text\":\"arrow\"},{\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/fbe2f23b9eb191a9330f99800e0d54d5.mp3\",\"text\":\"home\"}]}'\n\t\tconst data1 = JSON.parse(dataJson);\n\t\treturn data1;\n\n\t\tconst data = {\n\t\t\tbgItem: {\n\t\t\t\trect: {\n\t\t\t\t\theight: 380,\n\t\t\t\t\twidth: 675.56,\n\t\t\t\t\tx: 160.72,\n\t\t\t\t\ty: 0\n\t\t\t\t},\n\t\t\t\t// url: \"http://staging-teach.cdn.ireadabc.com/b31c5881ea5f607c1d3540029a7d29c7.png\"\n\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/756b0a8de4cb84ed70e70d60f87a5901.jpg\"\n\t\t\t},\n\t\t\thotZoneItemArr: [\n\t\t\t\t{\n\t\t\t\t\tid: 1595919608244,\n\t\t\t\t\timgScale: 1,\n\t\t\t\t\tindex: 0,\n\t\t\t\t\titemType: \"rect\",\n\t\t\t\t\tmapScale: 0.903125,\n\t\t\t\t\trect: {\n\t\t\t\t\t\theight: 120.84,\n\t\t\t\t\t\twidth: 115.99,\n\t\t\t\t\t\tx: 378.68,\n\t\t\t\t\t\ty: 191.3\n\t\t\t\t\t},\n\t\t\t\t\tskeJsonData: {\n\t\t\t\t\t\tname: \"finish1_ske.json\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\"\n\t\t\t\t\t},\n\t\t\t\t\ttexJsonData: {\n\t\t\t\t\t\tname: \"finish1_tex.json\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\"\n\t\t\t\t\t},\n\t\t\t\t\ttexPngData: {\n\t\t\t\t\t\tname: \"finish1_tex.png\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\n\t\t\tpicArr: [\n\t\t\t\t{\n\t\t\t\t\taudio_url: \"http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3\",\n\t\t\t\t\tpic_url: \"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png\",\n\t\t\t\t\ttext: \"1111\",\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\treturn data;\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\tcc.assetManager.loadAny(preloadArr, null, null, (err, data) => {\n\t\t\tconsole.log(' preload data, ', data);\n\n\t\t\t// typeof\n\t\t\tthis.loadEnd();\n\t\t\tif (window && window[\"air\"]) {\n\t\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t\t}\n\t\t});\n\t},\n\n\taddPreloadImage() {\n\t\tif (this.data.bgItem) {\n\t\t\tthis._imageResList.push({url: this.data.bgItem.url});\n\t\t}\n\n\t},\n\n\taddPreloadAudio() {\n\n\t\tif (!this.data.hotZoneItemArr) {\n\t\t\treturn;\n\t\t}\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\tthis._audioResList.push({url: item.audio_url});\n\t\t})\n\t},\n\n\taddPreloadAnima() {\n\t\tif (!this.data.hotZoneItemArr) {\n\t\t\treturn;\n\t\t}\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\t// if (item.gIdx == '0') {\n\t\t\t// \tthis._animaResList.push({url: item.skeJsonData.url});\n\t\t\t// \tthis._animaResList.push({url: item.texJsonData.url});\n\t\t\t// \tthis._animaResList.push({url: item.texPngData.url});\n\t\t\t// }\n\n\t\t})\n\n\t},\n\n\tloadEnd() {\n\t\tthis.initView();\n\t},\n\n\tinitView() {\n\t\tthis.initBg();\n\t\tthis.initHotZone();\n\t\tthis.initBottomPart();\n\t\tthis.initCircle();\n\t\tthis.initListener();\n\t},\n\n\t_cocosScale: null,\n\tinitBg() {\n\t\tconst frameSize = cc.view.getFrameSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tlet s = Math.min(sx, sy);\n\n\t\tthis._cocosScale = s;\n\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\t// const sx = cc.winSize.width / bgNode.width;\n\t\t// const sy = cc.winSize.height / bgNode.height;\n\t\t sx = frameSize.width / bgNode.width;\n\t\t sy = frameSize.height / bgNode.height;\n\t\tbgNode.scale = Math.max(sx, sy) * s;\n\t\tbgNode.anchorX = 1;\n\t\tbgNode.anchorY = 0;\n\t\tbgNode.x = frameSize.width / 2 * s;\n\t\tbgNode.y = -frameSize.height / 2 * s;\n\n\n\n\t\n\t\tconst bg = cc.find('Canvas/bg');\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.x = -bg.x;\n\t\trectNode.y = -bg.y;\n\t\trectNode.scaleX = bg.scaleX;\n\t\trectNode.scaleY = bg.scaleY;\n\t\tbg.addChild(rectNode);\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\tctx.fillColor = this.data.bgColor || '#f9bd03';\n\t\tctx.fillRect(-bg.width / 2 , -bg.height / 2, bg.width, bg.height);\n\t\tctx.fill();\n\n\t},\n\n\n\tinitHotZone() {\n\t\tthis.initHotZoneBg();\n\n\t},\n\n\thotZoneBg: null,\n\tinitHotZoneBg() {\n\t\tthis.hotZoneBg = new cc.Node();\n\t\tthis.hotZoneBg.name = 'hotZoneBg';\n\t\tthis.hotZoneBg.parent = cc.find('Canvas');\n\t\tthis.hotZoneBg.zIndex = 4;\n\n\n\t\tconst canvas = cc.find('Canvas/Main Camera');\n\t\t// console.log('canvas: ', canvas);\n\n\t\tif (!this.data.bgItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tcc.loader.load({url: this.data.bgItem.url}, (err, img) => {\n\n\t\t\tthis.addMask(this.hotZoneBg);\n\n\t\t\tthis.hotZoneBg.width = img.width;\n\t\t\tthis.hotZoneBg.height = img.height;\n\n\n\n\t\t\tconst box = this.hotZoneBg.getBoundingBox();\n\n\n\t\t\tconst tmpS = 640 / 720;\n\t\t\tlet subNum = 720 - 640;\n\t\t\tconst frameSize = cc.view.getFrameSize();\n\t\t\tconst winSize = cc.winSize;\n\n\t\t\tconsole.log('this.hotZoneBg.box: ', this.hotZoneBg.getBoundingBox());\n\t\t\tconsole.log('let visiSize=cc.director.getVisibleSize();: ', cc.view.getVisibleSize());\n\t\t\tconsole.log('lframeSize: ', frameSize);\n\n\t\t\tlet sx = frameSize.width / this._designSize.width;\n\t\t\tlet sy = frameSize.height / this._designSize.height;\n\t\t\tconst mapS = Math.min(sx, sy);\n\t\t\t// const sy = canvas.height * tmpS / box.height;\n\n\n\t\t\tconst bgBottom = cc.find('Canvas/bgBottom');\n\t\t\tbgBottom.scale = mapS * this._cocosScale;\n\t\t\t// subNum = bgBottom.height;\n\n\t\t\t sx = frameSize.width * this._cocosScale / img.width;\n\t\t\t sy = (frameSize.height * this._cocosScale - subNum * mapS * this._cocosScale) / img.height;\n\n\n\t\t\tconst sprNode = new cc.Node();\n\t\t\tvar sf = new cc.SpriteFrame(img);\n\t\t\t// const spr = this.hotZoneBg.addComponent(cc.Sprite);\n\t\t\tconst spr = sprNode.addComponent(cc.Sprite);\n\t\t\tspr.spriteFrame = sf\n\t\t\tsprNode.width = this.hotZoneBg.width;\n\t\t\tsprNode.height = this.hotZoneBg.height;\n\t\t\tsprNode.parent = this.hotZoneBg;\n\n\t\t\tthis.hotZoneBg.scale = Math.min(sx, sy);\n\n\t\t\t// this.hotZoneBg.y = -frameSize.height / 2 * this._cocosScale + this.hotZoneBg.height / 2 * this.hotZoneBg.scaleY + (subNum * mapS * this._cocosScale);\n\t\t\tthis.hotZoneBg.y = frameSize.height / 2 * this._cocosScale - this.hotZoneBg.height / 2 * this.hotZoneBg.scaleY ;\n\n\n\t\t\t// this.hotZoneBg.opacity = 20;\n\n\t\t\tconst bgWhite = cc.find('Canvas/bgWhite');\n\t\t\tbgWhite.y = this.hotZoneBg.y;\n\n\t\t\tbgWhite.scaleX = this.hotZoneBg.width * this.hotZoneBg.scaleX / bgWhite.width;\n\t\t\tbgWhite.scaleY = this.hotZoneBg.height * this.hotZoneBg.scaleY / bgWhite.height;\n\n\n\t\t\tconst canvas = cc.find('Canvas');\n\t\t\tconst shadowNode = new cc.Node();\n\t\t\tshadowNode.y = bgWhite.y;\n\t\t\tshadowNode.scaleX = bgWhite.scaleX;\n\t\t\tshadowNode.scaleY = bgWhite.scaleY;\n\t\t\tcanvas.addChild(shadowNode);\n\t\t\tconst ctx = shadowNode.addComponent(cc.Graphics);\n\t\t\tctx.fillColor = cc.Color.BLACK.setA(30);\n\t\t\t// ctx.fillRect(5, 5, this.hotZoneBg.width*this.hotZoneBg.scaleX, this.hotZoneBg.height * this.hotZoneBg.scaleY);\n\t\t\tctx.fillRect(-bgWhite.width / 2 + 8 / bgWhite.scaleX * this.hotZoneBg.scale, -bgWhite.height / 2 - 8 / bgWhite.scaleX * this.hotZoneBg.scale, bgWhite.width, bgWhite.height);\n\t\t\tctx.fill();\n\n\t\t\tshadowNode.zIndex = 1;\n\t\t\tbgWhite.zIndex = 2;\n\n\t\t\tbgBottom.y = -frameSize.height / 2 * this._cocosScale - 15 * bgBottom.scaleY;\n\n\t\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\t\t// if (item.gIdx == '0') {\n\t\t\t\t// \tthis.setOneAnima(item);\n\t\t\t\t// } else if (item.gIdx == '1') {\n\t\t\t\t// \tthis.setOnePic(item);\n\t\t\t\t// }\n\t\t\t\tthis.setOneCircle(item);\n\t\t\t});\n\n\t\t});\n\n\t},\n\n\taddMask(node) {\n\t\tconst mask = node.addComponent(cc.Mask);\n\t\tmask.type = cc.Mask.Type.RECT;\n\t},\n\n\tinitBottomPart() {\n\n\t\tconst bgBottom = cc.find('Canvas/bgBottom');\n\t\tconst script = bgBottom.getComponent('bgBottom');\n\t\tscript.setItemData(this.data.hotZoneItemArr);\n\t},\n\n\n\tsetOneAnima(data) {\n\n\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tthis.hotZoneBg.addChild(rectNode);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\tif (this.data.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t}\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\n\n\t\tconst animaNode = new cc.Node();\n\t\tanimaNode.name = 'anima_' + data.index;\n\t\tthis.hotZoneBg.addChild(animaNode);\n\n\t\t// rectNode.addChild(animaNode);\n\t\t// animaNode.x = rectNode.width / 2;\n\t\t// animaNode.y = rectNode.height / 2;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tanimaNode.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\n\t\tconst dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst image = data.texPngData.url//\"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\";\n\t\tconst ske = data.skeJsonData.url//\"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\";\n\t\tconst atlas = data.texJsonData.url//\"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\";\n\t\tcc.loader.load(image, (error, texture) => {\n\n\t\t\tcc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {\n\n\t\t\t\tcc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {\n\n\t\t\t\t\tconst atlas = new dragonBones.DragonBonesAtlasAsset();\n\t\t\t\t\tatlas.atlasJson = atlasJson;\n\t\t\t\t\tatlas.texture = texture;\n\n\t\t\t\t\tconst asset = new dragonBones.DragonBonesAsset();\n\t\t\t\t\tasset.dragonBonesJson = dragonBonesJson;\n\n\t\t\t\t\tdragonDisplay.dragonAtlasAsset = atlas;\n\t\t\t\t\tdragonDisplay.dragonAsset = asset;\n\n\t\t\t\t\tlet json = JSON.parse(asset.dragonBonesJson);\n\t\t\t\t\tlet armatures = json[\"armature\"];\n\t\t\t\t\tconsole.log('armatures: ', armatures);\n\t\t\t\t\tlet armatureNames = [];\n\t\t\t\t\tfor (let i = 0; i < armatures.length; i++) {\n\t\t\t\t\t\tarmatureNames.push(armatures[i].name);\n\t\t\t\t\t}\n\t\t\t\t\t// console.log('armatureNames: ', armatureNames);\n\t\t\t\t\tif (armatureNames.length > 0) {\n\t\t\t\t\t\tlet defaultArmatureName = armatureNames[0];\n\t\t\t\t\t\tdragonDisplay.armatureName = defaultArmatureName;\n\t\t\t\t\t\t// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);\n\t\t\t\t\t\tlet defaultArmature = armatures[0];\n\t\t\t\t\t\tlet animations = defaultArmature.animation;\n\t\t\t\t\t\tlet animationNames = [];\n\t\t\t\t\t\tfor (let i = 0; i < animations.length; i++) {\n\t\t\t\t\t\t\tanimationNames.push(animations[i].name);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trectNode.addComponent(cc.Button);\n\t\t\t\t\t\trectNode.on('click', () => {\n\t\t\t\t\t\t\tif (rectNode.isClicked) {\n\t\t\t\t\t\t\t\t// return;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trectNode.isClicked = true;\n\t\t\t\t\t\t\tconsole.log('clicked');\n\n\t\t\t\t\t\t\tif (animaNode.audioClip) {\n\t\t\t\t\t\t\t\tcc.audioEngine.stopAll();\n\t\t\t\t\t\t\t\tcc.audioEngine.play(animaNode.audioClip, false, 0.8);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (animationNames.length > 0) {\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation(animationNames[0], 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t},\n\n\n\tsetOnePic(data) {\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst picNode = new cc.Node();\n\t\tpicNode.data = data;\n\t\tthis.hotZoneBg.addChild(picNode);\n\n\t\tcc.loader.load({url: data.pic_url}, (err, img) => {\n\n\t\t\tconst spr = picNode.addComponent(cc.Sprite);\n\t\t\tspr.spriteFrame = new cc.SpriteFrame(img)\n\n\t\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\t\tpicNode.width = data.rect.width * scale;\n\t\t\tpicNode.height = data.rect.height * scale;\n\t\t\tpicNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\t\tpicNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\t\tpicNode.anchorX = picNode.anchorY = 0;\n\t\t});\n\n\t},\n\n\tsetOneCircle(data) {\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\trectNode.data = data;\n\t\tthis.hotZoneBg.addChild(rectNode);\n\n\n\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tdata.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\t\trectNode.addComponent(cc.Button);\n\t\trectNode.on('click', () => {\n\t\t\tthis.showCircle(rectNode);\n\t\t});\n\n\n\n\n\n\t\tconst animaNode = new cc.Node();\n\t\tanimaNode.name = 'anima_' + data.index;\n\t\tthis.hotZoneBg.addChild(animaNode);\n\t\tdata.animaNode = animaNode;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tanimaNode.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\n\t\tconst dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst image = data.texPngData.url//\"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\";\n\t\tconst ske = data.skeJsonData.url//\"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\";\n\t\tconst atlas = data.texJsonData.url//\"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\";\n\t\tcc.loader.load(image, (error, texture) => {\n\n\t\t\tcc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {\n\n\t\t\t\tcc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {\n\n\t\t\t\t\tconst atlas = new dragonBones.DragonBonesAtlasAsset();\n\t\t\t\t\tatlas.atlasJson = atlasJson;\n\t\t\t\t\tatlas.texture = texture;\n\n\t\t\t\t\tconst asset = new dragonBones.DragonBonesAsset();\n\t\t\t\t\tasset.dragonBonesJson = dragonBonesJson;\n\n\t\t\t\t\tdragonDisplay.dragonAtlasAsset = atlas;\n\t\t\t\t\tdragonDisplay.dragonAsset = asset;\n\n\t\t\t\t\tlet json = JSON.parse(asset.dragonBonesJson);\n\t\t\t\t\tlet armatures = json[\"armature\"];\n\t\t\t\t\tconsole.log('armatures: ', armatures);\n\t\t\t\t\tlet armatureNames = [];\n\t\t\t\t\tfor (let i = 0; i < armatures.length; i++) {\n\t\t\t\t\t\tarmatureNames.push(armatures[i].name);\n\t\t\t\t\t}\n\t\t\t\t\t// console.log('armatureNames: ', armatureNames);\n\t\t\t\t\tif (armatureNames.length > 0) {\n\t\t\t\t\t\tlet defaultArmatureName = armatureNames[0];\n\t\t\t\t\t\tdragonDisplay.armatureName = defaultArmatureName;\n\t\t\t\t\t\t// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);\n\t\t\t\t\t\tlet defaultArmature = armatures[0];\n\t\t\t\t\t\tlet animations = defaultArmature.animation;\n\t\t\t\t\t\tlet animationNames = [];\n\t\t\t\t\t\tfor (let i = 0; i < animations.length; i++) {\n\t\t\t\t\t\t\tanimationNames.push(animations[i].name);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// rectNode.addComponent(cc.Button);\n\t\t\t\t\t\t// rectNode.on('click', () => {\n\t\t\t\t\t\tanimaNode.showAnima = () => {\n\t\t\t\t\t\t\tif (rectNode.isClicked) {\n\t\t\t\t\t\t\t\t// return;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trectNode.isClicked = true;\n\t\t\t\t\t\t\tconsole.log('clicked');\n\n\t\t\t\t\t\t\tif (animaNode.audioClip) {\n\t\t\t\t\t\t\t\tcc.audioEngine.stopAll();\n\t\t\t\t\t\t\t\tcc.audioEngine.play(animaNode.audioClip, false, 0.8);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (animationNames.length > 0) {\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation(animationNames[0], 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t},\n\n\t_circle: null,\n\tinitCircle() {\n\n\t\tthis._circle = cc.find('Canvas/circle');\n\t\tthis._circle.active = false;\n\t\tthis._circle.zIndex = 12;\n\t},\n\n\tshowCircle(node) {\n\t\tconsole.log(' in showCircle');\n\n\t\tif (node == this._circle.itemNode) {\n\n\t\t\tnode.data.animaNode.showAnima();\n\t\t\t// if (node.data.audioClip) {\n\t\t\t// \tcc.audioEngine.stopAll();\n\t\t\t// \tcc.audioEngine.play(node.data.audioClip, false, 0.8);\n\t\t\t// }\n\t\t\tthis.hideCircle();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._circle.itemNode = node;\n\n\t\tnode.x += node.width / 2;\n\t\tnode.y += node.height / 2;\n\t\tconst rate = getScaleRateBy2Node(this._circle, node);\n\t\tconst pos = localPosTolocalPos(this._circle, node);\n\t\tnode.x -= node.width / 2;\n\t\tnode.y -= node.height / 2;\n\n\t\tthis._circle.scale *= rate;\n\t\tthis._circle.scale *= (5/4);\n\n\t\tthis._circle.x = pos.x;\n\t\tthis._circle.y = pos.y;\n\n\t\tthis._circle.active = true;\n\n\t\tthis._circle.opacity = 0;\n\t\tcc.tween(this._circle)\n\t\t\t.to(1, {opacity: 255}, {easing: 'cubicOut'})\n\t\t\t.start();\n\n\t},\n\n\tinitListener() {\n\t\tconst canvas = cc.find('Canvas');\n\t\tcanvas.addComponent(cc.Button);\n\t\tcanvas.on('click', () => {\n\t\t\tthis.hideCircle();\n\t\t});\n\t},\n\n\thideCircle() {\n\t\tthis._circle.itemNode = null;\n\t\tcc.tween(this._circle)\n\t\t\t.to(1, {opacity: 0}, {easing: 'cubicOut'})\n\t\t\t.start();\n\t}\n\n\n\t// update (dt) {},\n});\n"]} {"version":3,"sources":["assets/mz_004/script/scene.js"],"names":["cc","Class","Component","properties","baseWidth","type","Integer","baseHeight","onLoad","debug","setDisplayStats","initSceneData","initSize","_imageResList","_audioResList","_animaResList","_designSize","view","getDesignResolutionSize","start","getData","bind","window","courseware","data","console","log","getDefaultData","preloadItem","addPreloadImage","addPreloadAudio","addPreloadAnima","preload","func","dataJson","data1","JSON","parse","bgItem","rect","height","width","x","y","url","hotZoneItemArr","id","imgScale","index","itemType","mapScale","skeJsonData","name","texJsonData","texPngData","picArr","audio_url","pic_url","text","concat","preloadArr","assetManager","loadAny","err","loadEnd","hideAirClassLoading","push","forEach","item","bg_audio_url","initView","initBg","initHotZone","initBottomPart","initCircle","initListener","initMusic","loadRemote","clip","audioEngine","setMusicVolume","audioID","playMusic","_cocosScale","frameSize","getFrameSize","sx","winSize","sy","s","Math","min","bgNode","find","scale","max","anchorX","anchorY","bg","rectNode","Node","scaleX","scaleY","addChild","ctx","addComponent","Graphics","fillColor","bgColor","fillRect","fill","initHotZoneBg","hotZoneBg","parent","zIndex","canvas","loader","load","img","addMask","box","getBoundingBox","tmpS","subNum","getVisibleSize","mapS","bgBottom","sprNode","sf","SpriteFrame","spr","Sprite","spriteFrame","bgWhite","shadowNode","Color","BLACK","setA","gIdx","setOneCircle","setOnePic","setOneAnima","node","mask","Mask","Type","RECT","script","getComponent","setItemData","rate","lineWidth","strokeColor","WHITE","isShowDebugLine","stroke","animaNode","audioClip","dragonDisplay","dragonBones","ArmatureDisplay","image","ske","atlas","error","texture","atlasJson","dragonBonesJson","DragonBonesAtlasAsset","asset","DragonBonesAsset","dragonAtlasAsset","dragonAsset","json","armatures","armatureNames","i","length","defaultArmatureName","armatureName","defaultArmature","animations","animation","animationNames","Button","on","isClicked","stopAllEffects","playEffect","playAnimation","picNode","addPicAudio","showCircle","showAnima","_circle","active","itemNode","hideCircle","pos","opacity","tween","to","easing"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\n// Learn Attribute:\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\n// Learn life-cycle callbacks:\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\n\nimport {getScaleRateBy2Node, localPosTolocalPos} from \"./util\";\n\ncc.Class({\n\textends: cc.Component,\n\n\tproperties: {\n\t\tbaseWidth: {\n\t\t\tdefault: 1280,\n\t\t\ttype: cc.Integer\n\t\t},\n\t\tbaseHeight: {\n\t\t\tdefault: 720,\n\t\t\ttype: cc.Integer\n\t\t}\n\t\t// foo: {\n\t\t// // ATTRIBUTES:\n\t\t// default: null, // The default value will be used only when the component attaching\n\t\t// // to a node for the first time\n\t\t// type: cc.SpriteFrame, // optional, default is typeof default\n\t\t// serializable: true, // optional, default is true\n\t\t// },\n\t\t// bar: {\n\t\t// get () {\n\t\t// return this._bar;\n\t\t// },\n\t\t// set (value) {\n\t\t// this._bar = value;\n\t\t// }\n\t\t// },\n\t},\n\n\t// LIFE-CYCLE CALLBACKS:\n\n\t// baseWidth: 1280;\n\t// baseHeight: 720;\n\n\tonLoad() {\n\t\tcc.debug.setDisplayStats(false);\n\t\tthis.initSceneData();\n\t\tthis.initSize();\n\t},\n\n\tinitSceneData() {\n\t\tthis._imageResList = [];\n\t\tthis._audioResList = [];\n\t\tthis._animaResList = [];\n\t},\n\n\t_designSize: null,\n\tinitSize() {\n\t\tthis._designSize = cc.view.getDesignResolutionSize();\n\n\t},\n\n\tstart() {\n\t\tlet getData = this.getData.bind(this);\n\t\tif (window && window.courseware) {\n\t\t\t// console.log('has window');\n\t\t\tgetData = window.courseware.getData;\n\t\t}\n\t\tgetData((data) => {\n\t\t\tconsole.log('data:', data);\n\t\t\tthis.data = data || this.getDefaultData();\n\t\t\tthis.preloadItem()\n\t\t})\n\t},\n\n\n\t_imageResList: null,\n\t_audioResList: null,\n\t_animaResList: null,\n\tpreloadItem() {\n\t\tthis.addPreloadImage();\n\t\tthis.addPreloadAudio();\n\t\tthis.addPreloadAnima();\n\t\tthis.preload();\n\t},\n\n\tgetData(func) {\n\t\tfunc(this.getDefaultData());\n\t},\n\n\tgetDefaultData() {\n\n\t\tconst dataJson = '{\"bgColorId\":0,\"bgColor\":\"#f9bd03\",\"bgItem\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/539e2f58cb1817f852d9c09ec1ac7c8b.png\",\"rect\":{\"x\":265.18,\"y\":0,\"width\":776.65,\"height\":500}},\"hotZoneItemArr\":[{\"id\":\"1611197962070\",\"index\":0,\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/8ce25a36313edb9dfa3de77ba85cb6b9.png\",\"text\":\"aaa\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/cd8daa8b4d8ff707b3a3680e80bc4761.mp3\",\"itemType\":\"rect\",\"fontScale\":1.02109375,\"imgScale\":0.7029268568840579,\"mapScale\":1.02109375,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/3db1a0ed6b7e33d5f9f284e1a5980349.json\",\"name\":\"Ubbie_ske.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/4232e00c9b1d272e650e51dbb785e498.json\",\"name\":\"Ubbie_tex.json\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/2e56dbe3134380952a725eacceb86359.png\",\"name\":\"Ubbie_tex.png\"},\"gIdx\":\"0\",\"rect\":{\"x\":-1.68,\"y\":-1,\"width\":200,\"height\":200}},{\"id\":\"1611197966644\",\"index\":1,\"pic_url\":\"http://staging-teach.cdn.ireadabc.com/c8abf7383d65bcbdba8f390785cece60.png\",\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/1961d807c944e6551af02c7b57e117f3.mp3\",\"itemType\":\"pic\",\"fontScale\":1.02109375,\"imgScale\":0.2536231884057971,\"mapScale\":1.02109375,\"gIdx\":\"1\",\"rect\":{\"x\":7.32,\"y\":424,\"width\":70,\"height\":70}},{\"id\":\"1611197971104\",\"index\":2,\"audio_url\":\"http://staging-teach.cdn.ireadabc.com/694a80e21cefd6e53880d61e684e1c94.mp3\",\"itemType\":\"rect\",\"fontScale\":1.02109375,\"imgScale\":1,\"mapScale\":1.02109375,\"skeJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/7efceac56cc9a61b107a11457390d3c6.json\",\"name\":\"finish1_ske.json\"},\"texJsonData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/d6e8db4fb385127de9e3cd9d8a9530f7.json\",\"name\":\"finish1_tex.json\"},\"texPngData\":{\"url\":\"http://staging-teach.cdn.ireadabc.com/96f5c7a9ac9f433c9c870c38b0811a38.png\",\"name\":\"finish1_tex.png\"},\"gIdx\":\"2\",\"rect\":{\"x\":575.32,\"y\":303,\"width\":200,\"height\":200}}],\"bg_audio_url\":\"http://staging-teach.cdn.ireadabc.com/3fa65d5f667a2ef9059d3dfc5df74a4d.mp3\"}'\n\t\tconst data1 = JSON.parse(dataJson);\n\t\treturn data1;\n\n\t\tconst data = {\n\t\t\tbgItem: {\n\t\t\t\trect: {\n\t\t\t\t\theight: 380,\n\t\t\t\t\twidth: 675.56,\n\t\t\t\t\tx: 160.72,\n\t\t\t\t\ty: 0\n\t\t\t\t},\n\t\t\t\t// url: \"http://staging-teach.cdn.ireadabc.com/b31c5881ea5f607c1d3540029a7d29c7.png\"\n\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/756b0a8de4cb84ed70e70d60f87a5901.jpg\"\n\t\t\t},\n\t\t\thotZoneItemArr: [\n\t\t\t\t{\n\t\t\t\t\tid: 1595919608244,\n\t\t\t\t\timgScale: 1,\n\t\t\t\t\tindex: 0,\n\t\t\t\t\titemType: \"rect\",\n\t\t\t\t\tmapScale: 0.903125,\n\t\t\t\t\trect: {\n\t\t\t\t\t\theight: 120.84,\n\t\t\t\t\t\twidth: 115.99,\n\t\t\t\t\t\tx: 378.68,\n\t\t\t\t\t\ty: 191.3\n\t\t\t\t\t},\n\t\t\t\t\tskeJsonData: {\n\t\t\t\t\t\tname: \"finish1_ske.json\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\"\n\t\t\t\t\t},\n\t\t\t\t\ttexJsonData: {\n\t\t\t\t\t\tname: \"finish1_tex.json\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\"\n\t\t\t\t\t},\n\t\t\t\t\ttexPngData: {\n\t\t\t\t\t\tname: \"finish1_tex.png\",\n\t\t\t\t\t\turl: \"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\n\t\t\tpicArr: [\n\t\t\t\t{\n\t\t\t\t\taudio_url: \"http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3\",\n\t\t\t\t\tpic_url: \"http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png\",\n\t\t\t\t\ttext: \"1111\",\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\tdata.picArr = data.picArr.concat(data.picArr);\n\t\treturn data;\n\t},\n\n\tpreload() {\n\n\t\tconst preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);\n\t\tcc.assetManager.loadAny(preloadArr, null, null, (err, data) => {\n\t\t\tconsole.log(' preload data, ', data);\n\n\t\t\t// typeof\n\t\t\tthis.loadEnd();\n\t\t\tif (window && window[\"air\"]) {\n\t\t\t\twindow[\"air\"].hideAirClassLoading();\n\t\t\t}\n\t\t});\n\t},\n\n\taddPreloadImage() {\n\t\n\t\tif (this.data.bgItem) {\n\t\t\tthis._imageResList.push({ url: this.data.bgItem.url });\n\t\t}\n\t\tif (!this.data.hotZoneItemArr) {\n\t\t\treturn;\n\t\t}\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\tif (item.pic_url) {\n\t\t\t\tthis._imageResList.push({ url: item.pic_url });\n\t\t\t}\n\t\t})\n\n\t},\n\n\taddPreloadAudio() {\n\n\t\tif (!this.data.hotZoneItemArr) {\n\t\t\treturn;\n\t\t}\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\tthis._audioResList.push({url: item.audio_url});\n\t\t})\n\n\t\tthis._audioResList.push({url: this.bg_audio_url});\n\t},\n\n\taddPreloadAnima() {\n\t\tif (!this.data.hotZoneItemArr) {\n\t\t\treturn;\n\t\t}\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\tif (item.skeJsonData) {\n\t\t\t\tthis._animaResList.push({ url: item.skeJsonData.url || '' });\n\t\t\t\tthis._animaResList.push({ url: item.texJsonData.url || ''});\n\t\t\t\tthis._animaResList.push({ url: item.texPngData.url || ''});\n\t\t\t}\n\t\t})\n\t},\n\n\tloadEnd() {\n\t\tthis.initView();\n\t},\n\n\tinitView() {\n\t\tthis.initBg();\n\t\tthis.initHotZone();\n\t\tthis.initBottomPart();\n\t\tthis.initCircle();\n\t\tthis.initListener();\n\t\tthis.initMusic();\n\t},\n\n\n\tinitMusic() {\n\t\tcc.assetManager.loadRemote(this.data.bg_audio_url, (err, clip) => {\n\t\t\tcc.audioEngine.setMusicVolume(0.3);\n\t\t\tconst audioID = cc.audioEngine.playMusic(clip, true);\n\t\t});\n\t},\n\n\t_cocosScale: null,\n\tinitBg() {\n\t\tconst frameSize = cc.view.getFrameSize();\n\n\t\tlet sx = cc.winSize.width / frameSize.width;\n\t\tlet sy = cc.winSize.height / frameSize.height;\n\t\tlet s = Math.min(sx, sy);\n\n\t\tthis._cocosScale = s;\n\n\t\tconst bgNode = cc.find('Canvas/bg');\n\t\t// const sx = cc.winSize.width / bgNode.width;\n\t\t// const sy = cc.winSize.height / bgNode.height;\n\t\t sx = frameSize.width / bgNode.width;\n\t\t sy = frameSize.height / bgNode.height;\n\t\tbgNode.scale = Math.max(sx, sy) * s;\n\t\tbgNode.anchorX = 1;\n\t\tbgNode.anchorY = 0;\n\t\tbgNode.x = frameSize.width / 2 * s;\n\t\tbgNode.y = -frameSize.height / 2 * s;\n\n\n\n\t\n\t\tconst bg = cc.find('Canvas/bg');\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.x = -bg.x;\n\t\trectNode.y = -bg.y;\n\t\trectNode.scaleX = bg.scaleX;\n\t\trectNode.scaleY = bg.scaleY;\n\t\tbg.addChild(rectNode);\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\tctx.fillColor = this.data.bgColor || '#f9bd03';\n\t\tctx.fillRect(-bg.width / 2 , -bg.height / 2, bg.width, bg.height);\n\t\tctx.fill();\n\n\t},\n\n\n\tinitHotZone() {\n\t\tthis.initHotZoneBg();\n\n\t},\n\n\thotZoneBg: null,\n\tinitHotZoneBg() {\n\t\tthis.hotZoneBg = new cc.Node();\n\t\tthis.hotZoneBg.name = 'hotZoneBg';\n\t\tthis.hotZoneBg.parent = cc.find('Canvas');\n\t\tthis.hotZoneBg.zIndex = 4;\n\n\n\t\tconst canvas = cc.find('Canvas/Main Camera');\n\t\t// console.log('canvas: ', canvas);\n\n\t\tif (!this.data.bgItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tcc.loader.load({url: this.data.bgItem.url}, (err, img) => {\n\n\t\t\tthis.addMask(this.hotZoneBg);\n\n\t\t\tthis.hotZoneBg.width = img.width;\n\t\t\tthis.hotZoneBg.height = img.height;\n\n\n\n\t\t\tconst box = this.hotZoneBg.getBoundingBox();\n\n\n\t\t\tconst tmpS = 640 / 720;\n\t\t\tlet subNum = 720 - 640;\n\t\t\tconst frameSize = cc.view.getFrameSize();\n\t\t\tconst winSize = cc.winSize;\n\n\t\t\tconsole.log('this.hotZoneBg.box: ', this.hotZoneBg.getBoundingBox());\n\t\t\tconsole.log('let visiSize=cc.director.getVisibleSize();: ', cc.view.getVisibleSize());\n\t\t\tconsole.log('lframeSize: ', frameSize);\n\n\t\t\tlet sx = frameSize.width / this._designSize.width;\n\t\t\tlet sy = frameSize.height / this._designSize.height;\n\t\t\tconst mapS = Math.min(sx, sy);\n\t\t\t// const sy = canvas.height * tmpS / box.height;\n\n\n\t\t\tconst bgBottom = cc.find('Canvas/bgBottom');\n\t\t\tbgBottom.scale = mapS * this._cocosScale;\n\t\t\t// subNum = bgBottom.height;\n\n\t\t\t sx = frameSize.width * this._cocosScale / img.width;\n\t\t\t sy = (frameSize.height * this._cocosScale - subNum * mapS * this._cocosScale) / img.height;\n\n\n\t\t\tconst sprNode = new cc.Node();\n\t\t\tvar sf = new cc.SpriteFrame(img);\n\t\t\t// const spr = this.hotZoneBg.addComponent(cc.Sprite);\n\t\t\tconst spr = sprNode.addComponent(cc.Sprite);\n\t\t\tspr.spriteFrame = sf\n\t\t\tsprNode.width = this.hotZoneBg.width;\n\t\t\tsprNode.height = this.hotZoneBg.height;\n\t\t\tsprNode.parent = this.hotZoneBg;\n\n\t\t\tthis.hotZoneBg.scale = Math.min(sx, sy);\n\n\t\t\t// this.hotZoneBg.y = -frameSize.height / 2 * this._cocosScale + this.hotZoneBg.height / 2 * this.hotZoneBg.scaleY + (subNum * mapS * this._cocosScale);\n\t\t\tthis.hotZoneBg.y = frameSize.height / 2 * this._cocosScale - this.hotZoneBg.height / 2 * this.hotZoneBg.scaleY ;\n\n\n\t\t\t// this.hotZoneBg.opacity = 20;\n\n\t\t\tconst bgWhite = cc.find('Canvas/bgWhite');\n\t\t\tbgWhite.y = this.hotZoneBg.y;\n\n\t\t\tbgWhite.scaleX = this.hotZoneBg.width * this.hotZoneBg.scaleX / bgWhite.width;\n\t\t\tbgWhite.scaleY = this.hotZoneBg.height * this.hotZoneBg.scaleY / bgWhite.height;\n\n\n\t\t\tconst canvas = cc.find('Canvas');\n\t\t\tconst shadowNode = new cc.Node();\n\t\t\tshadowNode.y = bgWhite.y;\n\t\t\tshadowNode.scaleX = bgWhite.scaleX;\n\t\t\tshadowNode.scaleY = bgWhite.scaleY;\n\t\t\tcanvas.addChild(shadowNode);\n\t\t\tconst ctx = shadowNode.addComponent(cc.Graphics);\n\t\t\tctx.fillColor = cc.Color.BLACK.setA(30);\n\t\t\t// ctx.fillRect(5, 5, this.hotZoneBg.width*this.hotZoneBg.scaleX, this.hotZoneBg.height * this.hotZoneBg.scaleY);\n\t\t\tctx.fillRect(-bgWhite.width / 2 + 8 / bgWhite.scaleX * this.hotZoneBg.scale, -bgWhite.height / 2 - 8 / bgWhite.scaleX * this.hotZoneBg.scale, bgWhite.width, bgWhite.height);\n\t\t\tctx.fill();\n\n\t\t\tshadowNode.zIndex = 1;\n\t\t\tbgWhite.zIndex = 2;\n\n\t\t\tbgBottom.y = -frameSize.height / 2 * this._cocosScale - 15 * bgBottom.scaleY;\n\n\t\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\t\tif (item.gIdx == '0') {\n\t\t\t\t\tthis.setOneCircle(item);\n\t\t\t\t} else if (item.gIdx == '1') {\n\t\t\t\t\tthis.setOnePic(item);\n\t\t\t\t} else if (item.gIdx == '2') {\n\t\t\t\t\tthis.setOneAnima(item);\n\t\t\t\t}\n\t\t\t});\n\n\t\t});\n\n\t},\n\n\taddMask(node) {\n\t\tconst mask = node.addComponent(cc.Mask);\n\t\tmask.type = cc.Mask.Type.RECT;\n\t},\n\n\tinitBottomPart() {\n\n\t\tconst bgBottom = cc.find('Canvas/bgBottom');\n\t\tconst script = bgBottom.getComponent('bgBottom');\n\n\t\tconst picArr = [];\n\t\tthis.data.hotZoneItemArr.forEach((item) => {\n\t\t\tif (item.gIdx == '0') {\n\t\t\t\tpicArr.push(item);\n\t\t\t}\n\t\t});\n\t\tscript.setItemData(picArr);\n\t},\n\n\n\tsetOneAnima(data) {\n\n\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\tthis.hotZoneBg.addChild(rectNode);\n\n\n\t\tconst ctx = rectNode.addComponent(cc.Graphics);\n\t\t// 红色矩形\n\t\tctx.lineWidth = 4;\n\t\tctx.strokeColor = cc.Color.BLACK;\n\t\tctx.fillColor = cc.Color.WHITE.setA(100);\n\n\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\tif (this.data.bgItem.isShowDebugLine) {\n\t\t\tctx.rect(0, 0, rectNode.width, rectNode.height);\n\t\t}\n\t\tctx.stroke();\n\t\tctx.fill();\n\n\n\n\t\tconst animaNode = new cc.Node();\n\t\tanimaNode.name = 'anima_' + data.index;\n\t\tthis.hotZoneBg.addChild(animaNode);\n\n\t\t// rectNode.addChild(animaNode);\n\t\t// animaNode.x = rectNode.width / 2;\n\t\t// animaNode.y = rectNode.height / 2;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tanimaNode.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\n\t\tconst dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst image = data.texPngData.url//\"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\";\n\t\tconst ske = data.skeJsonData.url//\"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\";\n\t\tconst atlas = data.texJsonData.url//\"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\";\n\t\tcc.loader.load(image, (error, texture) => {\n\n\t\t\tcc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {\n\n\t\t\t\tcc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {\n\n\t\t\t\t\tconst atlas = new dragonBones.DragonBonesAtlasAsset();\n\t\t\t\t\tatlas.atlasJson = atlasJson;\n\t\t\t\t\tatlas.texture = texture;\n\n\t\t\t\t\tconst asset = new dragonBones.DragonBonesAsset();\n\t\t\t\t\tasset.dragonBonesJson = dragonBonesJson;\n\n\t\t\t\t\tdragonDisplay.dragonAtlasAsset = atlas;\n\t\t\t\t\tdragonDisplay.dragonAsset = asset;\n\n\t\t\t\t\tlet json = JSON.parse(asset.dragonBonesJson);\n\t\t\t\t\tlet armatures = json[\"armature\"];\n\t\t\t\t\tconsole.log('armatures: ', armatures);\n\t\t\t\t\tlet armatureNames = [];\n\t\t\t\t\tfor (let i = 0; i < armatures.length; i++) {\n\t\t\t\t\t\tarmatureNames.push(armatures[i].name);\n\t\t\t\t\t}\n\t\t\t\t\t// console.log('armatureNames: ', armatureNames);\n\t\t\t\t\tif (armatureNames.length > 0) {\n\t\t\t\t\t\tlet defaultArmatureName = armatureNames[0];\n\t\t\t\t\t\tdragonDisplay.armatureName = defaultArmatureName;\n\t\t\t\t\t\t// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);\n\t\t\t\t\t\tlet defaultArmature = armatures[0];\n\t\t\t\t\t\tlet animations = defaultArmature.animation;\n\t\t\t\t\t\tlet animationNames = [];\n\t\t\t\t\t\tfor (let i = 0; i < animations.length; i++) {\n\t\t\t\t\t\t\tanimationNames.push(animations[i].name);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trectNode.addComponent(cc.Button);\n\t\t\t\t\t\trectNode.on('click', () => {\n\t\t\t\t\t\t\tif (rectNode.isClicked) {\n\t\t\t\t\t\t\t\t// return;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trectNode.isClicked = true;\n\t\t\t\t\t\t\tconsole.log('clicked');\n\n\t\t\t\t\t\t\tif (animaNode.audioClip) {\n\t\t\t\t\t\t\t\tcc.audioEngine.stopAllEffects();\n\t\t\t\t\t\t\t\tcc.audioEngine.playEffect(animaNode.audioClip, false, 0.8);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (animationNames.length > 0) {\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation(animationNames[0], 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t},\n\n\n\tsetOnePic(data) {\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst picNode = new cc.Node();\n\t\tpicNode.data = data;\n\t\tthis.hotZoneBg.addChild(picNode);\n\n\t\tcc.loader.load({url: data.pic_url}, (err, img) => {\n\n\t\t\tconst spr = picNode.addComponent(cc.Sprite);\n\t\t\tspr.spriteFrame = new cc.SpriteFrame(img)\n\n\t\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\t\tpicNode.width = data.rect.width * scale;\n\t\t\tpicNode.height = data.rect.height * scale;\n\t\t\tpicNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\t\tpicNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\t\tpicNode.anchorX = picNode.anchorY = 0;\n\n\t\t\tif (data.audio_url) {\n\t\t\t\tthis.addPicAudio(picNode);\n\t\t\t}\n\t\t});\n\n\t},\n\n\taddPicAudio(picNode) {\n\t\tconst data = picNode.data;\n\t\t\n\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\tpicNode.audioClip = audioClip;\n\t\t});\n\n\t\tpicNode.addComponent(cc.Button);\n\t\tpicNode.on('click', () => {\n\t\t\t\tif (picNode.audioClip) {\n\t\t\t\t\tcc.audioEngine.stopAllEffects();\n\t\t\t\t\tcc.audioEngine.playEffect(picNode.audioClip, false, 0.8);\n\t\t\t\t}\n\t\t});\n\t},\n\n\tsetOneCircle(data) {\n\t\tconst rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;\n\n\t\tconst rectNode = new cc.Node();\n\t\trectNode.name = 'rect' + data.index;\n\t\trectNode.data = data;\n\t\tthis.hotZoneBg.addChild(rectNode);\n\n\n\t\tconst scale = rate / this.hotZoneBg.scaleY;\n\n\t\trectNode.width = data.rect.width * scale;\n\t\trectNode.height = data.rect.height * scale;\n\t\trectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;\n\t\trectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;\n\n\t\trectNode.anchorX = rectNode.anchorY = 0;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tdata.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\t\trectNode.addComponent(cc.Button);\n\t\trectNode.on('click', () => {\n\t\t\tthis.showCircle(rectNode);\n\t\t});\n\n\n\n\n\n\t\tconst animaNode = new cc.Node();\n\t\tanimaNode.name = 'anima_' + data.index;\n\t\tthis.hotZoneBg.addChild(animaNode);\n\t\tdata.animaNode = animaNode;\n\n\n\t\tif (data.audio_url) {\n\t\t\tcc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {\n\t\t\t\tanimaNode.audioClip = audioClip;\n\t\t\t});\n\t\t}\n\n\n\t\tconst dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);\n\n\t\tconst image = data.texPngData.url//\"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png\";\n\t\tconst ske = data.skeJsonData.url//\"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json\";\n\t\tconst atlas = data.texJsonData.url//\"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json\";\n\t\tcc.loader.load(image, (error, texture) => {\n\n\t\t\tcc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {\n\n\t\t\t\tcc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {\n\n\t\t\t\t\tconst atlas = new dragonBones.DragonBonesAtlasAsset();\n\t\t\t\t\tatlas.atlasJson = atlasJson;\n\t\t\t\t\tatlas.texture = texture;\n\n\t\t\t\t\tconst asset = new dragonBones.DragonBonesAsset();\n\t\t\t\t\tasset.dragonBonesJson = dragonBonesJson;\n\n\t\t\t\t\tdragonDisplay.dragonAtlasAsset = atlas;\n\t\t\t\t\tdragonDisplay.dragonAsset = asset;\n\n\t\t\t\t\tlet json = JSON.parse(asset.dragonBonesJson);\n\t\t\t\t\tlet armatures = json[\"armature\"];\n\t\t\t\t\tconsole.log('armatures: ', armatures);\n\t\t\t\t\tlet armatureNames = [];\n\t\t\t\t\tfor (let i = 0; i < armatures.length; i++) {\n\t\t\t\t\t\tarmatureNames.push(armatures[i].name);\n\t\t\t\t\t}\n\t\t\t\t\t// console.log('armatureNames: ', armatureNames);\n\t\t\t\t\tif (armatureNames.length > 0) {\n\t\t\t\t\t\tlet defaultArmatureName = armatureNames[0];\n\t\t\t\t\t\tdragonDisplay.armatureName = defaultArmatureName;\n\t\t\t\t\t\t// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);\n\t\t\t\t\t\tlet defaultArmature = armatures[0];\n\t\t\t\t\t\tlet animations = defaultArmature.animation;\n\t\t\t\t\t\tlet animationNames = [];\n\t\t\t\t\t\tfor (let i = 0; i < animations.length; i++) {\n\t\t\t\t\t\t\tanimationNames.push(animations[i].name);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// rectNode.addComponent(cc.Button);\n\t\t\t\t\t\t// rectNode.on('click', () => {\n\t\t\t\t\t\tanimaNode.showAnima = () => {\n\t\t\t\t\t\t\tif (rectNode.isClicked) {\n\t\t\t\t\t\t\t\t// return;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trectNode.isClicked = true;\n\t\t\t\t\t\t\tconsole.log('clicked');\n\n\t\t\t\t\t\t\tif (animaNode.audioClip) {\n\t\t\t\t\t\t\t\tcc.audioEngine.stopAllEffects();\n\t\t\t\t\t\t\t\tcc.audioEngine.playEffect(animaNode.audioClip, false, 0.8);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (animationNames.length > 0) {\n\t\t\t\t\t\t\t\tdragonDisplay.playAnimation(animationNames[0], 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t},\n\n\t_circle: null,\n\tinitCircle() {\n\n\t\tthis._circle = cc.find('Canvas/circle');\n\t\tthis._circle.active = false;\n\t\tthis._circle.zIndex = 12;\n\t},\n\n\tshowCircle(node) {\n\t\tconsole.log(' in showCircle');\n\n\t\tif (node == this._circle.itemNode) {\n\n\t\t\tnode.data.animaNode.showAnima();\n\t\t\t// if (node.data.audioClip) {\n\t\t\t// \tcc.audioEngine.stopAll();\n\t\t\t// \tcc.audioEngine.playEffect(node.data.audioClip, false, 0.8);\n\t\t\t// }\n\t\t\tthis.hideCircle();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._circle.itemNode = node;\n\n\t\tnode.x += node.width / 2;\n\t\tnode.y += node.height / 2;\n\t\tconst rate = getScaleRateBy2Node(this._circle, node);\n\t\tconst pos = localPosTolocalPos(this._circle, node);\n\t\tnode.x -= node.width / 2;\n\t\tnode.y -= node.height / 2;\n\n\t\tthis._circle.scale *= rate;\n\t\tthis._circle.scale *= (5/4);\n\n\t\tthis._circle.x = pos.x;\n\t\tthis._circle.y = pos.y;\n\n\t\tthis._circle.active = true;\n\n\t\tthis._circle.opacity = 0;\n\t\tcc.tween(this._circle)\n\t\t\t.to(1, {opacity: 255}, {easing: 'cubicOut'})\n\t\t\t.start();\n\n\t},\n\n\tinitListener() {\n\t\tconst canvas = cc.find('Canvas');\n\t\tcanvas.addComponent(cc.Button);\n\t\tcanvas.on('click', () => {\n\t\t\tthis.hideCircle();\n\t\t});\n\t},\n\n\thideCircle() {\n\t\tthis._circle.itemNode = null;\n\t\tcc.tween(this._circle)\n\t\t\t.to(1, {opacity: 0}, {easing: 'cubicOut'})\n\t\t\t.start();\n\t}\n\n\n\t// update (dt) {},\n});\n"]}
\ No newline at end of file \ No newline at end of file
No preview for this file type
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
bl@^1.0.0:
version "1.2.3"
resolved "https://registry.npm.taobao.org/bl/download/bl-1.2.3.tgz?cache=0&sync_timestamp=1599194096787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
integrity sha1-Ho3YAULqyA1xWMnczAR/tiDgNec=
dependencies:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
integrity sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=
buffer-alloc@^1.2.0:
version "1.2.0"
resolved "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
integrity sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=
dependencies:
buffer-alloc-unsafe "^1.1.0"
buffer-fill "^1.0.0"
buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
compressing@^1.5.0:
version "1.5.1"
resolved "https://registry.npm.taobao.org/compressing/download/compressing-1.5.1.tgz#d031a3311b8c2ed6561a8431671d5a844540482d"
integrity sha1-0DGjMRuMLtZWGoQxZx1ahEVASC0=
dependencies:
flushwritable "^1.0.0"
get-ready "^1.0.0"
iconv-lite "^0.5.0"
mkdirp "^0.5.1"
pump "^3.0.0"
streamifier "^0.1.1"
tar-stream "^1.5.2"
yauzl "^2.7.0"
yazl "^2.4.2"
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=
dependencies:
once "^1.4.0"
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
dependencies:
pend "~1.2.0"
flushwritable@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/flushwritable/download/flushwritable-1.0.0.tgz#3e328d8fde412ad47e738e3be750b4d290043498"
integrity sha1-PjKNj95BKtR+c44751C00pAENJg=
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha1-a+Dem+mYzhavivwkSXue6bfM2a0=
get-ready@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/get-ready/download/get-ready-1.0.0.tgz#f91817f1e9adecfea13a562adfc8de883ab34782"
integrity sha1-+RgX8emt7P6hOlYq38jeiDqzR4I=
iconv-lite@^0.5.0:
version "0.5.2"
resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.5.2.tgz?cache=0&sync_timestamp=1594184325364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8"
integrity sha1-r21ijcz7RjtzZNl/cV5LdLjIwrg=
dependencies:
safer-buffer ">= 2.1.2 < 3"
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=
mkdirp@^0.5.1:
version "0.5.5"
resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=
dependencies:
minimist "^1.2.5"
once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I=
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
readable-stream@^2.3.0, readable-stream@^2.3.5:
version "2.3.7"
resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
safe-buffer@^5.1.1:
version "5.2.1"
resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0=
"safer-buffer@>= 2.1.2 < 3":
version "2.1.2"
resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=
streamifier@^0.1.1:
version "0.1.1"
resolved "https://registry.npm.taobao.org/streamifier/download/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f"
integrity sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=
dependencies:
safe-buffer "~5.1.0"
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
integrity sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=
dependencies:
bl "^1.0.0"
buffer-alloc "^1.2.0"
end-of-stream "^1.0.0"
fs-constants "^1.0.0"
readable-stream "^2.3.0"
to-buffer "^1.1.1"
xtend "^4.0.0"
to-buffer@^1.1.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
integrity sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA=
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
wrappy@1:
version "1.0.2"
resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
xtend@^4.0.0:
version "4.0.2"
resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=
yauzl@^2.7.0:
version "2.10.0"
resolved "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
dependencies:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
yazl@^2.4.2:
version "2.5.1"
resolved "https://registry.npm.taobao.org/yazl/download/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35"
integrity sha1-o9ZdPdZZpbCTeFDoYJ8i//orXDU=
dependencies:
buffer-crc32 "~0.2.3"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment