Sanakey
2021-07-09 3fc241d02fb8b671289de3d9d80bf848349c04d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    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) : new P(function (resolve) { resolve(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 };
    }
};
var _this_1 = this;
Object.defineProperty(exports, "__esModule", { value: true });
var dayjs = require("dayjs");
var formatTime = function (dateString, format) {
    if (format === void 0) { format = 'YYYY-MM-DD HH:mm'; }
    return dayjs(dateString).format(format);
};
var to = function (promise) {
    return promise.then(function (res) {
        return [null, res];
    }).catch(function (error) {
        return [error];
    });
};
var getUrl = function (url, params) {
    url = wx.globalData.reqBase + url;
    if (params != null) {
        url = url + (url.indexOf('?') >= 0 ? "&" : "?") + params;
    }
    if (wx.globalData.AppId != null && url.indexOf('AppId=') < 0) {
        url = url + (url.indexOf('?') >= 0 ? "&" : "?") + "AppId=" + wx.globalData.AppId;
    }
    if (url.indexOf('wx=3') < 0) {
        url = url + (url.indexOf('?') >= 0 ? "&" : "?") + 'wx=3';
    }
    return url;
};
var makePhoneCall = function (mobile) {
    wx.pro.showModal({
        title: '提示',
        content: "\u5373\u5C06\u62E8\u6253\u7535\u8BDD " + mobile,
    }).then(function (res) {
        console.log(res);
        if (res.confirm) {
            console.log('确认');
            wx.makePhoneCall({
                phoneNumber: mobile,
            });
        }
    });
};
var debounce = function (fn, delay) {
    if (delay === void 0) { delay = 200; }
    var timer = null;
    return function () {
        var _this_1 = this;
        if (timer)
            clearTimeout(timer);
        timer = setTimeout(function () {
            if (typeof fn === "function") {
                fn.apply(_this_1, arguments);
            }
            timer = null;
        }, delay);
    };
};
var setLoginData = function (_this) {
    var loginData = wx.globalData.loginData;
    console.log('<<<<<<<<<获取loginData', loginData);
    _this.setData({
        loginData: loginData,
    });
};
var getSingleUploadImageList = function (data, type) {
    var _a = data[type].split(";"), unid = _a[0], seq = _a[1];
    return [{
            url: data[type + "Url"] || '',
            unid: unid,
            seq: seq
        }];
};
var getLocation = function () { return __awaiter(_this_1, void 0, void 0, function () {
    var isAuthorize, _a, error_1, result_1, _b, error, result;
    return __generator(this, function (_c) {
        switch (_c.label) {
            case 0: return [4, getAuthorizeInfo('scope.userLocation')];
            case 1:
                isAuthorize = _c.sent();
                if (!!isAuthorize) return [3, 3];
                return [4, wx.$utils.to(wx.pro.authorize({ scope: 'scope.userLocation' }))];
            case 2:
                _a = _c.sent(), error_1 = _a[0], result_1 = _a[1];
                if (error_1) {
                    console.log(error_1);
                    return [2, false];
                }
                console.log('授权弹窗信息', result_1);
                return [2];
            case 3: return [4, wx.$utils.to(wx.pro.getLocation())];
            case 4:
                _b = _c.sent(), error = _b[0], result = _b[1];
                if (error) {
                    console.log(error);
                    return [2, false];
                }
                console.log('获取定位信息', result);
                wx.globalData.location = {
                    latitude: result.latitude,
                    longitude: result.longitude
                };
                return [2, true];
        }
    });
}); };
var getAuthorizeInfo = function (scope) {
    if (scope === void 0) { scope = "scope.writePhotosAlbum"; }
    return __awaiter(_this_1, void 0, void 0, function () {
        var _a, err, res;
        return __generator(this, function (_b) {
            switch (_b.label) {
                case 0: return [4, wx.$utils.to(wx.pro.getSetting())];
                case 1:
                    _a = _b.sent(), err = _a[0], res = _a[1];
                    if (err) {
                        return [2, false];
                    }
                    console.log("getSetting", res);
                    return [2, res.authSetting[scope] !== false];
            }
        });
    });
};
var setShopName = function (_this) {
    var settings = wx.globalData.settings;
    console.log('<<<<<<<<<获取settings.name', settings.name);
    _this.setData({
        shopName: settings.name,
        helpUrl: settings.helpUrl,
    });
    wx.setNavigationBarTitle({
        title: settings.name
    });
};
var watchObj = function (target, callback) {
    var handler = {
        get: function (target, key, receiver) {
            console.log('>>>>>>...get', key);
            return Reflect.get(target, key, receiver);
        },
        set: function (target, key, value, receiver) {
            console.log('>>>>>...set', key, value);
            typeof callback === 'function' && callback(key, value);
            return Reflect.set(target, key, value, receiver);
        }
    };
    return new Proxy(target, handler);
};
var scrollToError = function (selector, errorMsg, duration) {
    if (duration === void 0) { duration = 3000; }
    wx.pageScrollTo({
        selector: selector,
        duration: 300
    });
    wx.showToast({
        title: errorMsg,
        icon: 'none',
        duration: duration
    });
};
exports.default = {
    formatTime: formatTime,
    to: to,
    getUrl: getUrl,
    makePhoneCall: makePhoneCall,
    debounce: debounce,
    setLoginData: setLoginData,
    getSingleUploadImageList: getSingleUploadImageList,
    getLocation: getLocation,
    getAuthorizeInfo: getAuthorizeInfo,
    setShopName: setShopName,
    watchObj: watchObj,
    scrollToError: scrollToError
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUJBaU5BOztBQWpOQSw2QkFBK0I7QUFDL0IsSUFBTSxVQUFVLEdBQUcsVUFBQyxVQUFnQixFQUFDLE1BQWtDO0lBQWxDLHVCQUFBLEVBQUEsMkJBQWtDO0lBQ3JFLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUE7QUF1QkQsSUFBTSxFQUFFLEdBQUcsVUFBQyxPQUFvQjtJQUM5QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFPO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQUMsS0FBUztRQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxJQUFNLE1BQU0sR0FBRyxVQUFDLEdBQVUsRUFBQyxNQUFhO0lBRXRDLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDbEMsSUFBRyxNQUFNLElBQUksSUFBSSxFQUFDO1FBQ2hCLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7S0FDMUQ7SUFDRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM1RCxHQUFHLEdBQUcsR0FBRyxH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LE9BQU8sQ0FBQyxDQUFBO0FBRW5DLENBQUMsQ0FBQTtBQUVELElBQU0sYUFBYSxHQUFHLFVBQUMsUUFBZSxFQUFFLFFBQWUsRUFBRSxRQUFzQjtJQUF0Qix5QkFBQSxFQUFBLGVBQXNCO0lBQzdFLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDZCxRQUFRLFVBQUE7UUFDUixRQUFRLEVBQUUsR0FBRztLQUNkLENBQUMsQ0FBQTtJQUNGLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDWCxLQUFLLEVBQUUsUUFBUTtRQUNmLElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxVQUFBO0tBQ1QsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBQ0Qsa0JBQWM7SUFDWixVQUFVLFlBQUE7SUFDVixFQUFFLElBQUE7SUFDRixNQUFNLFFBQUE7SUFDTixhQUFhLGVBQUE7SUFDYixRQUFRLFVBQUE7SUFDUixZQUFZLGNBQUE7SUFDWix3QkFBd0IsMEJBQUE7SUFDeEIsV0FBVyxhQUFBO0lBQ1gsZ0JBQWdCLGtCQUFBO0lBQ2hCLFdBQVcsYUFBQTtJQUNYLFFBQVEsVUFBQTtJQUNSLGFBQWEsZUFBQTtDQUNkLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmNvbnN0IGZvcm1hdFRpbWUgPSAoZGF0ZVN0cmluZzogRGF0ZSxmb3JtYXQ6IHN0cmluZyA9J1lZWVktTU0tREQgSEg6bW0nKSA9PiB7XG4gIHJldHVybiBkYXlqcyhkYXRlU3RyaW5nKS5mb3JtYXQoZm9ybWF0KTtcbn1cblxuLy8gY29uc3QgZm9ybWF0VGltZTIgPSAoZGF0ZVN0cmluZzogRGF0ZSkgPT4ge1xuLy8gICBsZXQgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xuLy8gICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXG4vLyAgIGNvbnN0IG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMVxuLy8gICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKVxuLy8gICBjb25zdCBob3VyID0gZGF0ZS5nZXRIb3VycygpXG4vLyAgIGNvbnN0IG1pbnV0ZSA9IGRhdGUuZ2V0TWludXRlcygpXG4vLyAgIGNvbnN0IHNlY29uZCA9IGRhdGUuZ2V0U2Vjb25kcygpXG4vL1xuLy8gICByZXR1cm4gKFxuLy8gICAgIFt5ZWFyLCBtb250aCwgZGF5XS5tYXAoZm9ybWF0TnVtYmVyKS5qb2luKCctJykgK1xuLy8gICAgICcgJyArXG4vLyAgICAgW2hvdXIsIG1pbnV0ZSwgc2Vjb25kXS5tYXAoZm9ybWF0TnVtYmVyKS5qb2luKCc6Jylcbi8vICAgKVxuLy8gfVxuLy9cbi8vIGNvbnN0IGZvcm1hdE51bWJlciA9IChuOiBudW1iZXIpID0+IHtcbi8vICAgY29uc3QgcyA9IG4udG9TdHJpbmcoKVxuLy8gICByZXR1cm4gc1sxXSA/IHMgOiAnMCcgKyBzXG4vLyB9XG5cbmNvbnN0IHRvID0gKHByb21pc2U6UHJvbWlzZTxhbnk+KT0+e1xuICByZXR1cm4gcHJvbWlzZS50aGVuKChyZXM6YW55KT0+e1xuICAgIHJldHVybiBbbnVsbCxyZXNdXG4gIH0pLmNhdGNoKChlcnJvcjphbnkpPT57XG4gICAgcmV0dXJuIFtlcnJvcl1cbiAgfSlcbn1cblxuY29uc3QgZ2V0VXJsID0gKHVybDpzdHJpbmcscGFyYW1zOnN0cmluZyk9PntcbiAgLy8gQXBwSWQ6IGFwcC5nbG9iYWxEYXRhLkFwcElkXG4gIHVybCA9IHd4Lmdsb2JhbERhdGEucmVxQmFzZSArIHVybDtcbiAgaWYocGFyYW1zICE9IG51bGwpe1xuICAgIHVybCA9IHVybCArICh1cmwuaW5kZXhPZignPycpID49IDAgPyBcIiZcIiA6IFwiP1wiKSArIHBhcmFtcztcbiAgfVxuICBpZiAod3guZ2xvYmFsRGF0YS5BcHBJZCAhPSBudWxsICYmIHVybC5pbmRleE9mKCdBcHBJZD0nKSA8IDApIHtcbiAgICB1cmwgPSB1cmwgKyAodXJsLmluZGV4T2YoJz8nKSA+PSAwID8gXCImXCIgOiBcIj9cIikgKyBcIkFwcElkPVwiICsgd3guZ2xvYmFsRGF0YS5BcHBJZDtcbiAgfVxuICBpZiAodXJsLmluZGV4T2YoJ3d4PTMnKSA8IDApIHtcbiAgICB1cmwgPSB1cmwgKyAodXJsLmluZGV4T2YoJz8nKSA+PSAwID8gXCImXCIgOiBcIj9cIikgICsnd3g9Myc7XG4gIH1cbiAgLy8gaWYgKHVybC5pbmRleE9mKCdGcm9tVXNlcklkPScpIDwgMCkge1xuICAvLyAgIHVybCA9IHVybCArICh1cmwuaW5kZXhPZignPycpID49IDAgPyBcIiZcIiA6IFwiP1wiKSAgKydGcm9tVXNlcklkPScgKyB3eC5nbG9iYWxEYXRhLkZyb21Vc2VySWQ7XG4gIC8vIH1cblxuICByZXR1cm4gdXJsIDtcbn1cblxuY29uc3QgbWFrZVBob25lQ2FsbCA9IChtb2JpbGU6c3RyaW5nKT0+e1xuICB3eC5wcm8uc2hvd01vZGFsKHtcbiAgICB0aXRsZTogJ+aPkOekuicsXG4gICAgY29udGVudDogYOWNs+WwhuaLqOaJk+eUteivnSAke21vYmlsZX1gLFxuICB9KS50aGVuKChyZXM6YW55KSA9PiB7XG4gICAgLy8gb24gY2xvc2VcbiAgICBjb25zb2xlLmxvZyhyZXMpO1xuICAgIGlmIChyZXMuY29uZmlybSl7XG4gICAgICBjb25zb2xlLmxvZygn56Gu6K6kJyk7XG4gICAgICB3eC5tYWtlUGhvbmVDYWxsKHtcbiAgICAgICAgcGhvbmVOdW1iZXI6IG1vYmlsZSxcbiAgICAgIH0pXG4gICAgfVxuICB9KTtcbn1cblxuY29uc3QgZGVib3VuY2UgPSAoZm46KCk9Pnt9LGRlbGF5Om51bWJlciA9IDIwMCk9PntcbiAgbGV0IHRpbWVyOmFueSA9IG51bGw7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRpbWVyKSBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzKTtcbiAgICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGZuLmFwcGx5KHRoaXMsYXJndW1lbnRzKVxuICAgICAgfVxuICAgICAgdGltZXIgPSBudWxsO1xuICAgIH0sIGRlbGF5KTtcbiAgfVxufVxuXG5jb25zdCAgc2V0TG9naW5EYXRhID0gKF90aGlzOmFueSk9PntcbiAgbGV0IGxvZ2luRGF0YSA9IHd4Lmdsb2JhbERhdGEubG9naW5EYXRhO1xuICBjb25zb2xlLmxvZygnPDw8PDw8PDw86I635Y+WbG9naW5EYXRhJyxsb2dpbkRhdGEpO1xuICBfdGhpcy5zZXREYXRhKHtcbiAgICBsb2dpbkRhdGEsXG4gIH0pXG59XG5cbmNvbnN0IGdldFNpbmdsZVVwbG9hZEltYWdlTGlzdCA9IChkYXRhOmFueSx0eXBlOnN0cmluZyk9PntcbiAgbGV0IFt1bmlkLHNlcV0gPSBkYXRhW3R5cGVdLnNwbGl0KFwiO1wiKTtcbiAgcmV0dXJuIFt7XG4gICAgdXJsOiBkYXRhW2Ake3R5cGV9VXJsYF18fCcnLFxuICAgIHVuaWQsXG4gICAgc2VxXG4gIH1dXG59XG5cbi8v6I635Y+W5b6u5L+h5a6a5L2NXG5jb25zdCBnZXRMb2NhdGlvbiA9ICBhc3luYyAoKT0+e1xuICBsZXQgaXNBdXRob3JpemUgPSBhd2FpdCBnZXRBdXRob3JpemVJbmZvKCdzY29wZS51c2VyTG9jYXRpb24nKTtcbiAgaWYgKCFpc0F1dGhvcml6ZSkge1xuICAgIGxldCBbZXJyb3IsIHJlc3VsdF0gPSBhd2FpdCB3eC4kdXRpbHMudG8od3gucHJvLmF1dGhvcml6ZSh7c2NvcGU6ICdzY29wZS51c2VyTG9jYXRpb24nfSkpO1xuICAgIGlmIChlcnJvcil7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCfmjojmnYPlvLnnqpfkv6Hmga8nLHJlc3VsdCk7XG4gICAgLy8gd3guc2hvd01vZGFsKHtcbiAgICAvLyAgIHRpdGxlOiBcIuaPkOekulwiLFxuICAgIC8vICAgY29udGVudDogXCLmgqjov5jmnKrmjojmnYPlrprkvY3vvIzor7flnKjmjqXkuIvmnaXmiZPlvIDnmoTorr7nva7pobXpnaLlvIDlkK/nm7jlhozlrprkvY3vvIFcIixcbiAgICAvLyAgIHN1Y2Nlc3MocmVzKSB7XG4gICAgLy8gICAgIGlmIChyZXMuY29uZmlybSkge1xuICAgIC8vICAgICAgIGNvbnNvbGUubG9nKFwi55So5oi354K55Ye756Gu5a6aXCIpO1xuICAgIC8vICAgICAgIHd4Lm9wZW5TZXR0aW5nKCk7XG4gICAgLy8gICAgIH0gZWxzZSBpZiAocmVzLmNhbmNlbCkge1xuICAgIC8vICAgICAgIGNvbnNvbGUubG9nKFwi55So5oi354K55Ye75Y+W5raIXCIpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9LFxuICAgIC8vIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBsZXQgW2Vycm9yLCByZXN1bHRdID0gYXdhaXQgd3guJHV0aWxzLnRvKFxuICAgIHd4LnByby5nZXRMb2NhdGlvbigpXG4gIClcbiAgaWYgKGVycm9yKXtcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnNvbGUubG9nKCfojrflj5blrprkvY3kv6Hmga8nLHJlc3VsdCk7XG4gIHd4Lmdsb2JhbERhdGEubG9jYXRpb24gPSB7XG4gICAgbGF0aXR1ZGU6cmVzdWx0LmxhdGl0dWRlLFxuICAgIGxvbmdpdHVkZTpyZXN1bHQubG9uZ2l0dWRlXG4gIH07XG4gIC8vIHRoaXMuc2V0RGF0YSh7XG4gIC8vICAgbGF0aXR1ZGU6cmVzdWx0LmxhdGl0dWRlLFxuICAvLyAgIGxvbmdpdHVkZTpyZXN1bHQubG9uZ2l0dWRlXG4gIC8vIH0pXG4gIHJldHVybiB0cnVlO1xufVxuXG5jb25zdCBnZXRBdXRob3JpemVJbmZvID0gYXN5bmMoc2NvcGU6c3RyaW5nPVwic2NvcGUud3JpdGVQaG90b3NBbGJ1bVwiKT0+e1xuICBsZXQgW2VyciwgcmVzXSA9IGF3YWl0IHd4LiR1dGlscy50byh3eC5wcm8uZ2V0U2V0dGluZygpKTtcbiAgaWYgKGVycikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zb2xlLmxvZyhcImdldFNldHRpbmdcIiwgcmVzKTtcbiAgcmV0dXJuIHJlcy5hdXRoU2V0dGluZ1tzY29wZV0gIT09IGZhbHNlO1xufVxuXG4vLyDorr7nva7pl6jlupflkI3np7BcbmNvbnN0IHNldFNob3BOYW1lID0gKF90aGlzOmFueSk9PntcbiAgbGV0IHNldHRpbmdzID0gd3guZ2xvYmFsRGF0YS5zZXR0aW5ncztcbiAgY29uc29sZS5sb2coJzw8PDw8PDw8POiOt+WPlnNldHRpbmdzLm5hbWUnLHNldHRpbmdzLm5hbWUpO1xuICBfdGhpcy5zZXREYXRhKHtcbiAgICBzaG9wTmFtZTpzZXR0aW5ncy5uYW1lLFxuICAgIGhlbHBVcmw6c2V0dGluZ3MuaGVscFVybCxcbiAgfSlcbiAgd3guc2V0TmF2aWdhdGlvbkJhclRpdGxlKHtcbiAgICB0aXRsZTpzZXR0aW5ncy5uYW1lXG4gIH0pXG59XG5cbmNvbnN0IHdhdGNoT2JqID0gKHRhcmdldDpvYmplY3QsY2FsbGJhY2s6RnVuY3Rpb24pPT57XG4gIGxldCBoYW5kbGVyID0ge1xuICAgIGdldCh0YXJnZXQ6b2JqZWN0LCBrZXk6c3RyaW5nLCByZWNlaXZlcjphbnkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCc+Pj4+Pj4uLi5nZXQnLCBrZXkpXG4gICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBrZXksIHJlY2VpdmVyKVxuICAgICAgLy/nrYnku7fkuo4gcmV0dXJuIHRhcmdldFtrZXldO1xuICAgIH0sXG4gICAgc2V0KHRhcmdldDpvYmplY3QsIGtleTpzdHJpbmcsIHZhbHVlOmFueSwgcmVjZWl2ZXI6YW55KSB7XG4gICAgICBjb25zb2xlLmxvZygnPj4+Pj4uLi5zZXQnLCBrZXksIHZhbHVlKTtcbiAgICAgIHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyAmJiBjYWxsYmFjayhrZXksIHZhbHVlKVxuICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwga2V5LCB2YWx1ZSwgcmVjZWl2ZXIpXG4gICAgICAvL+etieS7t+S6jiByZXR1cm4gdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpXG5cbn1cblxuY29uc3Qgc2Nyb2xsVG9FcnJvciA9IChzZWxlY3RvcjpzdHJpbmcsIGVycm9yTXNnOnN0cmluZywgZHVyYXRpb246bnVtYmVyID0gMzAwMCk9PntcbiAgd3gucGFnZVNjcm9sbFRvKHtcbiAgICBzZWxlY3RvcixcbiAgICBkdXJhdGlvbjogMzAwXG4gIH0pXG4gIHd4LnNob3dUb2FzdCh7XG4gICAgdGl0bGU6IGVycm9yTXNnLFxuICAgIGljb246ICdub25lJyxcbiAgICBkdXJhdGlvblxuICB9KVxufVxuZXhwb3J0IGRlZmF1bHR7XG4gIGZvcm1hdFRpbWUsXG4gIHRvLFxuICBnZXRVcmwsXG4gIG1ha2VQaG9uZUNhbGwsXG4gIGRlYm91bmNlLFxuICBzZXRMb2dpbkRhdGEsXG4gIGdldFNpbmdsZVVwbG9hZEltYWdlTGlzdCxcbiAgZ2V0TG9jYXRpb24sXG4gIGdldEF1dGhvcml6ZUluZm8sXG4gIHNldFNob3BOYW1lLFxuICB3YXRjaE9iaixcbiAgc2Nyb2xsVG9FcnJvclxufVxuIl19