(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Script/Block.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, '2bf4dXY+rJG37abLKiCEh7s', 'Block'); // Script/Block.ts "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var GameData_1 = require("./GameData"); var GameManager_1 = require("./GameManager"); var Notification_1 = require("./tool/Notification"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var NewClass = /** @class */ (function (_super) { __extends(NewClass, _super); function NewClass() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.label = null; _this.text = 'hello'; return _this; } // LIFE-CYCLE CALLBACKS: NewClass.prototype.onLoad = function () { this.node.getComponent(cc.PolygonCollider).enabled = true; this.speed = 10; this.num = 0; this.move = false; if (this.node.name.length > 6) { this.num = parseInt(this.node.name.substring(5, 7)); } else this.num = parseInt(this.node.name.substring(5, 6)); this.speed = GameData_1.default._instance.BLOCK_INFO[this.num - 1].speed; this.init(); }; NewClass.prototype.start = function () { }; NewClass.prototype.init = function () { var _this = this; this.getSpeed(); if (this.num > GameData_1.default._instance.GM_INFO.blockScale) { if (this.speed < GameData_1.default._instance.LEVEL_INFO.slowSpeed) this.speed = GameData_1.default._instance.LEVEL_INFO.slowSpeed; } else { if (this.speed < GameData_1.default._instance.LEVEL_INFO.fastSpeed) this.speed = GameData_1.default._instance.LEVEL_INFO.fastSpeed; } if (this.num != 13 && !GameData_1.default._instance.GM_INFO.probation) { GameData_1.default._instance.CLICK_DATA.block = this.num; GameData_1.default._instance.CLICK_DATA.speed = this.speed; this.getDifficulty(); } else { this.node.getComponent(cc.PolygonCollider).enabled = false; this.node.getComponent(cc.BoxCollider).enabled = false; GameData_1.default._instance.CLICK_DATA.fakeSpeed = this.speed; } this.move = true; this.tween = cc.tween(this.node) .to(this.speed, { x: -this.node.x }) .call(function () { _this.move = false; }) .start(); }; NewClass.prototype.getSpeed = function () { //先加范围 厚的 var reduceSpeed = GameData_1.default._instance.LEVEL_INFO.reduceSpeed; reduceSpeed = parseInt(Math.random() * reduceSpeed + ""); this.speed = this.speed - reduceSpeed / 10; //最后乘以系数 this.speed = this.speed / GameData_1.default._instance.LEVEL_INFO.speed; this.speed = parseInt(this.speed * 10 + "") / 10; }; NewClass.prototype.getDifficulty = function () { var difficulty1 = 0; var sudu = Math.abs(this.speed - GameManager_1.default._instance.oldSpeed); difficulty1 = (sudu / 10 + 1) * (11 - this.speed); if (difficulty1 <= 1) difficulty1 = 1; else if (difficulty1 >= 7) difficulty1 = 7; var difficulty2 = 0; if (this.node.width < 180) difficulty2 = 0; else if (this.node.width < 199) difficulty2 = 0.5; else difficulty2 = 1; var difficulty3 = 0; if (GameManager_1.default._instance.interfere == true) { difficulty3 = 1; } var difficulty4 = 0; if (this.num > 6) { difficulty4 = 1; } GameManager_1.default._instance.oldSpeed = this.speed; this.difficulty = 0; this.difficulty = difficulty1 + difficulty2 + difficulty3 + difficulty4; this.difficulty = parseInt(this.difficulty * 10 + ""); GameData_1.default._instance.CLICK_DATA.difficulty = this.difficulty / 10; if (GameData_1.default._instance.CLICK_DATA.difficulty > GameData_1.default._instance.GM_INFO.difficultyMax) GameData_1.default._instance.GM_INFO.difficultyMax = GameData_1.default._instance.CLICK_DATA.difficulty; }; NewClass.prototype.setScore = function (fen) { var score = 0; var difficulty = this.difficulty / 10; var layer = GameData_1.default._instance.LEVEL_INFO.layer; var doubleHit = GameData_1.default._instance.LEVEL_INFO.doubleHit; score = parseInt(fen * difficulty * layer * doubleHit + ""); Notification_1.Notification.emit("addScore", score); }; NewClass.prototype.hide = function () { var _this = this; cc.tween(this.node) .to(0.2, { opacity: 0 }) .call(function () { _this.node.active = false; _this.node.removeFromParent(); _this.node = null; }) .start(); }; NewClass.prototype.onCollisionEnter = function (other, self) { if (GameManager_1.default._instance) { if (GameManager_1.default._instance.over == true) { return; } } if (other.node.name == "Player") { var max = self.name.length; var ColliderName = other.name.substring(6, max); if (this.move == true) { if (this.tween) { this.tween.stop(); } } } }; NewClass.prototype.update = function (dt) { }; __decorate([ property(cc.Label) ], NewClass.prototype, "label", void 0); __decorate([ property ], NewClass.prototype, "text", void 0); NewClass = __decorate([ ccclass ], NewClass); return NewClass; }(cc.Component)); exports.default = NewClass; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBa0M7QUFDbEMsNkNBQXdDO0FBQ3hDLG9EQUFtRDtBQUM3QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXdJQztRQXJJRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7O0lBa0kzQixDQUFDO0lBM0hHLHdCQUF3QjtJQUV4Qix5QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3JEOztZQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELHdCQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQsdUJBQUksR0FBSjtRQUFBLGlCQTBCQztRQXpCRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBRyxJQUFJLENBQUMsR0FBRyxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTO2dCQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztTQUNoSDthQUNJO1lBQ0QsSUFBRyxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTO2dCQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztTQUNoSDtRQUNELElBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFDO1lBQ3ZELGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUMvQyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hCO2FBQ0c7WUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2RCxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSztZQUNWLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDbEIsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDO2lCQUMvQixJQUFJLENBQUM7Z0JBQ0YsS0FBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQyxDQUFDO2lCQUNELEtBQUssRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVELDJCQUFRLEdBQVI7UUFDSSxVQUFVO1FBQ1YsSUFBSSxXQUFXLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUM1RCxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsR0FBQyxFQUFFLENBQUM7UUFDekMsUUFBUTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBQyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFDLEVBQUUsQ0FBQztJQUVqRCxDQUFDO0lBRUQsZ0NBQWEsR0FBYjtRQUNJLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsV0FBVyxHQUFHLENBQUMsSUFBSSxHQUFDLEVBQUUsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBRyxXQUFXLElBQUksQ0FBQztZQUFFLFdBQVcsR0FBRyxDQUFDLENBQUM7YUFDaEMsSUFBRyxXQUFXLElBQUksQ0FBQztZQUFFLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRztZQUFFLFdBQVcsR0FBRyxDQUFDLENBQUM7YUFDckMsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHO1lBQUUsV0FBVyxHQUFHLEdBQUcsQ0FBQzs7WUFDNUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBRyxxQkFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFDO1lBQ3ZDLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDbkI7UUFDRCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBQztZQUNaLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDbkI7UUFDRCxxQkFBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsR0FBRyxXQUFXLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxHQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUMsRUFBRSxDQUFDO1FBQzlELElBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUNsRixrQkFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLGtCQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDNUYsQ0FBQztJQUVELDJCQUFRLEdBQVIsVUFBUyxHQUFHO1FBQ1IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLFNBQVMsR0FBRyxrQkFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQ3hELEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVELDJCQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsdUJBQUksR0FBSjtRQUFBLGlCQVNDO1FBUkcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCLEVBQUUsQ0FBQyxHQUFHLEVBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUM7YUFDbkIsSUFBSSxDQUFDO1lBQ0YsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLEtBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QixLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUM7YUFDRCxLQUFLLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCxtQ0FBZ0IsR0FBaEIsVUFBaUIsS0FBa0IsRUFBRSxJQUFpQjtRQUNsRCxJQUFHLHFCQUFXLENBQUMsU0FBUyxFQUFDO1lBQ3JCLElBQUcscUJBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLElBQUksRUFBQztnQkFDbEMsT0FBTzthQUNWO1NBQ0o7UUFDRCxJQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMzQixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBQztnQkFDakIsSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFDO29CQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ3JCO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCx5QkFBTSxHQUFOLFVBQVEsRUFBRTtJQUNWLENBQUM7SUFwSUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzsyQ0FDSTtJQUd2QjtRQURDLFFBQVE7MENBQ2M7SUFOTixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBd0k1QjtJQUFELGVBQUM7Q0F4SUQsQUF3SUMsQ0F4SXFDLEVBQUUsQ0FBQyxTQUFTLEdBd0lqRDtrQkF4SW9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgR2FtZURhdGEgZnJvbSBcIi4vR2FtZURhdGFcIjtcclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vdG9vbC9Ob3RpZmljYXRpb24nO1xyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ld0NsYXNzIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHR3ZWVuOiBjYy5Ud2VlbjxjYy5Ob2RlPjtcclxuICAgIHNwZWVkOiBudW1iZXI7ICAvL+enu+WKqOmAn+W6pu+8jOaXtumXtOWPguaVsO+8jOS9jeenu+S4quWbuuWumlxyXG4gICAgbW92ZTogYm9vbGVhbjsgIC8v5piv5ZCm5Zyo56e75Yqo54q25oCB44CCXHJcbiAgICBudW06IG51bWJlcjtcclxuICAgIGRpZmZpY3VsdHk6IG51bWJlcjtcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuUG9seWdvbkNvbGxpZGVyKS5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNwZWVkID0gMTA7XHJcbiAgICAgICAgdGhpcy5udW0gPSAwO1xyXG4gICAgICAgIHRoaXMubW92ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5uYW1lLmxlbmd0aCA+IDYpe1xyXG4gICAgICAgICAgICB0aGlzLm51bSA9IHBhcnNlSW50KHRoaXMubm9kZS5uYW1lLnN1YnN0cmluZyg1LDcpKVxyXG4gICAgICAgIH1lbHNlICB0aGlzLm51bSA9IHBhcnNlSW50KHRoaXMubm9kZS5uYW1lLnN1YnN0cmluZyg1LDYpKVxyXG4gICAgICAgIHRoaXMuc3BlZWQgPSBHYW1lRGF0YS5faW5zdGFuY2UuQkxPQ0tfSU5GT1t0aGlzLm51bS0xXS5zcGVlZDtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpe1xyXG4gICAgICAgIHRoaXMuZ2V0U3BlZWQoKTtcclxuICAgICAgICBpZih0aGlzLm51bSA+IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmJsb2NrU2NhbGUpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnNwZWVkIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk8uc2xvd1NwZWVkKXRoaXMuc3BlZWQgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GTy5zbG93U3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZih0aGlzLnNwZWVkIDwgR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk8uZmFzdFNwZWVkKXRoaXMuc3BlZWQgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GTy5mYXN0U3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubnVtICE9IDEzICYmICFHYW1lRGF0YS5faW5zdGFuY2UuR01fSU5GTy5wcm9iYXRpb24pe1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQ0xJQ0tfREFUQS5ibG9jayA9IHRoaXMubnVtO1xyXG4gICAgICAgICAgICBHYW1lRGF0YS5faW5zdGFuY2UuQ0xJQ0tfREFUQS5zcGVlZCA9IHRoaXMuc3BlZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGlmZmljdWx0eSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLlBvbHlnb25Db2xsaWRlcikuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KGNjLkJveENvbGxpZGVyKS5lbmFibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19EQVRBLmZha2VTcGVlZCA9IHRoaXMuc3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW92ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50d2VlbiA9IFxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAudG8odGhpcy5zcGVlZCx7eDotdGhpcy5ub2RlLnh9KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICB0aGlzLm1vdmUgPSBmYWxzZTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNwZWVkKCl7XHJcbiAgICAgICAgLy/lhYjliqDojIPlm7QgIOWOmueahFxyXG4gICAgICAgIGxldCByZWR1Y2VTcGVlZCA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPLnJlZHVjZVNwZWVkO1xyXG4gICAgICAgIHJlZHVjZVNwZWVkID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSpyZWR1Y2VTcGVlZCArIFwiXCIpO1xyXG4gICBcclxuICAgICAgICB0aGlzLnNwZWVkID0gdGhpcy5zcGVlZCAtIHJlZHVjZVNwZWVkLzEwO1xyXG4gICAgICAgIC8v5pyA5ZCO5LmY5Lul57O75pWwXHJcbiAgICAgICAgdGhpcy5zcGVlZCA9IHRoaXMuc3BlZWQvR2FtZURhdGEuX2luc3RhbmNlLkxFVkVMX0lORk8uc3BlZWQ7XHJcbiAgICAgICAgdGhpcy5zcGVlZCA9IHBhcnNlSW50KHRoaXMuc3BlZWQqMTAgKyBcIlwiKS8xMDtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlmZmljdWx0eSgpe1xyXG4gICAgICAgIHZhciBkaWZmaWN1bHR5MSA9IDA7XHJcbiAgICAgICAgdmFyIHN1ZHUgPSBNYXRoLmFicyh0aGlzLnNwZWVkIC0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLm9sZFNwZWVkKTtcclxuICAgICAgICBkaWZmaWN1bHR5MSA9IChzdWR1LzEwKzEpKigxMS10aGlzLnNwZWVkKTtcclxuICAgICAgICBpZihkaWZmaWN1bHR5MSA8PSAxKSBkaWZmaWN1bHR5MSA9IDE7XHJcbiAgICAgICAgZWxzZSBpZihkaWZmaWN1bHR5MSA+PSA3KSBkaWZmaWN1bHR5MSA9IDc7XHJcbiAgICAgICAgdmFyIGRpZmZpY3VsdHkyID0gMDtcclxuICAgICAgICBpZih0aGlzLm5vZGUud2lkdGggPCAxODApIGRpZmZpY3VsdHkyID0gMDtcclxuICAgICAgICBlbHNlIGlmKHRoaXMubm9kZS53aWR0aCA8IDE5OSkgZGlmZmljdWx0eTIgPSAwLjU7XHJcbiAgICAgICAgZWxzZSBkaWZmaWN1bHR5MiA9IDE7XHJcbiAgICAgICAgdmFyIGRpZmZpY3VsdHkzID0gMDtcclxuICAgICAgICBpZihHYW1lTWFuYWdlci5faW5zdGFuY2UuaW50ZXJmZXJlID09IHRydWUpe1xyXG4gICAgICAgICAgICBkaWZmaWN1bHR5MyA9IDE7XHJcbiAgICAgICAgfSBcclxuICAgICAgICB2YXIgZGlmZmljdWx0eTQgPSAwO1xyXG4gICAgICAgIGlmKHRoaXMubnVtID4gNil7XHJcbiAgICAgICAgICAgIGRpZmZpY3VsdHk0ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgR2FtZU1hbmFnZXIuX2luc3RhbmNlLm9sZFNwZWVkID0gdGhpcy5zcGVlZDtcclxuICAgICAgICB0aGlzLmRpZmZpY3VsdHkgID0gMDtcclxuICAgICAgICB0aGlzLmRpZmZpY3VsdHkgPSBkaWZmaWN1bHR5MSArIGRpZmZpY3VsdHkyICsgZGlmZmljdWx0eTMgKyBkaWZmaWN1bHR5NDtcclxuICAgICAgICB0aGlzLmRpZmZpY3VsdHkgID0gcGFyc2VJbnQodGhpcy5kaWZmaWN1bHR5ICoxMCArIFwiXCIpO1xyXG4gICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5DTElDS19EQVRBLmRpZmZpY3VsdHkgPSB0aGlzLmRpZmZpY3VsdHkvMTA7XHJcbiAgICAgICAgaWYoR2FtZURhdGEuX2luc3RhbmNlLkNMSUNLX0RBVEEuZGlmZmljdWx0eSA+IEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmRpZmZpY3VsdHlNYXgpXHJcbiAgICAgICAgICAgIEdhbWVEYXRhLl9pbnN0YW5jZS5HTV9JTkZPLmRpZmZpY3VsdHlNYXggPSBHYW1lRGF0YS5faW5zdGFuY2UuQ0xJQ0tfREFUQS5kaWZmaWN1bHR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNjb3JlKGZlbil7XHJcbiAgICAgICAgbGV0IHNjb3JlID0gMDtcclxuICAgICAgICBsZXQgZGlmZmljdWx0eSA9IHRoaXMuZGlmZmljdWx0eSAvIDEwO1xyXG4gICAgICAgIGxldCBsYXllciA9IEdhbWVEYXRhLl9pbnN0YW5jZS5MRVZFTF9JTkZPLmxheWVyO1xyXG4gICAgICAgIGxldCBkb3VibGVIaXQgPSBHYW1lRGF0YS5faW5zdGFuY2UuTEVWRUxfSU5GTy5kb3VibGVIaXQ7XHJcbiAgICAgICAgc2NvcmUgPSBwYXJzZUludChmZW4gKiBkaWZmaWN1bHR5ICogbGF5ZXIgKiBkb3VibGVIaXQgKyBcIlwiKTtcclxuICAgICAgICBOb3RpZmljYXRpb24uZW1pdChcImFkZFNjb3JlXCIsc2NvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGUoKXtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUpXHJcbiAgICAgICAgLnRvKDAuMix7b3BhY2l0eTowfSlcclxuICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUgPSBudWxsO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db2xsaXNpb25FbnRlcihvdGhlcjogY2MuQ29sbGlkZXIsIHNlbGY6IGNjLkNvbGxpZGVyKSB7XHJcbiAgICAgICAgaWYoR2FtZU1hbmFnZXIuX2luc3RhbmNlKXtcclxuICAgICAgICAgICAgaWYoR2FtZU1hbmFnZXIuX2luc3RhbmNlLm92ZXIgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYob3RoZXIubm9kZS5uYW1lID09IFwiUGxheWVyXCIpe1xyXG4gICAgICAgICAgICBsZXQgbWF4ID0gc2VsZi5uYW1lLmxlbmd0aDtcclxuICAgICAgICAgICAgbGV0IENvbGxpZGVyTmFtZSA9IG90aGVyLm5hbWUuc3Vic3RyaW5nKDYsbWF4KTtcclxuICAgICAgICAgICAgaWYodGhpcy5tb3ZlID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy50d2Vlbil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50d2Vlbi5zdG9wKCk7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICB9XHJcbn1cclxuIl19