| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/script/mk/utils/LogUtil.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, 'a2461HsfJZEfZb/Xlwzf0Nx', 'LogUtil');
- // script/mk/utils/LogUtil.ts
- "use strict";
- var __spreadArrays = (this && this.__spreadArrays) || function () {
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
- r[k] = a[j];
- return r;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.LogTagColor = void 0;
- /**
- * 日志打印工具类
- * @description
- * @author 冯聪
- */
- var LogUtil = /** @class */ (function () {
- function LogUtil() {
- /**
- * 是否显示Log
- * @description
- */
- this.ifShowLog = true;
- /**
- * 标签符号
- * @description 标签与打印内容之间的拼接符号
- */
- this._tagChar = "...";
- /**
- * 标签符号
- * @description 标签与打印内容之间的拼接符号
- */
- this._frontChar = " ";
- /**
- * 对象key&value间隔符号
- * @description 打印对象时,key与value之间的拼接符号
- */
- this._keyValueChar = " = ";
- }
- /**
- * 打印普通日志
- * @description
- * @param tag 日志标签(用于标识日志)
- * @param data 日志内容
- */
- LogUtil.prototype.log = function (tag) {
- var data = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- data[_i - 1] = arguments[_i];
- }
- if (!this.ifShowLog) {
- return;
- }
- var totalTag = tag + this._tagChar;
- console.log.apply(console, __spreadArrays(["%c " + totalTag, "color: " + LogTagColor.skyblue], data));
- };
- /**
- * 打印警告日志
- * @description
- * @param tag 日志标签(用于标识日志)
- * @param data 日志内容
- */
- LogUtil.prototype.warn = function (tag) {
- var data = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- data[_i - 1] = arguments[_i];
- }
- if (!this.ifShowLog) {
- return;
- }
- var totalTag = tag + this._tagChar;
- console.warn.apply(console, __spreadArrays(["%c " + totalTag, "color: " + LogTagColor.orange], data));
- };
- /**
- * 打印错误日志
- * @description
- * @param tag 日志标签(用于标识日志)
- * @param data 日志内容
- */
- LogUtil.prototype.error = function (tag) {
- var data = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- data[_i - 1] = arguments[_i];
- }
- if (!this.ifShowLog) {
- return;
- }
- var totalTag = tag + this._tagChar;
- console.warn.apply(console, __spreadArrays(["%c " + totalTag, "color: " + LogTagColor.red], data));
- };
- /**
- * 打印单个对象日志
- * @description 逐个分层打印所有对象的key,value值
- * @param tag 日志标签(用于标识日志)
- * @param obj 日志对象
- * @param frontStrNum 前缀字符数量(不用填)
- * @returns
- */
- LogUtil.prototype.logSingle = function (tag, obj, frontStrNum) {
- if (frontStrNum === void 0) { frontStrNum = 0; }
- if (!this.ifShowLog) {
- return;
- }
- if (obj == null || obj == undefined) {
- return;
- }
- if (typeof obj === "number" || typeof obj === "string" || typeof obj === "boolean") {
- this.log("" + this.getFrontStr(frontStrNum) + tag, obj);
- }
- else {
- var objKeys = Object.keys(obj);
- for (var _i = 0, objKeys_1 = objKeys; _i < objKeys_1.length; _i++) {
- var key = objKeys_1[_i];
- if (obj.hasOwnProperty(key)) {
- var index = objKeys.indexOf(key);
- if (typeof obj[key] === "object") {
- this.log("" + this.getFrontStr(frontStrNum), key, ": ");
- this.logSingle(tag, obj[key], frontStrNum + 1);
- }
- else {
- if (!frontStrNum && index === 0) {
- this.log("" + this.getFrontStr(frontStrNum) + tag + "\n", key, this._keyValueChar, obj[key]);
- }
- else {
- this.log("" + this.getFrontStr(frontStrNum), key, this._keyValueChar, obj[key]);
- }
- }
- }
- }
- }
- };
- /**
- * 把日志内容拼接成字符串
- * @param data
- * @returns
- */
- LogUtil.prototype.getMessage = function () {
- var data = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- data[_i] = arguments[_i];
- }
- var message = "";
- for (var i = 0; i < data.length; i++) {
- var str = data[i];
- var str_new = "";
- //屏蔽逗号
- for (var j = 0; j < str.length; j++) {
- var char = str[j];
- str_new += char;
- }
- message += str_new;
- }
- return message;
- };
- /**
- * 获取前缀字符串
- * @description 根据前缀字符串数目生成前缀字符串,用以标记层级
- * @param frontStrNum 字符串数量
- * @returns 返回前缀字符串(string)
- */
- LogUtil.prototype.getFrontStr = function (frontStrNum) {
- var str = "";
- if (frontStrNum > 0) {
- for (var i = 0; i < frontStrNum; i++) {
- str += this._frontChar;
- }
- return str;
- }
- return str;
- };
- return LogUtil;
- }());
- exports.default = LogUtil;
- /** 日志字体颜色 */
- var LogTagColor;
- (function (LogTagColor) {
- LogTagColor["red"] = "red;font-weight:bold";
- LogTagColor["white"] = "white;font-weight:bold";
- LogTagColor["yellow"] = "yellow;font-weight:bold";
- LogTagColor["green"] = "green;font-weight:bold";
- LogTagColor["bule"] = "blue;font-weight:bold";
- LogTagColor["skyblue"] = "#3DB2EF;font-weight:bold";
- LogTagColor["orange"] = "orange;font-weight:bold";
- LogTagColor["black"] = "black;font-weight:bold";
- })(LogTagColor = exports.LogTagColor || (exports.LogTagColor = {}));
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxta1xcdXRpbHNcXExvZ1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0dBSUc7QUFDSDtJQUFBO1FBRUk7OztXQUdHO1FBQ0ksY0FBUyxHQUFZLElBQUksQ0FBQztRQUVqQzs7O1dBR0c7UUFDSyxhQUFRLEdBQVcsS0FBSyxDQUFDO1FBRWpDOzs7V0FHRztRQUNLLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFFcEM7OztXQUdHO1FBQ0ssa0JBQWEsR0FBVyxLQUFLLENBQUM7SUF5SDFDLENBQUM7SUF2SEc7Ozs7O09BS0c7SUFDSSxxQkFBRyxHQUFWLFVBQVcsR0FBVztRQUFFLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQsNkJBQWM7O1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUNELElBQUksUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLE9BQVgsT0FBTyxrQkFBSyxLQUFLLEdBQUcsUUFBUSxFQUFFLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxHQUFLLElBQUksR0FBRTtJQUM1RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxzQkFBSSxHQUFYLFVBQVksR0FBVztRQUFFLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQsNkJBQWM7O1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUNELElBQUksUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLE9BQVosT0FBTyxrQkFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFLLElBQUksR0FBRTtJQUM1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LE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsTUFBTTtZQUNOLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLElBQUksR0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUM7YUFDbkI7WUFDRCxPQUFPLElBQUksT0FBTyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksNkJBQVcsR0FBbEIsVUFBbUIsV0FBbUI7UUFDbEMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzFCO1lBQ0QsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQWpKQSxBQWlKQyxJQUFBOztBQUVELGFBQWE7QUFDYixJQUFZLFdBU1g7QUFURCxXQUFZLFdBQVc7SUFDbkIsMkNBQTRCLENBQUE7SUFDNUIsK0NBQWdDLENBQUE7SUFDaEMsaURBQWtDLENBQUE7SUFDbEMsK0NBQWdDLENBQUE7SUFDaEMsNkNBQThCLENBQUE7SUFDOUIsbURBQW9DLENBQUE7SUFDcEMsaURBQWtDLENBQUE7SUFDbEMsK0NBQWdDLENBQUE7QUFDcEMsQ0FBQyxFQVRXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBU3RCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOaXpeW/l+aJk+WNsOW3peWFt+exu1xyXG4gKiBAZGVzY3JpcHRpb24gXHJcbiAqIEBhdXRob3Ig5Yav6IGqXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dVdGlsIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIOaYr+WQpuaYvuekukxvZ1xyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpZlNob3dMb2c6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICog5qCH562+56ym5Y+3XHJcbiAgICAgKiBAZGVzY3JpcHRpb24g5qCH562+5LiO5omT5Y2w5YaF5a655LmL6Ze055qE5ou85o6l56ym5Y+3XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3RhZ0NoYXI6IHN0cmluZyA9IFwiLi4uXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmoIfnrb7nrKblj7dcclxuICAgICAqIEBkZXNjcmlwdGlvbiDmoIfnrb7kuI7miZPljbDlhoXlrrnkuYvpl7TnmoTmi7zmjqXnrKblj7dcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZnJvbnRDaGFyOiBzdHJpbmcgPSBcIiAgICBcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWvueixoWtleSZ2YWx1ZemXtOmalOespuWPt1xyXG4gICAgICogQGRlc2NyaXB0aW9uIOaJk+WNsOWvueixoeaXtixrZXnkuI52YWx1ZeS5i+mXtOeahOaLvOaOpeespuWPt1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9rZXlWYWx1ZUNoYXI6IHN0cmluZyA9IFwiID0gXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmiZPljbDmma7pgJrml6Xlv5dcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogQHBhcmFtICB0YWcgIOaXpeW/l+agh+etvijnlKjkuo7moIfor4bml6Xlv5cpXHJcbiAgICAgKiBAcGFyYW0gIGRhdGEg5pel5b+X5YaF5a65XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsb2codGFnOiBzdHJpbmcsIC4uLmRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlmU2hvd0xvZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0b3RhbFRhZyA9IHRhZyArIHRoaXMuX3RhZ0NoYXI7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCIlYyBcIiArIHRvdGFsVGFnLCBcImNvbG9yOiBcIiArIExvZ1RhZ0NvbG9yLnNreWJsdWUsIC4uLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5omT5Y2w6K2m5ZGK5pel5b+XXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEBwYXJhbSAgdGFnICAg5pel5b+X5qCH562+KOeUqOS6juagh+ivhuaXpeW/lylcclxuICAgICAqIEBwYXJhbSAgZGF0YSAg5pel5b+X5YaF5a65XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3YXJuKHRhZzogc3RyaW5nLCAuLi5kYXRhOiBhbnlbXSkge1xyXG4gICAgICAgIGlmICghdGhpcy5pZlNob3dMb2cpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdG90YWxUYWcgPSB0YWcgKyB0aGlzLl90YWdDaGFyO1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcIiVjIFwiICsgdG90YWxUYWcsIFwiY29sb3I6IFwiICsgTG9nVGFnQ29sb3Iub3JhbmdlLCAuLi5kYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaJk+WNsOmUmeivr+aXpeW/l1xyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBAcGFyYW0gIHRhZyAgIOaXpeW/l+agh+etvijnlKjkuo7moIfor4bml6Xlv5cpXHJcbiAgICAgKiBAcGFyYW0gIGRhdGEgIOaXpeW/l+WGheWuuVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZXJyb3IodGFnOiBzdHJpbmcsIC4uLmRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlmU2hvd0xvZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0b3RhbFRhZyA9IHRhZyArIHRoaXMuX3RhZ0NoYXI7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFwiJWMgXCIgKyB0b3RhbFRhZywgXCJjb2xvcjogXCIgKyBMb2dUYWdDb2xvci5yZWQsLi4uZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmiZPljbDljZXkuKrlr7nosaHml6Xlv5dcclxuICAgICAqIEBkZXNjcmlwdGlvbiAgICAgICAg6YCQ5Liq5YiG5bGC5omT5Y2w5omA5pyJ5a+56LGh55qEa2V5LHZhbHVl5YC8XHJcbiAgICAgKiBAcGFyYW0gdGFnICAgICAgICAgIOaXpeW/l+agh+etvijnlKjkuo7moIfor4bml6Xlv5cpXHJcbiAgICAgKiBAcGFyYW0gb2JqICAgICAgICAgIOaXpeW/l+WvueixoVxyXG4gICAgICogQHBhcmFtIGZyb250U3RyTnVtICDliY3nvIDlrZfnrKbmlbDph48o5LiN55So5aGrKVxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsb2dTaW5nbGUodGFnOiBzdHJpbmcsIG9iajogYW55LCBmcm9udFN0ck51bTogbnVtYmVyID0gMCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaWZTaG93TG9nKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBvYmogPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICB0aGlzLmxvZyhgJHt0aGlzLmdldEZyb250U3RyKGZyb250U3RyTnVtKX0ke3RhZ31gLCBvYmopO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBvYmpLZXlzID0gT2JqZWN0LmtleXMob2JqKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgb2Ygb2JqS2V5cykge1xyXG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gb2JqS2V5cy5pbmRleE9mKGtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZyhgJHt0aGlzLmdldEZyb250U3RyKGZyb250U3RyTnVtKX1gLCBrZXksIFwiOiBcIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dTaW5nbGUodGFnLCBvYmpba2V5XSwgZnJvbnRTdHJOdW0gKyAxKVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZnJvbnRTdHJOdW0gJiYgaW5kZXggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nKGAke3RoaXMuZ2V0RnJvbnRTdHIoZnJvbnRTdHJOdW0pfSR7dGFnfVxcbmAsIGtleSwgdGhpcy5fa2V5VmFsdWVDaGFyLCBvYmpba2V5XSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZyhgJHt0aGlzLmdldEZyb250U3RyKGZyb250U3RyTnVtKX1gLCBrZXksIHRoaXMuX2tleVZhbHVlQ2hhciwgb2JqW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5oqK5pel5b+X5YaF5a655ou85o6l5oiQ5a2X56ym5LiyXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBcclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVzc2FnZSguLi5kYXRhOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCBtZXNzYWdlID0gXCJcIjtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHN0ciA9IGRhdGFbaV07XHJcbiAgICAgICAgICAgIGxldCBzdHJfbmV3ID0gXCJcIjtcclxuICAgICAgICAgICAgLy/lsY/olL3pgJflj7dcclxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHIubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBjaGFyOiBzdHJpbmcgPSBzdHJbal07XHJcbiAgICAgICAgICAgICAgICBzdHJfbmV3ICs9IGNoYXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbWVzc2FnZSArPSBzdHJfbmV3O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiOt+WPluWJjee8gOWtl+espuS4slxyXG4gICAgICogQGRlc2NyaXB0aW9uICAgICAgICAg5qC55o2u5YmN57yA5a2X56ym5Liy5pWw55uu55Sf5oiQ5YmN57yA5a2X56ym5Liy77yM55So5Lul5qCH6K6w5bGC57qnXHJcbiAgICAgKiBAcGFyYW0gIGZyb250U3RyTnVtICDlrZfnrKbkuLLmlbDph49cclxuICAgICAqIEByZXR1cm5zICAgICAgICAgICAgIOi/lOWbnuWJjee8gOWtl+espuS4sihzdHJpbmcpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGcm9udFN0cihmcm9udFN0ck51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgc3RyID0gXCJcIjtcclxuICAgICAgICBpZiAoZnJvbnRTdHJOdW0gPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJvbnRTdHJOdW07IGkrKykge1xyXG4gICAgICAgICAgICAgICAgc3RyICs9IHRoaXMuX2Zyb250Q2hhcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiog5pel5b+X5a2X5L2T6aKc6ImyICovXHJcbmV4cG9ydCBlbnVtIExvZ1RhZ0NvbG9yIHtcclxuICAgIHJlZCA9IFwicmVkO2ZvbnQtd2VpZ2h0OmJvbGRcIixcclxuICAgIHdoaXRlID0gXCJ3aGl0ZTtmb250LXdlaWdodDpib2xkXCIsXHJcbiAgICB5ZWxsb3cgPSBcInllbGxvdztmb250LXdlaWdodDpib2xkXCIsXHJcbiAgICBncmVlbiA9IFwiZ3JlZW47Zm9udC13ZWlnaHQ6Ym9sZFwiLFxyXG4gICAgYnVsZSA9IFwiYmx1ZTtmb250LXdlaWdodDpib2xkXCIsXHJcbiAgICBza3libHVlID0gXCIjM0RCMkVGO2ZvbnQtd2VpZ2h0OmJvbGRcIixcclxuICAgIG9yYW5nZSA9IFwib3JhbmdlO2ZvbnQtd2VpZ2h0OmJvbGRcIixcclxuICAgIGJsYWNrID0gXCJibGFjaztmb250LXdlaWdodDpib2xkXCJcclxufVxyXG4iXX0=
|