PlatformWan17MiniGame.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/plat/PlatformWan17MiniGame.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, '9567fne2JdP8r2FEXQAxr/w', 'PlatformWan17MiniGame');
  13. // script/plat/PlatformWan17MiniGame.ts
  14. "use strict";
  15. /*
  16. 17玩MiniGame(VIVO OPPO)
  17. */
  18. var __extends = (this && this.__extends) || (function () {
  19. var extendStatics = function (d, b) {
  20. extendStatics = Object.setPrototypeOf ||
  21. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  22. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  23. return extendStatics(d, b);
  24. };
  25. return function (d, b) {
  26. extendStatics(d, b);
  27. function __() { this.constructor = d; }
  28. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  29. };
  30. })();
  31. Object.defineProperty(exports, "__esModule", { value: true });
  32. var Config_1 = require("../Config");
  33. var GameController_1 = require("../GameController");
  34. var Xyc_1 = require("../common/Xyc");
  35. var TypeConst_1 = require("../data/const/TypeConst");
  36. var PlatformBase_1 = require("./PlatformBase");
  37. var gameMethod_1 = require("../common/gameMethod");
  38. var GameDataCenter_1 = require("../data/GameDataCenter");
  39. var EventMng_1 = require("../manager/EventMng");
  40. var EventConst_1 = require("../data/const/EventConst");
  41. var gameCfg_1 = require("../common/gameCfg");
  42. var UIHelp_1 = require("../logic/ui/UIHelp");
  43. var PlatformWan17MiniGame = /** @class */ (function (_super) {
  44. __extends(PlatformWan17MiniGame, _super);
  45. function PlatformWan17MiniGame() {
  46. var _this = _super.call(this) || this;
  47. //设置屏幕常亮
  48. qg.setKeepScreenOn({
  49. keepScreenOn: true,
  50. success: function (res) { },
  51. fail: function (res) { },
  52. complete: function (res) { },
  53. });
  54. qg.onShow(function (res) {
  55. if (Config_1.default.paySuccAdokId != null) {
  56. clearInterval(Config_1.default.paySuccAdokId);
  57. Config_1.default.paySuccAdokId = null;
  58. }
  59. Config_1.default.paySuccAdokIndex = 0;
  60. Config_1.default.paySuccAdokId = setInterval(function () {
  61. Config_1.default.paySuccAdokIndex++;
  62. if (Config_1.default.paySuccAdokIndex >= 5) {
  63. clearInterval(Config_1.default.paySuccAdokId);
  64. Config_1.default.paySuccAdokId = null;
  65. }
  66. GameDataCenter_1.default.time.sendAdok();
  67. }, 1000);
  68. });
  69. return _this;
  70. }
  71. PlatformWan17MiniGame.prototype.showLoginView = function () {
  72. var _this = this;
  73. console.log("初始化&登录SDK");
  74. qg.asdk.asdkInit(function (res) {
  75. //执行登录授权
  76. if (res.code.toString() == "0") {
  77. qg.asdk.asdkLogin(function (loginRes) {
  78. //console.log("登录结果" + JSON.stringify(loginRes))
  79. if (loginRes.code.toString() == "0") {
  80. var params = {
  81. pid: Config_1.default.pid,
  82. param: [loginRes.data.account.accountid, loginRes.data.account.sessionid]
  83. };
  84. GameController_1.default.network.send(Xyc_1.PlayerLogin.url, params, function (result) {
  85. console.log("后段验证返回");
  86. if (result.type != 1) {
  87. if (gameMethod_1.gameMethod.isEmpty(result.win) || gameMethod_1.gameMethod.isEmpty(result.win.msgOut)) {
  88. GameDataCenter_1.default.plat.showErrDialog(TypeConst_1.GameErrCode.errGamePlatLogin);
  89. }
  90. return;
  91. }
  92. EventMng_1.default.emit(EventConst_1.LoadEvent.LOAD_PROGRESS, 1, "login");
  93. if (result.type == 1 && result.platBack) {
  94. GameDataCenter_1.default.plat.instance.openId = result.platBack.openid;
  95. GameDataCenter_1.default.plat.instance.loginParams = [result.platBack.token];
  96. console.log("后端验证成功", _this.openId);
  97. GameDataCenter_1.default.plat.instance.login();
  98. }
  99. else {
  100. console.log("PlayerLogin.url 返回数据异常");
  101. if (gameMethod_1.gameMethod.isEmpty(result.win) || gameMethod_1.gameMethod.isEmpty(result.win.msgOut)) {
  102. GameDataCenter_1.default.plat.showErrDialog(TypeConst_1.GameErrCode.errGamePlatLogin);
  103. }
  104. }
  105. });
  106. }
  107. else {
  108. UIHelp_1.default.ShowDialog({ content: loginRes.msg });
  109. }
  110. });
  111. }
  112. });
  113. };
  114. PlatformWan17MiniGame.prototype.pay = function (orderId, order10cs, param) {
  115. var packageInfo = gameCfg_1.default.packageInfo.getItem(Config_1.default.pid);
  116. var payUrl = packageInfo.wayhttp + "player/pay/" + Config_1.default.pid;
  117. var orderData = {
  118. callbackurl: payUrl,
  119. paymoney: param.price.toString(),
  120. custominfo: "",
  121. customorderid: orderId,
  122. productdesc: param.productName,
  123. productfeecode: order10cs,
  124. };
  125. qg.asdk.asdkPay(orderData, function (res) {
  126. //console.log("pay return:"+JSON.stringify(res))
  127. if (res.code.toString() != "0") {
  128. //console.log("支付失败,失败原因:"+res.msg);
  129. }
  130. else {
  131. if (Config_1.default.paySuccAdokId != null) {
  132. clearInterval(Config_1.default.paySuccAdokId);
  133. Config_1.default.paySuccAdokId = null;
  134. }
  135. Config_1.default.paySuccAdokIndex = 0;
  136. Config_1.default.paySuccAdokId = setInterval(function () {
  137. Config_1.default.paySuccAdokIndex++;
  138. if (Config_1.default.paySuccAdokIndex >= 5) {
  139. clearInterval(Config_1.default.paySuccAdokId);
  140. Config_1.default.paySuccAdokId = null;
  141. }
  142. GameDataCenter_1.default.time.sendAdok();
  143. }, 1000);
  144. }
  145. });
  146. };
  147. // 上报角色数据
  148. PlatformWan17MiniGame.prototype.reportRole = function (event) {
  149. var _a, _b, _c;
  150. var playerinfo = {
  151. playerid: GameDataCenter_1.default.user.uuid,
  152. playername: GameDataCenter_1.default.user.nickName,
  153. playerlevel: (_b = (_a = GameDataCenter_1.default.sevBack.userInfo.a) === null || _a === void 0 ? void 0 : _a.level) === null || _b === void 0 ? void 0 : _b.toString(),
  154. serverid: (_c = GameDataCenter_1.default.sevBack.userInfo.a) === null || _c === void 0 ? void 0 : _c.sid,
  155. servername: GameDataCenter_1.default.user.serverName //区服名称
  156. };
  157. qg.asdk.asdkSendRole(playerinfo, function (res) {
  158. //console.log('角色上报返回:'+JSON.stringify(res));
  159. });
  160. };
  161. PlatformWan17MiniGame.prototype.showRewardAd = function (adId, kid, order11Id) {
  162. qg.asdk.asdkRewardedAd(adId, function (res) {
  163. //console.log('广告返回:'+JSON.stringify(res));
  164. if (res.code.toString() != "0") {
  165. //console.log("看广告失败,失败原因:"+res.msg);
  166. }
  167. else {
  168. GameDataCenter_1.default.adVideo.onXiadanSucc(); // 改成直接调用,不回调了
  169. }
  170. });
  171. };
  172. PlatformWan17MiniGame.prototype.saveAppToDesktop = function (cb) {
  173. qg.asdk.asdkCreateIcon(function (res) {
  174. //console.log('创建状态返回:'+JSON.stringify(res))
  175. if (res.code.toString() != "0") {
  176. //console.log("创建图标失败,失败原因:"+res.msg);
  177. }
  178. else {
  179. if (cb) {
  180. cb();
  181. }
  182. }
  183. });
  184. };
  185. PlatformWan17MiniGame.prototype.logout = function () {
  186. qg.asdk.asdkQuit();
  187. };
  188. PlatformWan17MiniGame.prototype.setClipboard = function (data, cb) {
  189. qg.setClipboardData({
  190. data: data,
  191. success: function () {
  192. //console.log("setClipboardData success" );
  193. UIHelp_1.default.ShowTips("已复制到剪切板");
  194. if (cb) {
  195. cb();
  196. }
  197. },
  198. fail: function () {
  199. //console.log("setClipboardData fail");
  200. },
  201. complete: function () {
  202. //console.log("setClipboardData complete");
  203. }
  204. });
  205. };
  206. return PlatformWan17MiniGame;
  207. }(PlatformBase_1.default));
  208. exports.default = PlatformWan17MiniGame;
  209. cc._RF.pop();
  210. }
  211. if (nodeEnv) {
  212. __define(__module.exports, __require, __module);
  213. }
  214. else {
  215. __quick_compile_project__.registerModuleFunc(__filename, function () {
  216. __define(__module.exports, __require, __module);
  217. });
  218. }
  219. })();
  220. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvcGxhdC9QbGF0Zm9ybVdhbjE3TWluaUdhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztFQUVFOzs7Ozs7Ozs7Ozs7Ozs7QUFHRixvQ0FBK0I7QUFDL0Isb0RBQStDO0FBQy9DLHFDQUE2RDtBQUM3RCxxREFBcUc7QUFFckcsK0NBQTBDO0FBQzFDLG1EQUFrRDtBQUNsRCx5REFBb0Q7QUFDcEQsZ0RBQTJDO0FBQzNDLHVEQUFxRDtBQUNyRCw2Q0FBd0M7QUFDeEMsNkNBQXdDO0FBSXhDO0lBQW1ELHlDQUFZO0lBRzdEO1FBQUEsWUFDRSxpQkFBTyxTQTBCUjtRQXhCQyxRQUFRO1FBQ1IsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixPQUFPLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQztZQUMzQixJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN4QixRQUFRLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQztTQUM3QixDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBRztZQUNaLElBQUksZ0JBQU0sQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO2dCQUNoQyxhQUFhLENBQUMsZ0JBQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtnQkFDbkMsZ0JBQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO2FBQzVCO1lBQ0QsZ0JBQU0sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUE7WUFDM0IsZ0JBQU0sQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDO2dCQUNqQyxnQkFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUE7Z0JBQ3pCLElBQUksZ0JBQU0sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEVBQUU7b0JBQ2hDLGFBQWEsQ0FBQyxnQkFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO29CQUNuQyxnQkFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENB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LFVBQVUsR0FBRztZQUNsQyw0Q0FBNEM7WUFDNUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFDOUIsc0NBQXNDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksRUFBRSxFQUFFO29CQUNOLEVBQUUsRUFBRSxDQUFDO2lCQUNOO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxzQ0FBTSxHQUFOO1FBQ0UsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsNENBQVksR0FBWixVQUFhLElBQVksRUFBRSxFQUFhO1FBQ3RDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsQixJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRTtnQkFDUCwyQ0FBMkM7Z0JBQzNDLGdCQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLEVBQUUsRUFBRTtvQkFDTixFQUFFLEVBQUUsQ0FBQztpQkFDTjtZQUNILENBQUM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osdUNBQXVDO1lBQ3pDLENBQUM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsMkNBQTJDO1lBQzdDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBT0gsNEJBQUM7QUFBRCxDQXZMQSxBQXVMQyxDQXZMa0Qsc0JBQVksR0F1TDlEIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLypcbjE3546pTWluaUdhbWUoVklWTyBPUFBPKVxuKi9cblxuXG5pbXBvcnQgQ29uZmlnIGZyb20gXCIuLi9Db25maWdcIjtcbmltcG9ydCBHYW1lQ29udHJvbGxlciBmcm9tIFwiLi4vR2FtZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IFBsYXllckxvZ2luLCBQbGF5ZXJMb2dpblByYW0gfSBmcm9tIFwiLi4vY29tbW9uL1h5Y1wiO1xuaW1wb3J0IHsgQURfVklERU9fS0VZLCBHYW1lRXJyQ29kZSwgUGF5UHJvZHVjdFBhcmFtLCBSZXBvcnRSb2xlVHlwZSB9IGZyb20gXCIuLi9kYXRhL2NvbnN0L1R5cGVDb25zdFwiO1xuaW1wb3J0IHsgU2V2QmFjayB9IGZyb20gXCIuLi9jb21tb24vWHlzXCI7XG5pbXBvcnQgUGxhdGZvcm1CYXNlIGZyb20gXCIuL1BsYXRmb3JtQmFzZVwiO1xuaW1wb3J0IHsgZ2FtZU1ldGhvZCB9IGZyb20gXCIuLi9jb21tb24vZ2FtZU1ldGhvZFwiO1xuaW1wb3J0IEdhbWVEYXRhQ2VudGVyIGZyb20gXCIuLi9kYXRhL0dhbWVEYXRhQ2VudGVyXCI7XG5pbXBvcnQgRXZlbnRNbmcgZnJvbSBcIi4uL21hbmFnZXIvRXZlbnRNbmdcIjtcbmltcG9ydCB7IExvYWRFdmVudCB9IGZyb20gXCIuLi9kYXRhL2NvbnN0L0V2ZW50Q29uc3RcIjtcbmltcG9ydCBHYW1lY2ZnIGZyb20gXCIuLi9jb21tb24vZ2FtZUNmZ1wiO1xuaW1wb3J0IFVJSGVscCBmcm9tIFwiLi4vbG9naWMvdWkvVUlIZWxwXCI7XG5pbXBvcnQgTWludCBmcm9tIFwiLi4vdXRpbHMvbWludEZpbHRlci9pbmRleFwiO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsYXRmb3JtV2FuMTdNaW5pR2FtZSBleHRlbmRzIFBsYXRmb3JtQmFzZSB7XG5cbiAgbWludDogTWludDtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgLy/orr7nva7lsY/luZXluLjkuq5cbiAgICBxZy5zZXRLZWVwU2NyZWVuT24oe1xuICAgICAga2VlcFNjcmVlbk9uOiB0cnVlLFxuICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlcykgeyB9LFxuICAgICAgZmFpbDogZnVuY3Rpb24gKHJlcykgeyB9LFxuICAgICAgY29tcGxldGU6IGZ1bmN0aW9uIChyZXMpIHsgfSxcbiAgICB9KTtcblxuICAgIHFnLm9uU2hvdygocmVzKSA9PiB7XG4gICAgICBpZiAoQ29uZmlnLnBheVN1Y2NBZG9rSWQgIT0gbnVsbCkge1xuICAgICAgICBjbGVhckludGVydmFsKENvbmZpZy5wYXlTdWNjQWRva0lkKVxuICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJZCA9IG51bGxcbiAgICAgIH1cbiAgICAgIENvbmZpZy5wYXlTdWNjQWRva0luZGV4ID0gMFxuICAgICAgQ29uZmlnLnBheVN1Y2NBZG9rSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIENvbmZpZy5wYXlTdWNjQWRva0luZGV4KytcbiAgICAgICAgaWYgKENvbmZpZy5wYXlTdWNjQWRva0luZGV4ID49IDUpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKENvbmZpZy5wYXlTdWNjQWRva0lkKVxuICAgICAgICAgIENvbmZpZy5wYXlTdWNjQWRva0lkID0gbnVsbFxuICAgICAgICB9XG4gICAgICAgIEdhbWVEYXRhQ2VudGVyLnRpbWUuc2VuZEFkb2soKVxuICAgICAgfSwgMTAwMClcbiAgICB9KTtcblxuICB9XG5cblxuXG4gIHNob3dMb2dpblZpZXcoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coXCLliJ3lp4vljJYm55m75b2VU0RLXCIpXG4gICAgcWcuYXNkay5hc2RrSW5pdCgocmVzKSA9PiB7XG4gICAgICAvL+aJp+ihjOeZu+W9leaOiOadg1xuICAgICAgaWYgKHJlcy5jb2RlLnRvU3RyaW5nKCkgPT0gXCIwXCIpIHtcbiAgICAgICAgcWcuYXNkay5hc2RrTG9naW4oKGxvZ2luUmVzKSA9PiB7XG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIueZu+W9lee7k+aenFwiICsgSlNPTi5zdHJpbmdpZnkobG9naW5SZXMpKVxuICAgICAgICAgIGlmIChsb2dpblJlcy5jb2RlLnRvU3RyaW5nKCkgPT0gXCIwXCIpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbXM6IFBsYXllckxvZ2luUHJhbSA9IHtcbiAgICAgICAgICAgICAgcGlkOiBDb25maWcucGlkLFxuICAgICAgICAgICAgICBwYXJhbTogW2xvZ2luUmVzLmRhdGEuYWNjb3VudC5hY2NvdW50aWQsIGxvZ2luUmVzLmRhdGEuYWNjb3VudC5zZXNzaW9uaWRdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBHYW1lQ29udHJvbGxlci5uZXR3b3JrLnNlbmQoUGxheWVyTG9naW4udXJsLCBwYXJhbXMsIChyZXN1bHQ6IFNldkJhY2spID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlkI7mrrXpqozor4Hov5Tlm55cIilcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlICE9IDEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZ2FtZU1ldGhvZC5pc0VtcHR5KHJlc3VsdC53aW4pIHx8IGdhbWVNZXRob2QuaXNFbXB0eShyZXN1bHQud2luLm1zZ091dCkpIHtcbiAgICAgICAgICAgICAgICAgIEdhbWVEYXRhQ2VudGVyLnBsYXQuc2hvd0VyckRpYWxvZyhHYW1lRXJyQ29kZS5lcnJHYW1lUGxhdExvZ2luKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBFdmVudE1uZy5lbWl0KExvYWRFdmVudC5MT0FEX1BST0dSRVNTLCAxLCBcImxvZ2luXCIpXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PSAxICYmIHJlc3VsdC5wbGF0QmFjaykge1xuICAgICAgICAgICAgICAgIEdhbWVEYXRhQ2VudGVyLnBsYXQuaW5zdGFuY2Uub3BlbklkID0gcmVzdWx0LnBsYXRCYWNrLm9wZW5pZFxuICAgICAgICAgICAgICAgIEdhbWVEYXRhQ2VudGVyLnBsYXQuaW5zdGFuY2UubG9naW5QYXJhbXMgPSBbcmVzdWx0LnBsYXRCYWNrLnRva2VuXVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5ZCO56uv6aqM6K+B5oiQ5YqfXCIsIHRoaXMub3BlbklkKVxuICAgICAgICAgICAgICAgIEdhbWVEYXRhQ2VudGVyLnBsYXQuaW5zdGFuY2UubG9naW4oKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUGxheWVyTG9naW4udXJsIOi/lOWbnuaVsOaNruW8guW4uFwiKVxuICAgICAgICAgICAgICAgIGlmIChnYW1lTWV0aG9kLmlzRW1wdHkocmVzdWx0LndpbikgfHwgZ2FtZU1ldGhvZC5pc0VtcHR5KHJlc3VsdC53aW4ubXNnT3V0KSkge1xuICAgICAgICAgICAgICAgICAgR2FtZURhdGFDZW50ZXIucGxhdC5zaG93RXJyRGlhbG9nKEdhbWVFcnJDb2RlLmVyckdhbWVQbGF0TG9naW4pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIFVJSGVscC5TaG93RGlhbG9nKHsgY29udGVudDogbG9naW5SZXMubXNnIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICB9XG5cbiAgcGF5KG9yZGVySWQ6IHN0cmluZywgb3JkZXIxMGNzOiBzdHJpbmcsIHBhcmFtOiBQYXlQcm9kdWN0UGFyYW0pOiB2b2lkIHtcblxuICAgIGxldCBwYWNrYWdlSW5mbyA9IEdhbWVjZmcucGFja2FnZUluZm8uZ2V0SXRlbShDb25maWcucGlkKVxuICAgIGxldCBwYXlVcmw6IHN0cmluZyA9IHBhY2thZ2VJbmZvLndheWh0dHAgKyBcInBsYXllci9wYXkvXCIgKyBDb25maWcucGlkXG5cbiAgICBsZXQgb3JkZXJEYXRhID0ge1xuICAgICAgY2FsbGJhY2t1cmw6IHBheVVybCwgLy8g5ri45oiP5pa55YWF5YC85Zue6LCD5Zyw5Z2AXG4gICAgICBwYXltb25leTogcGFyYW0ucHJpY2UudG9TdHJpbmcoKSwvL+a4uOaIj+WFheWAvOmHkeminSjljZXkvY3kuLog5YWDKVxuICAgICAgY3VzdG9taW5mbzogXCJcIiwvL+a4uOaIj+mAj+S8oOWPguaVsO+8jOWbnuiwg+aXtuWOn+agt+i/lOWbnlxuICAgICAgY3VzdG9tb3JkZXJpZDogb3JkZXJJZCwvL+a4uOaIj+mAj+S8oOWPguaVsO+8jOWbnuiwg+aXtuWOn+agt+i/lOWbnlxuICAgICAgcHJvZHVjdGRlc2M6IHBhcmFtLnByb2R1Y3ROYW1lLC8v5YWF5YC85o+P6L+wXG4gICAgICBwcm9kdWN0ZmVlY29kZTogb3JkZXIxMGNzLFxuICAgIH07XG5cbiAgICBxZy5hc2RrLmFzZGtQYXkob3JkZXJEYXRhLCBmdW5jdGlvbiAocmVzKSB7XG4gICAgICAvL2NvbnNvbGUubG9nKFwicGF5IHJldHVybjpcIitKU09OLnN0cmluZ2lmeShyZXMpKVxuICAgICAgaWYgKHJlcy5jb2RlLnRvU3RyaW5nKCkgIT0gXCIwXCIpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIuaUr+S7mOWksei0pe+8jOWksei0peWOn+WboO+8mlwiK3Jlcy5tc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKENvbmZpZy5wYXlTdWNjQWRva0lkICE9IG51bGwpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKENvbmZpZy5wYXlTdWNjQWRva0lkKVxuICAgICAgICAgIENvbmZpZy5wYXlTdWNjQWRva0lkID0gbnVsbFxuICAgICAgICB9XG4gICAgICAgIENvbmZpZy5wYXlTdWNjQWRva0luZGV4ID0gMFxuICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJbmRleCsrXG4gICAgICAgICAgaWYgKENvbmZpZy5wYXlTdWNjQWRva0luZGV4ID49IDUpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoQ29uZmlnLnBheVN1Y2NBZG9rSWQpXG4gICAgICAgICAgICBDb25maWcucGF5U3VjY0Fkb2tJZCA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgICAgR2FtZURhdGFDZW50ZXIudGltZS5zZW5kQWRvaygpXG4gICAgICAgIH0sIDEwMDApXG4gICAgICB9XG4gICAgfSlcblxuICB9XG4gIC8vIOS4iuaKpeinkuiJsuaVsOaNrlxuICByZXBvcnRSb2xlKGV2ZW50OiBSZXBvcnRSb2xlVHlwZSk6IHZvaWQge1xuXG4gICAgbGV0IHBsYXllcmluZm8gPSB7XG4gICAgICBwbGF5ZXJpZDogR2FtZURhdGFDZW50ZXIudXNlci51dWlkLCAgXHRcdFx0XHQvL+inkuiJsklEXG4gICAgICBwbGF5ZXJuYW1lOiBHYW1lRGF0YUNlbnRlci51c2VyLm5pY2tOYW1lLFx0XHRcdFx0Ly/op5LoibLlkI3np7BcbiAgICAgIHBsYXllcmxldmVsOiBHYW1lRGF0YUNlbnRlci5zZXZCYWNrLnVzZXJJbmZvLmE/LmxldmVsPy50b1N0cmluZygpLFx0XHRcdFx0XHRcdC8v6KeS6Imy562J57qnXG4gICAgICBzZXJ2ZXJpZDogR2FtZURhdGFDZW50ZXIuc2V2QmFjay51c2VySW5mby5hPy5zaWQsXHRcdFx0XHRcdC8v5Yy65pyNSURcbiAgICAgIHNlcnZlcm5hbWU6IEdhbWVEYXRhQ2VudGVyLnVzZXIuc2VydmVyTmFtZVx0XHRcdFx0Ly/ljLrmnI3lkI3np7BcbiAgICB9O1xuICAgIHFnLmFzZGsuYXNka1NlbmRSb2xlKHBsYXllcmluZm8sIGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ+inkuiJsuS4iuaKpei/lOWbnu+8micrSlNPTi5zdHJpbmdpZnkocmVzKSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHNob3dSZXdhcmRBZChhZElkOiBzdHJpbmcsIGtpZDogc3RyaW5nLCBvcmRlcjExSWQ6IHN0cmluZyk6IHZvaWQge1xuXG4gICAgcWcuYXNkay5hc2RrUmV3YXJkZWRBZChhZElkLCAocmVzKSA9PiB7XG4gICAgICAvL2NvbnNvbGUubG9nKCflub/lkYrov5Tlm57vvJonK0pTT04uc3RyaW5naWZ5KHJlcykpO1xuICAgICAgaWYgKHJlcy5jb2RlLnRvU3RyaW5nKCkgIT0gXCIwXCIpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIueci+W5v+WRiuWksei0pe+8jOWksei0peWOn+WboO+8mlwiK3Jlcy5tc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgR2FtZURhdGFDZW50ZXIuYWRWaWRlby5vblhpYWRhblN1Y2MoKSAvLyDmlLnmiJDnm7TmjqXosIPnlKgs5LiN5Zue6LCD5LqGXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzYXZlQXBwVG9EZXNrdG9wKGNiPzogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBxZy5hc2RrLmFzZGtDcmVhdGVJY29uKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ+WIm+W7uueKtuaAgei/lOWbnu+8micrSlNPTi5zdHJpbmdpZnkocmVzKSlcbiAgICAgIGlmIChyZXMuY29kZS50b1N0cmluZygpICE9IFwiMFwiKSB7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCLliJvlu7rlm77moIflpLHotKXvvIzlpLHotKXljp/lm6DvvJpcIityZXMubXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbG9nb3V0KCk6IHZvaWQge1xuICAgIHFnLmFzZGsuYXNka1F1aXQoKTtcbiAgfVxuXG4gIHNldENsaXBib2FyZChkYXRhOiBzdHJpbmcsIGNiPzogRnVuY3Rpb24pIHtcbiAgICBxZy5zZXRDbGlwYm9hcmREYXRhKHtcbiAgICAgIGRhdGE6IGRhdGEsXG4gICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCJzZXRDbGlwYm9hcmREYXRhIHN1Y2Nlc3NcIiApO1xuICAgICAgICBVSUhlbHAuU2hvd1RpcHMoXCLlt7LlpI3liLbliLDliarliIfmnb9cIik7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBmYWlsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCJzZXRDbGlwYm9hcmREYXRhIGZhaWxcIik7XG4gICAgICB9LFxuICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInNldENsaXBib2FyZERhdGEgY29tcGxldGVcIik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG5cblxuXG5cbn0iXX0=