| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/script/game/data/LoginData.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, '7d48aywt1tPXI2eRhRzXwYP', 'LoginData');
- // script/game/data/LoginData.ts
- "use strict";
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LoginData = void 0;
- var StorageData_1 = require("./StorageData");
- /**
- * @description 登录数据
- * @author 邹勇
- */
- var LoginData = /** @class */ (function () {
- function LoginData() {
- this.loadResCompelete = false;
- /** 是否登录 */
- this.isLogin = false;
- this.sessionKey = '';
- /** 玩家唯一id */
- this.uin = '';
- /** 玩家临时id */
- this.tempUin = '';
- this.loginTicket = '';
- }
- /**
- * 初始化本地配置
- * @returns
- */
- LoginData.prototype.loadLocalRes = function () {
- this.loadResCompelete = true;
- };
- /**
- * 登录流程 initApp-->initAd-->connect-->wxLogin-->checkLogin-->getAccountInfo
- */
- LoginData.prototype.login = function () {
- return __awaiter(this, void 0, void 0, function () {
- var ranKey, data, response, encode, isFirstIn, tmp_key;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- this.isLogin = true;
- g.appData.init();
- g.adData.init();
- //有登录记录直接跳转到登录流程最后一步
- if (this.sessionKey != '' && this.uin != '') {
- this.getAccountInfo();
- return [2 /*return*/];
- }
- ranKey = mk.encrypt.randomString();
- data = {
- "mac": g.appData.mac,
- "psk": ranKey,
- "appId": g.appData.appId
- };
- return [4 /*yield*/, mk.http.sendRequest('connectTest', 'POST', JSON.stringify(data))];
- case 1:
- response = _a.sent();
- if (response.errcode != 0) {
- return [2 /*return*/];
- }
- data = mk.encrypt.decrypt(response.encrypt, ranKey, g.appData.appId);
- this.tempUin = JSON.parse(data).tmp_uin;
- if (g.wechatData.code != null) { //微信登录
- encode = mk.encrypt.encrypt(JSON.stringify({ "code": g.wechatData.code }), this.sessionKey, g.appData.appId);
- data = {
- "uin": this.uin,
- "encrypt": encode
- };
- }
- else { //游客登录
- encode = mk.encrypt.encrypt(JSON.stringify({ "code": g.wechatData.code }), ranKey, g.appData.appId);
- data = {
- "uin": this.tempUin,
- "encrypt": encode
- };
- }
- return [4 /*yield*/, mk.http.sendRequest('wxlogin', 'POST', JSON.stringify(data), false, false)];
- case 2:
- response = _a.sent();
- if (response.errcode != 0) {
- return [2 /*return*/];
- }
- if (g.wechatData.code != null) {
- data = mk.encrypt.decrypt(response.encrypt, this.sessionKey, g.appData.appId);
- }
- else {
- data = mk.encrypt.decrypt(response.encrypt, ranKey, g.appData.appId);
- }
- data = JSON.parse(data);
- this.loginTicket = data.login_ticket;
- mk.storage.setStorage(StorageData_1.StorageKey.loginTicket, this.loginTicket);
- isFirstIn = mk.storage.getStorage('isFirstIn');
- if (isFirstIn == null) {
- this.isFirstIn = true;
- mk.storage.setStorage(StorageData_1.StorageKey.isFirstIn, 1);
- }
- if (this.uin != data.uin) {
- this.uin = data.uin;
- this.isNew = false;
- }
- else {
- this.isNew = true;
- }
- mk.storage.setStorage('uin', this.uin);
- tmp_key = '';
- if (g.wechatData.code != null) {
- tmp_key = this.sessionKey;
- }
- else {
- tmp_key = mk.encrypt.randomString();
- }
- data = {
- "tmp_key": tmp_key,
- "uin": this.uin,
- "login_ticket": this.loginTicket,
- "appId": g.appData.appId
- };
- return [4 /*yield*/, mk.http.sendRequest('checklogin', 'POST', JSON.stringify(data))];
- case 3:
- response = _a.sent();
- if (response.errcode != 0) {
- return [2 /*return*/];
- }
- if (g.wechatData.code != null) {
- data = mk.encrypt.decrypt(response.encrypt, this.sessionKey, g.appData.appId);
- }
- else {
- data = mk.encrypt.decrypt(response.encrypt, tmp_key, g.appData.appId);
- }
- data = JSON.parse(data);
- this.sessionKey = data.session_key;
- mk.storage.setStorage('sessionKey', this.sessionKey);
- if (g.wechatData.code != null) {
- if (this.isNew) { //玩过此游戏并且本地数据是本机的
- this.getAccountInfo();
- }
- else { //玩过此游戏 但 本地数据不是本账户的 清空数据 重新登录游戏
- this.isNew = false;
- g.wechatData.code = null;
- this.reload();
- }
- }
- else {
- this.getAccountInfo();
- }
- return [2 /*return*/];
- }
- });
- });
- };
- LoginData.prototype.getAccountInfo = function () {
- return __awaiter(this, void 0, void 0, function () {
- var nickname, aa, data, response;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- nickname = mk.storage.getStorage(StorageData_1.StorageKey.nickname);
- if (!nickname) return [3 /*break*/, 1];
- g.wechatData.nickName = nickname;
- return [3 /*break*/, 3];
- case 1:
- aa = {
- "uin": this.uin,
- "login_ticket": this.loginTicket
- };
- data = {
- "uin": this.uin,
- "encrypt": mk.encrypt.encrypt(JSON.stringify(aa), this.sessionKey, g.appData.appId)
- };
- return [4 /*yield*/, mk.http.sendRequest('user', 'POST', JSON.stringify(data), false, false)];
- case 2:
- response = _a.sent();
- if (response.errcode != 0) {
- return [2 /*return*/];
- }
- response = mk.http.checkData(response, true);
- data = response.data;
- this.isAuth = data.is_auth;
- if (this.isAuth) {
- g.wechatData.nickName = data.nickname;
- g.wechatData.avatar = data.headimgurl;
- mk.storage.setStorage(StorageData_1.StorageKey.isAuth, 1);
- mk.storage.setStorage(StorageData_1.StorageKey.nickname, g.wechatData.nickName, false);
- mk.storage.setStorage(StorageData_1.StorageKey.avatar, g.wechatData.avatar, false);
- }
- _a.label = 3;
- case 3:
- //获取游戏数据
- g.gameData.init();
- return [2 /*return*/];
- }
- });
- });
- };
- /**
- * 本地数据不是本账户的 清空数据 重新登录游戏
- */
- LoginData.prototype.reload = function () {
- };
- return LoginData;
- }());
- exports.LoginData = LoginData;
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxnYW1lXFxkYXRhXFxMb2dpbkRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJDO0FBRTNDOzs7R0FHRztBQUNIO0lBQUE7UUFFVyxxQkFBZ0IsR0FBVyxLQUFLLENBQUM7UUFFeEMsV0FBVztRQUNKLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUUvQixhQUFhO1FBQ04sUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUV4QixhQUFhO1FBQ04sWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztJQXdMcEMsQ0FBQztJQTdLRzs7O09BR0c7SUFDSyxnQ0FBWSxHQUFuQjtRQUVHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ1UseUJBQUssR0FBbEI7Ozs7Ozt3QkFDSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFFaEIsb0JBQW9CO3dCQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFOzRCQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ3RCLHNCQUFPO3lCQUNWO3dCQUVHLE1BQU0sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO3dCQUNuQyxJQUFJLEdBQVE7NEJBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRzs0QkFDcEIsS0FBSyxFQUFFLE1BQU07NEJBQ2IsT0FBTyxFQUFFLENBQUMs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d0JBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQzVDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLHdCQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDOzRCQUN6RSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3QkFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQzt5QkFDeEU7Ozt3QkFHTCxRQUFRO3dCQUNSLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Ozs7O0tBQ3JCO0lBSUQ7O09BRUc7SUFDSywwQkFBTSxHQUFkO0lBRUEsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0F2TUEsQUF1TUMsSUFBQTtBQXZNWSw4QkFBUyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2VLZXkgfSBmcm9tIFwiLi9TdG9yYWdlRGF0YVwiO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiDnmbvlvZXmlbDmja5cclxuICogQGF1dGhvciDpgrnli4dcclxuICovXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkRhdGEge1xyXG5cclxuICAgIHB1YmxpYyBsb2FkUmVzQ29tcGVsZXRlOmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiog5piv5ZCm55m75b2VICovXHJcbiAgICBwdWJsaWMgaXNMb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzZXNzaW9uS2V5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiog546p5a625ZSv5LiAaWQgKi9cclxuICAgIHB1YmxpYyB1aW46IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKiDnjqnlrrbkuLTml7ZpZCAqL1xyXG4gICAgcHVibGljIHRlbXBVaW46IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBsb2dpblRpY2tldDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgcHVibGljIGlzRmlyc3RJbjogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgaXNOZXc6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIOaYr+WQpuaOiOadgyAqL1xyXG4gICAgcHVibGljIGlzQXV0aDogYm9vbGVhbjtcclxuXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yid5aeL5YyW5pys5Zyw6YWN572uXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgIHB1YmxpYyBsb2FkTG9jYWxSZXMoKXtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmxvYWRSZXNDb21wZWxldGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog55m75b2V5rWB56iLIGluaXRBcHAtLT5pbml0QWQtLT5jb25uZWN0LS0+d3hMb2dpbi0tPmNoZWNrTG9naW4tLT5nZXRBY2NvdW50SW5mb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgbG9naW4oKSB7XHJcbiAgICAgICAgdGhpcy5pc0xvZ2luID0gdHJ1ZTtcclxuICAgICAgICBnLmFwcERhdGEuaW5pdCgpO1xyXG4gICAgICAgIGcuYWREYXRhLmluaXQoKTtcclxuXHJcbiAgICAgICAgLy/mnInnmbvlvZXorrDlvZXnm7TmjqXot7PovazliLDnmbvlvZXmtYHnqIvmnIDlkI7kuIDmraVcclxuICAgICAgICBpZiAodGhpcy5zZXNzaW9uS2V5ICE9ICcnICYmIHRoaXMudWluICE9ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWNjb3VudEluZm8oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHJhbktleSA9IG1rLmVuY3J5cHQucmFuZG9tU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IGRhdGE6IGFueSA9IHtcclxuICAgICAgICAgICAgXCJtYWNcIjogZy5hcHBEYXRhLm1hYyxcclxuICAgICAgICAgICAgXCJwc2tcIjogcmFuS2V5LFxyXG4gICAgICAgICAgICBcImFwcElkXCI6IGcuYXBwRGF0YS5hcHBJZFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9jb25uZWN0XHJcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgbWsuaHR0cC5zZW5kUmVxdWVzdCgnY29ubmVjdFRlc3QnLCAnUE9TVCcsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZXJyY29kZSAhPSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YSA9IG1rLmVuY3J5cHQuZGVjcnlwdChyZXNwb25zZS5lbmNyeXB0LCByYW5LZXksIGcuYXBwRGF0YS5hcHBJZCk7XHJcbiAgICAgICAgdGhpcy50ZW1wVWluID0gSlNPTi5wYXJzZShkYXRhKS50bXBfdWluO1xyXG5cclxuICAgICAgICAvL3d4TG9naW5cclxuICAgICAgICBsZXQgZW5jb2RlO1xyXG4gICAgICAgIGlmIChnLndlY2hhdERhdGEuY29kZSAhPSBudWxsKSB7Ly/lvq7kv6HnmbvlvZVcclxuICAgICAgICAgICAgZW5jb2RlID0gbWsuZW5jcnlwdC5lbmNyeXB0KEpTT04uc3RyaW5naWZ5KHsgXCJjb2RlXCI6IGcud2VjaGF0RGF0YS5jb2RlIH0pLCB0aGlzLnNlc3Npb25LZXksIGcuYXBwRGF0YS5hcHBJZCk7XHJcbiAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBcInVpblwiOiB0aGlzLnVpbixcclxuICAgICAgICAgICAgICAgIFwiZW5jcnlwdFwiOiBlbmNvZGVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7Ly/muLjlrqLnmbvlvZVcclxuICAgICAgICAgICAgZW5jb2RlID0gbWsuZW5jcnlwdC5lbmNyeXB0KEpTT04uc3RyaW5naWZ5KHsgXCJjb2RlXCI6IGcud2VjaGF0RGF0YS5jb2RlIH0pLCByYW5LZXksIGcuYXBwRGF0YS5hcHBJZCk7XHJcbiAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBcInVpblwiOiB0aGlzLnRlbXBVaW4sXHJcbiAgICAgICAgICAgICAgICBcImVuY3J5cHRcIjogZW5jb2RlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgbWsuaHR0cC5zZW5kUmVxdWVzdCgnd3hsb2dpbicsICdQT1NUJywgSlNPTi5zdHJpbmdpZnkoZGF0YSksIGZhbHNlLCBmYWxzZSk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycmNvZGUgIT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChnLndlY2hhdERhdGEuY29kZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBtay5lbmNyeXB0LmRlY3J5cHQocmVzcG9uc2UuZW5jcnlwdCwgdGhpcy5zZXNzaW9uS2V5LCBnLmFwcERhdGEuYXBwSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZGF0YSA9IG1rLmVuY3J5cHQuZGVjcnlwdChyZXNwb25zZS5lbmNyeXB0LCByYW5LZXksIGcuYXBwRGF0YS5hcHBJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgICAgIHRoaXMubG9naW5UaWNrZXQgPSBkYXRhLmxvZ2luX3RpY2tldDtcclxuICAgICAgICBtay5zdG9yYWdlLnNldFN0b3JhZ2UoU3RvcmFnZUtleS5sb2dpblRpY2tldCwgdGhpcy5sb2dpblRpY2tldCk7XHJcblxyXG4gICAgICAgIGxldCBpc0ZpcnN0SW4gPSBtay5zdG9yYWdlLmdldFN0b3JhZ2UoJ2lzRmlyc3RJbicpO1xyXG4gICAgICAgIGlmIChpc0ZpcnN0SW4gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmlzRmlyc3RJbiA9IHRydWU7XHJcbiAgICAgICAgICAgIG1rLnN0b3JhZ2Uuc2V0U3RvcmFnZShTdG9yYWdlS2V5LmlzRmlyc3RJbiwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy51aW4gIT0gZGF0YS51aW4pIHtcclxuICAgICAgICAgICAgdGhpcy51aW4gPSBkYXRhLnVpbjtcclxuICAgICAgICAgICAgdGhpcy5pc05ldyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1rLnN0b3JhZ2Uuc2V0U3RvcmFnZSgndWluJywgdGhpcy51aW4pO1xyXG5cclxuICAgICAgICAvL2NoZWNrTG9naW5cclxuICAgICAgICBsZXQgdG1wX2tleSA9ICcnO1xyXG4gICAgICAgIGlmIChnLndlY2hhdERhdGEuY29kZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRtcF9rZXkgPSB0aGlzLnNlc3Npb25LZXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0bXBfa2V5ID0gbWsuZW5jcnlwdC5yYW5kb21TdHJpbmcoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgIFwidG1wX2tleVwiOiB0bXBfa2V5LFxyXG4gICAgICAgICAgICBcInVpblwiOiB0aGlzLnVpbixcclxuICAgICAgICAgICAgXCJsb2dpbl90aWNrZXRcIjogdGhpcy5sb2dpblRpY2tldCxcclxuICAgICAgICAgICAgXCJhcHBJZFwiOiBnLmFwcERhdGEuYXBwSWRcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBtay5odHRwLnNlbmRSZXF1ZXN0KCdjaGVja2xvZ2luJywgJ1BPU1QnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycmNvZGUgIT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChnLndlY2hhdERhdGEuY29kZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBtay5lbmNyeXB0LmRlY3J5cHQocmVzcG9uc2UuZW5jcnlwdCwgdGhpcy5zZXNzaW9uS2V5LCBnLmFwcERhdGEuYXBwSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZGF0YSA9IG1rLmVuY3J5cHQuZGVjcnlwdChyZXNwb25zZS5lbmNyeXB0LCB0bXBfa2V5LCBnLmFwcERhdGEuYXBwSWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uS2V5ID0gZGF0YS5zZXNzaW9uX2tleTtcclxuXHJcbiAgICAgICAgbWsuc3RvcmFnZS5zZXRTdG9yYWdlKCdzZXNzaW9uS2V5JywgdGhpcy5zZXNzaW9uS2V5KTtcclxuXHJcbiAgICAgICAgaWYgKGcud2VjaGF0RGF0YS5jb2RlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNOZXcpIHsvL+eOqei/h+atpOa4uOaIj+W5tuS4lOacrOWcsOaVsOaNruaYr+acrOacuueahFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50SW5mbygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Ugey8v546p6L+H5q2k5ri45oiPIOS9hiDmnKzlnLDmlbDmja7kuI3mmK/mnKzotKbmiLfnmoQg5riF56m65pWw5o2uIOmHjeaWsOeZu+W9lea4uOaIj1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc05ldyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZy53ZWNoYXREYXRhLmNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50SW5mbygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIGdldEFjY291bnRJbmZvKCkge1xyXG4gICAgICAgIGxldCBuaWNrbmFtZSA9IG1rLnN0b3JhZ2UuZ2V0U3RvcmFnZShTdG9yYWdlS2V5Lm5pY2tuYW1lKTtcclxuICAgICAgICBpZiAobmlja25hbWUpIHtcclxuICAgICAgICAgICAgZy53ZWNoYXREYXRhLm5pY2tOYW1lID0gbmlja25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYWEgPSB7XHJcbiAgICAgICAgICAgICAgICBcInVpblwiOiB0aGlzLnVpbixcclxuICAgICAgICAgICAgICAgIFwibG9naW5fdGlja2V0XCI6IHRoaXMubG9naW5UaWNrZXRcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkYXRhOiBhbnkgPSB7XHJcbiAgICAgICAgICAgICAgICBcInVpblwiOiB0aGlzLnVpbixcclxuICAgICAgICAgICAgICAgIFwiZW5jcnlwdFwiOiBtay5lbmNyeXB0LmVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoYWEpLCB0aGlzLnNlc3Npb25LZXksIGcuYXBwRGF0YS5hcHBJZClcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IG1rLmh0dHAuc2VuZFJlcXVlc3QoJ3VzZXInLCAnUE9TVCcsIEpTT04uc3RyaW5naWZ5KGRhdGEpLCBmYWxzZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyY29kZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzcG9uc2UgPSBtay5odHRwLmNoZWNrRGF0YShyZXNwb25zZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmlzQXV0aCA9IGRhdGEuaXNfYXV0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNBdXRoKSB7XHJcbiAgICAgICAgICAgICAgICBnLndlY2hhdERhdGEubmlja05hbWUgPSBkYXRhLm5pY2tuYW1lO1xyXG4gICAgICAgICAgICAgICAgZy53ZWNoYXREYXRhLmF2YXRhciA9IGRhdGEuaGVhZGltZ3VybDtcclxuICAgICAgICAgICAgICAgIG1rLnN0b3JhZ2Uuc2V0U3RvcmFnZShTdG9yYWdlS2V5LmlzQXV0aCwgMSk7XHJcbiAgICAgICAgICAgICAgICBtay5zdG9yYWdlLnNldFN0b3JhZ2UoU3RvcmFnZUtleS5uaWNrbmFtZSwgZy53ZWNoYXREYXRhLm5pY2tOYW1lLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBtay5zdG9yYWdlLnNldFN0b3JhZ2UoU3RvcmFnZUtleS5hdmF0YXIsIGcud2VjaGF0RGF0YS5hdmF0YXIsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy/ojrflj5bmuLjmiI/mlbDmja5cclxuICAgICAgICBnLmdhbWVEYXRhLmluaXQoKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pys5Zyw5pWw5o2u5LiN5piv5pys6LSm5oi355qEIOa4heepuuaVsOaNriDph43mlrDnmbvlvZXmuLjmiI9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWxvYWQoKSB7XHJcblxyXG4gICAgfVxyXG59Il19
|