(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/script/plat/PlatformFenYouH5.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, '57a479bEUdITKzRvN6Dr830', 'PlatformFenYouH5'); // script/plat/PlatformFenYouH5.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 __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); /** * 止零h5版本 sdk配置 game_id h5_cWFlTwvg2aLP2GUA game_secret ak_LGOfbtYUmEq7nLvh1gFRN0pDdxw3xPDJ 微信内跳转入口是 https://www.fenyouwangluo.com/sdkh5/weixin/route.html?game_id=h5_AXDpKLjJJoqQNAcn 引入SDK:在html中添加一个script标签就可以了 */ var gameMethod_1 = require("../common/gameMethod"); var Xyc_1 = require("../common/Xyc"); var Config_1 = require("../Config"); var EventConst_1 = require("../data/const/EventConst"); var TypeConst_1 = require("../data/const/TypeConst"); var GameDataCenter_1 = require("../data/GameDataCenter"); var GameController_1 = require("../GameController"); var UIHelp_1 = require("../logic/ui/UIHelp"); var EventMng_1 = require("../manager/EventMng"); var PlatformBase_1 = require("./PlatformBase"); var PlatformFenYouH5 = /** @class */ (function (_super) { __extends(PlatformFenYouH5, _super); function PlatformFenYouH5() { var _this = _super.call(this) || this; cc.game.on(cc.game.EVENT_SHOW, function () { if (_this.isGoPay) { _this.isGoPay = false; if (Config_1.default.paySuccAdokId != null) { clearInterval(Config_1.default.paySuccAdokId); Config_1.default.paySuccAdokId = null; } Config_1.default.paySuccAdokIndex = 0; Config_1.default.paySuccAdokId = setInterval(function () { Config_1.default.paySuccAdokIndex++; if (Config_1.default.paySuccAdokIndex >= 5) { clearInterval(Config_1.default.paySuccAdokId); Config_1.default.paySuccAdokId = null; } GameDataCenter_1.default.time.sendAdok(); }, 1000); } }); return _this; } PlatformFenYouH5.prototype.getQueryString = function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substring(1).match(reg); if (r != null) { return decodeURIComponent(r[2]); } else { return null; } }; PlatformFenYouH5.prototype.showLoginView = function () { var _this = this; // 微信小游戏平台静默登录 wxcb1ddf06f99c2f9e console.log("初始化&登录SDK"); EventMng_1.default.emit(EventConst_1.LoadEvent.LOAD_PROGRESS, 0.25, "login"); try { zlGame.initSdk().then(function (res) { console.log("初始化成功", res); EventMng_1.default.emit(EventConst_1.LoadEvent.LOAD_PROGRESS, 0.75, "login"); var user_id = _this.getQueryString("user_id"); var user_token = _this.getQueryString("user_token"); var game_id = _this.getQueryString("game_id"); var params = { pid: Config_1.default.pid, param: [user_id, user_token, game_id] }; GameController_1.default.network.send(Xyc_1.PlayerLogin.url, params, function (result) { console.log("后段验证返回"); if (result.type != 1) { if (gameMethod_1.gameMethod.isEmpty(result.win) || gameMethod_1.gameMethod.isEmpty(result.win.msgOut)) { GameDataCenter_1.default.plat.showErrDialog(TypeConst_1.GameErrCode.errGamePlatLogin); } return; } EventMng_1.default.emit(EventConst_1.LoadEvent.LOAD_PROGRESS, 1, "login"); if (result.type == 1 && result.platBack) { _this.openId = result.platBack.openid; _this.loginParams = [result.platBack.token]; console.log("后端验证成功", _this.openId); _this.login(); } else { console.log("PlayerLogin.url 返回数据异常"); if (gameMethod_1.gameMethod.isEmpty(result.win) || gameMethod_1.gameMethod.isEmpty(result.win.msgOut)) { GameDataCenter_1.default.plat.showErrDialog(TypeConst_1.GameErrCode.errGamePlatLogin); } } }); }); } catch (error) { UIHelp_1.default.ShowTips("----" + error); UIHelp_1.default.ShowDialog({ content: error }); } }; PlatformFenYouH5.prototype.pay = function (orderId, order10cs, param) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; console.log("===调起zhiling支付"); // UIHelp.ShowTips("调起zhiling支付") var req = { role_id: (_b = (_a = GameDataCenter_1.default.sevBack.userInfo) === null || _a === void 0 ? void 0 : _a.a) === null || _b === void 0 ? void 0 : _b.uuid, role_name: (_d = (_c = GameDataCenter_1.default.sevBack.userInfo) === null || _c === void 0 ? void 0 : _c.a) === null || _d === void 0 ? void 0 : _d.name, zone_id: (_f = (_e = GameDataCenter_1.default.sevBack.userInfo) === null || _e === void 0 ? void 0 : _e.a) === null || _f === void 0 ? void 0 : _f.sid, server_id: (_h = (_g = GameDataCenter_1.default.sevBack.userInfo) === null || _g === void 0 ? void 0 : _g.a) === null || _h === void 0 ? void 0 : _h.sid, server_name: GameDataCenter_1.default.sevBack.qufuList[(_k = (_j = GameDataCenter_1.default.sevBack.userInfo) === null || _j === void 0 ? void 0 : _j.a) === null || _k === void 0 ? void 0 : _k.sid].name, role_level: (_m = (_l = GameDataCenter_1.default.sevBack.userInfo) === null || _l === void 0 ? void 0 : _l.a) === null || _m === void 0 ? void 0 : _m.level, role_vip: 1, game_trade_no: orderId, product_id: param.productId, product_name: param.productName, amount: param.price * 100, extra_params: orderId }; if (Config_1.default.pid == "1310") { req.amount = req.amount / 100; } zlGame.startPay(req).then(function (res) { console.log("创建订单成功:", res); }); }; // 上报角色数据 PlatformFenYouH5.prototype.reportRole = function (event) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r; // • 初始化成功后调⽤. • 进⼊区服、创⻆、⻆⾊等级更新、战⼒更新时调⽤. if (GameDataCenter_1.default.sevBack == null) { return; } if (GameDataCenter_1.default.sevBack.userInfo == null) { return; } console.log("上报角色数据:", event); var onlineTime = 0; if (GameDataCenter_1.default.time.onlineTime > 0) { onlineTime = GameDataCenter_1.default.time.sevTime - GameDataCenter_1.default.time.onlineTime; } var eventName = ""; switch (event) { case TypeConst_1.ReportRoleType.create: eventName = "create_role"; break; // case ReportRoleType.delete: // eventName = "delete_user" // break; case TypeConst_1.ReportRoleType.levelup: eventName = "role_upgrade"; break; case TypeConst_1.ReportRoleType.offline: eventName = "role_upgrade"; break; case TypeConst_1.ReportRoleType.online: eventName = "role_upgrade"; break; case TypeConst_1.ReportRoleType.other: eventName = "role_upgrade"; break; default: break; } var req = { role_id: (_b = (_a = GameDataCenter_1.default.sevBack.userInfo) === null || _a === void 0 ? void 0 : _a.a) === null || _b === void 0 ? void 0 : _b.uuid, role_name: (_d = (_c = GameDataCenter_1.default.sevBack.userInfo) === null || _c === void 0 ? void 0 : _c.a) === null || _d === void 0 ? void 0 : _d.name, zone_id: (_f = (_e = GameDataCenter_1.default.sevBack.userInfo) === null || _e === void 0 ? void 0 : _e.a) === null || _f === void 0 ? void 0 : _f.sid, server_id: (_h = (_g = GameDataCenter_1.default.sevBack.userInfo) === null || _g === void 0 ? void 0 : _g.a) === null || _h === void 0 ? void 0 : _h.sid, server_name: GameDataCenter_1.default.sevBack.qufuList[(_k = (_j = GameDataCenter_1.default.sevBack.userInfo) === null || _j === void 0 ? void 0 : _j.a) === null || _k === void 0 ? void 0 : _k.sid].name, role_level: (_m = (_l = GameDataCenter_1.default.sevBack.userInfo) === null || _l === void 0 ? void 0 : _l.a) === null || _m === void 0 ? void 0 : _m.level, role_vip: 1, avatar: (_p = (_o = GameDataCenter_1.default.sevBack.userInfo) === null || _o === void 0 ? void 0 : _o.a) === null || _p === void 0 ? void 0 : _p.head, nickname: (_r = (_q = GameDataCenter_1.default.sevBack.userInfo) === null || _q === void 0 ? void 0 : _q.a) === null || _r === void 0 ? void 0 : _r.name }; // set_userinfo 设置⻆⾊基本信息,如头像、昵称 zlGame.reportRoleInfo(eventName, req).then(function (res) { console.log("数据上报成功:", event, eventName, res); UIHelp_1.default.ShowTips("数据上报成功:" + eventName); }); }; PlatformFenYouH5.prototype.openService = function () { // zlGame.showCustomerService().then(res => { // console.log("展⽰客服界⾯成功", res) // }) // FguiMgr.Instance.openUI(KeFuCodeView, ViewZorder.POP); }; return PlatformFenYouH5; }(PlatformBase_1.default)); exports.default = PlatformFenYouH5; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvcGxhdC9QbGF0Zm9ybUZlbllvdUg1LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxtREFBa0Q7QUFDbEQscUNBQTZEO0FBRTdELG9DQUErQjtBQUMvQix1REFBcUQ7QUFDckQscURBQXVGO0FBQ3ZGLHlEQUFvRDtBQUNwRCxvREFBK0M7QUFDL0MsNkNBQXdDO0FBQ3hDLGdEQUEyQztBQUMzQywrQ0FBMEM7QUFFMUM7SUFBOEMsb0NBQVk7SUFFdEQ7UUFBQSxZQUNJLGlCQUFPLFNBbUJWO1FBbEJHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzNCLElBQUksS0FBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxLQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtnQkFDcEIsSUFBSSxnQkFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUU7b0JBQzlCLGFBQWEsQ0FBQyxnQkFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO29CQUNuQyxnQkFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7aUJBQzlCO2dCQUNELGdCQUFNLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFBO2dCQUMzQixnQkFBTSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7b0JBQy9CLGdCQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtvQkFDekIsSUFBSSxnQkFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsRUFBRTt3QkFDOUIsYUFBYSxDQUFDLGdCQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7d0JBQ25DLGdCQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtxQkFDOUI7b0JBQ0Qsd0JBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7Z0JBQ2xDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUNY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STtZQUNoRCxRQUFRLGNBQUUsd0JBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSwwQ0FBRSxDQUFDLDBDQUFFLElBQUk7U0FDckQsQ0FBQTtRQUVELCtCQUErQjtRQUMvQixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxHQUFHO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDN0MsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQzFDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUNELHNDQUFXLEdBQVg7UUFDSSw2Q0FBNkM7UUFDN0MsbUNBQW1DO1FBQ25DLEtBQUs7UUFDTCx5REFBeUQ7SUFDN0QsQ0FBQztJQUNMLHVCQUFDO0FBQUQsQ0FoS0EsQUFnS0MsQ0FoSzZDLHNCQUFZLEdBZ0t6RCIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog5q2i6Zu2aDXniYjmnKwgc2Rr6YWN572uXG5nYW1lX2lkICBoNV9jV0ZsVHd2ZzJhTFAyR1VBXG5nYW1lX3NlY3JldCAgIGFrX0xHT2ZidFlVbUVxN25MdmgxZ0ZSTjBwRGR4dzN4UERKXG5cbuW+ruS/oeWGhei3s+i9rOWFpeWPo+aYr1xuaHR0cHM6Ly93d3cuZmVueW91d2FuZ2x1by5jb20vc2RraDUvd2VpeGluL3JvdXRlLmh0bWw/Z2FtZV9pZD1oNV9BWERwS0xqSkpvcVFOQWNuXG5cbuW8leWFpVNESzrlnKhodG1s5Lit5re75Yqg5LiA5Liqc2NyaXB05qCH562+5bCx5Y+v5Lul5LqGXG48c2NyaXB0IHNyYz1cImh0dHBzOi8vd3d3LmZlbnlvdXdhbmdsdW8uY29tL2g1X3Nka192MS5qc1wiPjwvc2NyaXB0PlxuICovXG5pbXBvcnQgeyBnYW1lTWV0aG9kIH0gZnJvbSBcIi4uL2NvbW1vbi9nYW1lTWV0aG9kXCI7XG5pbXBvcnQgeyBQbGF5ZXJMb2dpbiwgUGxheWVyTG9naW5QcmFtIH0gZnJvbSBcIi4uL2NvbW1vbi9YeWNcIjtcbmltcG9ydCB7IFNldkJhY2sgfSBmcm9tIFwiLi4vY29tbW9uL1h5c1wiO1xuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi4vQ29uZmlnXCI7XG5pbXBvcnQgeyBMb2FkRXZlbnQgfSBmcm9tIFwiLi4vZGF0YS9jb25zdC9FdmVudENvbnN0XCI7XG5pbXBvcnQgeyBHYW1lRXJyQ29kZSwgUGF5UHJvZHVjdFBhcmFtLCBSZXBvcnRSb2xlVHlwZSB9IGZyb20gXCIuLi9kYXRhL2NvbnN0L1R5cGVDb25zdFwiO1xuaW1wb3J0IEdhbWVEYXRhQ2VudGVyIGZyb20gXCIuLi9kYXRhL0dhbWVEYXRhQ2VudGVyXCI7XG5pbXBvcnQgR2FtZUNvbnRyb2xsZXIgZnJvbSBcIi4uL0dhbWVDb250cm9sbGVyXCI7XG5pbXBvcnQgVUlIZWxwIGZyb20gXCIuLi9sb2dpYy91aS9VSUhlbHBcIjtcbmltcG9ydCBFdmVudE1uZyBmcm9tIFwiLi4vbWFuYWdlci9FdmVudE1uZ1wiO1xuaW1wb3J0IFBsYXRmb3JtQmFzZSBmcm9tIFwiLi9QbGF0Zm9ybUJhc2VcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGxhdGZvcm1GZW5Zb3VINSBleHRlbmRzIFBsYXRmb3JtQmFzZSB7XG4gICAgaXNHb1BheTogYm9vbGVhblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIGNjLmdhbWUub24oY2MuZ2FtZS5FVkVOVF9TSE9XLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0dvUGF5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0dvUGF5ID0gZmFsc2VcbiAgICAgICAgICAgICAgICBpZiAoQ29uZmlnLnBheVN1Y2NBZG9rSWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKENvbmZpZy5wYXlTdWNjQWRva0lkKVxuICAgICAgICAgICAgICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJZCA9IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQ29uZmlnLnBheVN1Y2NBZG9rSW5kZXggPSAwXG4gICAgICAgICAgICAgICAgQ29uZmlnLnBheVN1Y2NBZG9rSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIENvbmZpZy5wYXlTdWNjQWRva0luZGV4KytcbiAgICAgICAgICAgICAgICAgICAgaWYgKENvbmZpZy5wYXlTdWNjQWRva0luZGV4ID49IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoQ29uZmlnLnBheVN1Y2NBZG9rSWQpXG4gICAgICAgICAgICAgICAgICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJZCA9IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBHYW1lRGF0YUNlbnRlci50aW1lLnNlbmRBZG9rKClcbiAgICAgICAgICAgICAgICB9LCAxMDAwKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbiAgICBwcml2YXRlIGdldFF1ZXJ5U3RyaW5nKG5hbWUpIHtcbiAgICAgICAgdmFyIHJlZyA9IG5ldyBSZWdFeHAoXCIoXnwmKVwiICsgbmFtZSArIFwiPShbXiZdKikoJnwkKVwiLCBcImlcIik7XG4gICAgICAgIHZhciByID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkubWF0Y2gocmVnKTtcbiAgICAgICAgaWYgKHIgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyWzJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNob3dMb2dpblZpZXcoKTogdm9pZCB7XG4gICAgICAgIC8vIOW+ruS/oeWwj+a4uOaIj+W5s+WPsOmdmem7mOeZu+W9lSB3eGNiMWRkZjA2Zjk5YzJmOWVcbiAgICAgICAgY29uc29sZS5sb2coXCLliJ3lp4vljJYm55m75b2VU0RLXCIpXG4gICAgICAgIEV2ZW50TW5nLmVtaXQoTG9hZEV2ZW50LkxPQURfUFJPR1JFU1MsIDAuMjUsIFwibG9naW5cIilcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgemxHYW1lLmluaXRTZGsoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLliJ3lp4vljJbmiJDlip9cIiwgcmVzKVxuICAgICAgICAgICAgICAgIEV2ZW50TW5nLmVtaXQoTG9hZEV2ZW50LkxPQURfUFJPR1JFU1MsIDAuNzUsIFwibG9naW5cIilcbiAgICAgICAgICAgICAgICBsZXQgdXNlcl9pZCA9IHRoaXMuZ2V0UXVlcnlTdHJpbmcoXCJ1c2VyX2lkXCIpXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJfdG9rZW4gPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKFwidXNlcl90b2tlblwiKVxuICAgICAgICAgICAgICAgIGxldCBnYW1lX2lkID0gdGhpcy5nZXRRdWVyeVN0cmluZyhcImdhbWVfaWRcIilcblxuICAgICAgICAgICAgICAgIGxldCBwYXJhbXM6IFBsYXllckxvZ2luUHJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGlkOiBDb25maWcucGlkLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbTogW3VzZXJfaWQsIHVzZXJfdG9rZW4sIGdhbWVfaWRdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEdhbWVDb250cm9sbGVyLm5ldHdvcmsuc2VuZChQbGF5ZXJMb2dpbi51cmwsIHBhcmFtcywgKHJlc3VsdDogU2V2QmFjaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWQjuautemqjOivgei/lOWbnlwiKVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnR5cGUgIT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdhbWVNZXRob2QuaXNFbXB0eShyZXN1bHQud2luKSB8fCBnYW1lTWV0aG9kLmlzRW1wdHkocmVzdWx0Lndpbi5tc2dPdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR2FtZURhdGFDZW50ZXIucGxhdC5zaG93RXJyRGlhbG9nKEdhbWVFcnJDb2RlLmVyckdhbWVQbGF0TG9naW4pXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBFdmVudE1uZy5lbWl0KExvYWRFdmVudC5MT0FEX1BST0dSRVNTLCAxLCBcImxvZ2luXCIpXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PSAxICYmIHJlc3VsdC5wbGF0QmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuSWQgPSByZXN1bHQucGxhdEJhY2sub3BlbmlkXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luUGFyYW1zID0gW3Jlc3VsdC5wbGF0QmFjay50b2tlbl1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5ZCO56uv6aqM6K+B5oiQ5YqfXCIsIHRoaXMub3BlbklkKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbigpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlBsYXllckxvZ2luLnVybCDov5Tlm57mlbDmja7lvILluLhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnYW1lTWV0aG9kLmlzRW1wdHkocmVzdWx0LndpbikgfHwgZ2FtZU1ldGhvZC5pc0VtcHR5KHJlc3VsdC53aW4ubXNnT3V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdhbWVEYXRhQ2VudGVyLnBsYXQuc2hvd0VyckRpYWxvZyhHYW1lRXJyQ29kZS5lcnJHYW1lUGxhdExvZ2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBVSUhlbHAuU2hvd1RpcHMoXCItLS0tXCIgKyBlcnJvcilcbiAgICAgICAgICAgIFVJSGVscC5TaG93RGlhbG9nKHsgY29udGVudDogZXJyb3IgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBheShvcmRlcklkOiBzdHJpbmcsIG9yZGVyMTBjczogc3RyaW5nLCBwYXJhbTogUGF5UHJvZHVjdFBhcmFtKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiPT096LCD6LW3emhpbGluZ+aUr+S7mFwiKVxuICAgICAgICAvLyBVSUhlbHAuU2hvd1RpcHMoXCLosIPotbd6aGlsaW5n5pSv5LuYXCIpXG5cbiAgICAgICAgbGV0IHJlcTogeyByb2xlX2lkOiBzdHJpbmcsIHJvbGVfbmFtZTogc3RyaW5nLCB6b25lX2lkOiBzdHJpbmcsIHNlcnZlcl9pZDogc3RyaW5nLCBzZXJ2ZXJfbmFtZTogc3RyaW5nLCByb2xlX2xldmVsOiBudW1iZXIsIHJvbGVfdmlwOiBudW1iZXIsIGdhbWVfdHJhZGVfbm86IHN0cmluZywgcHJvZHVjdF9pZDogc3RyaW5nLCBwcm9kdWN0X25hbWU6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGV4dHJhX3BhcmFtczogc3RyaW5nIH0gPSB7XG4gICAgICAgICAgICByb2xlX2lkOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy51dWlkLFxuICAgICAgICAgICAgcm9sZV9uYW1lOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5uYW1lLFxuICAgICAgICAgICAgem9uZV9pZDogR2FtZURhdGFDZW50ZXIuc2V2QmFjay51c2VySW5mbz8uYT8uc2lkLFxuICAgICAgICAgICAgc2VydmVyX2lkOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5zaWQsXG4gICAgICAgICAgICBzZXJ2ZXJfbmFtZTogR2FtZURhdGFDZW50ZXIuc2V2QmFjay5xdWZ1TGlzdFtHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5zaWRdLm5hbWUsXG4gICAgICAgICAgICByb2xlX2xldmVsOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5sZXZlbCxcbiAgICAgICAgICAgIHJvbGVfdmlwOiAxLFxuICAgICAgICAgICAgZ2FtZV90cmFkZV9ubzogb3JkZXJJZCxcbiAgICAgICAgICAgIHByb2R1Y3RfaWQ6IHBhcmFtLnByb2R1Y3RJZCxcbiAgICAgICAgICAgIHByb2R1Y3RfbmFtZTogcGFyYW0ucHJvZHVjdE5hbWUsXG4gICAgICAgICAgICBhbW91bnQ6IHBhcmFtLnByaWNlICogMTAwLFxuICAgICAgICAgICAgZXh0cmFfcGFyYW1zOiBvcmRlcklkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKENvbmZpZy5waWQgPT0gXCIxMzEwXCIpIHtcbiAgICAgICAgICAgIHJlcS5hbW91bnQgPSByZXEuYW1vdW50IC8gMTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgemxHYW1lLnN0YXJ0UGF5KHJlcSkudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCLliJvlu7rorqLljZXmiJDlip86XCIsIHJlcylcbiAgICAgICAgfSlcbiAgICB9XG4gICAgLy8g5LiK5oql6KeS6Imy5pWw5o2uXG4gICAgcmVwb3J0Um9sZShldmVudDogUmVwb3J0Um9sZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgLy8g4oCiIOWIneWni+WMluaIkOWKn+WQjuiwg+K9pC4g4oCiIOi/m+K8iuWMuuacjeOAgeWIm+K7huOAgeK7huK+iuetiee6p+abtOaWsOOAgeaImOK8kuabtOaWsOaXtuiwg+K9pC5cbiAgICAgICAgaWYgKEdhbWVEYXRhQ2VudGVyLnNldkJhY2sgPT0gbnVsbCkgeyByZXR1cm4gfVxuICAgICAgICBpZiAoR2FtZURhdGFDZW50ZXIuc2V2QmFjay51c2VySW5mbyA9PSBudWxsKSB7IHJldHVybiB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5oql6KeS6Imy5pWw5o2uOlwiLCBldmVudClcbiAgICAgICAgbGV0IG9ubGluZVRpbWUgPSAwXG4gICAgICAgIGlmIChHYW1lRGF0YUNlbnRlci50aW1lLm9ubGluZVRpbWUgPiAwKSB7XG4gICAgICAgICAgICBvbmxpbmVUaW1lID0gR2FtZURhdGFDZW50ZXIudGltZS5zZXZUaW1lIC0gR2FtZURhdGFDZW50ZXIudGltZS5vbmxpbmVUaW1lXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGV2ZW50TmFtZSA9IFwiXCJcbiAgICAgICAgc3dpdGNoIChldmVudCkge1xuICAgICAgICAgICAgY2FzZSBSZXBvcnRSb2xlVHlwZS5jcmVhdGU6XG4gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gXCJjcmVhdGVfcm9sZVwiXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBjYXNlIFJlcG9ydFJvbGVUeXBlLmRlbGV0ZTpcbiAgICAgICAgICAgIC8vICAgICBldmVudE5hbWUgPSBcImRlbGV0ZV91c2VyXCJcbiAgICAgICAgICAgIC8vICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUmVwb3J0Um9sZVR5cGUubGV2ZWx1cDpcbiAgICAgICAgICAgICAgICBldmVudE5hbWUgPSBcInJvbGVfdXBncmFkZVwiXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFJlcG9ydFJvbGVUeXBlLm9mZmxpbmU6XG4gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gXCJyb2xlX3VwZ3JhZGVcIlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSZXBvcnRSb2xlVHlwZS5vbmxpbmU6XG4gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gXCJyb2xlX3VwZ3JhZGVcIlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSZXBvcnRSb2xlVHlwZS5vdGhlcjpcbiAgICAgICAgICAgICAgICBldmVudE5hbWUgPSBcInJvbGVfdXBncmFkZVwiXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXEgPSB7XG4gICAgICAgICAgICByb2xlX2lkOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy51dWlkLFxuICAgICAgICAgICAgcm9sZV9uYW1lOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5uYW1lLFxuICAgICAgICAgICAgem9uZV9pZDogR2FtZURhdGFDZW50ZXIuc2V2QmFjay51c2VySW5mbz8uYT8uc2lkLFxuICAgICAgICAgICAgc2VydmVyX2lkOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5zaWQsXG4gICAgICAgICAgICBzZXJ2ZXJfbmFtZTogR2FtZURhdGFDZW50ZXIuc2V2QmFjay5xdWZ1TGlzdFtHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5zaWRdLm5hbWUsXG4gICAgICAgICAgICByb2xlX2xldmVsOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5sZXZlbCxcbiAgICAgICAgICAgIHJvbGVfdmlwOiAxLFxuICAgICAgICAgICAgYXZhdGFyOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvPy5hPy5oZWFkLFxuICAgICAgICAgICAgbmlja25hbWU6IEdhbWVEYXRhQ2VudGVyLnNldkJhY2sudXNlckluZm8/LmE/Lm5hbWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldF91c2VyaW5mbyDorr7nva7iu4bivorln7rmnKzkv6Hmga/vvIzlpoLlpLTlg4/jgIHmmLXnp7BcbiAgICAgICAgemxHYW1lLnJlcG9ydFJvbGVJbmZvKGV2ZW50TmFtZSwgcmVxKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaVsOaNruS4iuaKpeaIkOWKnzpcIiwgZXZlbnQsIGV2ZW50TmFtZSwgcmVzKVxuICAgICAgICAgICAgVUlIZWxwLlNob3dUaXBzKFwi5pWw5o2u5LiK5oql5oiQ5YqfOlwiICsgZXZlbnROYW1lKVxuICAgICAgICB9KVxuICAgIH1cbiAgICBvcGVuU2VydmljZSgpIHtcbiAgICAgICAgLy8gemxHYW1lLnNob3dDdXN0b21lclNlcnZpY2UoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIuWxleK9sOWuouacjeeVjOK+r+aIkOWKn1wiLCByZXMpXG4gICAgICAgIC8vIH0pXG4gICAgICAgIC8vIEZndWlNZ3IuSW5zdGFuY2Uub3BlblVJKEtlRnVDb2RlVmlldywgVmlld1pvcmRlci5QT1ApO1xuICAgIH1cbn0iXX0=