| (function webpackUniversalModuleDefinition(root, factory) { |
| if(typeof exports === 'object' && typeof module === 'object') |
| module.exports = factory(require("CoreHome"), require("vue")); |
| else if(typeof define === 'function' && define.amd) |
| define(["CoreHome", ], factory); |
| else if(typeof exports === 'object') |
| exports["BotTracking"] = factory(require("CoreHome"), require("vue")); |
| else |
| root["BotTracking"] = factory(root["CoreHome"], root["Vue"]); |
| })((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__19dc__, __WEBPACK_EXTERNAL_MODULE__8bbf__) { |
| return (function(modules) { |
| |
| var installedModules = {}; |
| |
| |
| function __webpack_require__(moduleId) { |
| |
| |
| if(installedModules[moduleId]) { |
| return installedModules[moduleId].exports; |
| } |
| |
| var module = installedModules[moduleId] = { |
| i: moduleId, |
| l: false, |
| exports: {} |
| }; |
| |
| |
| modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); |
| |
| |
| module.l = true; |
| |
| |
| return module.exports; |
| } |
| |
| |
| |
| __webpack_require__.m = modules; |
| |
| |
| __webpack_require__.c = installedModules; |
| |
| |
| __webpack_require__.d = function(exports, name, getter) { |
| if(!__webpack_require__.o(exports, name)) { |
| Object.defineProperty(exports, name, { enumerable: true, get: getter }); |
| } |
| }; |
| |
| |
| __webpack_require__.r = function(exports) { |
| if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
| Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
| } |
| Object.defineProperty(exports, '__esModule', { value: true }); |
| }; |
| |
| |
| |
| |
| |
| |
| __webpack_require__.t = function(value, mode) { |
| if(mode & 1) value = __webpack_require__(value); |
| if(mode & 8) return value; |
| if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; |
| var ns = Object.create(null); |
| __webpack_require__.r(ns); |
| Object.defineProperty(ns, 'default', { enumerable: true, value: value }); |
| if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); |
| return ns; |
| }; |
| |
| |
| __webpack_require__.n = function(module) { |
| var getter = module && module.__esModule ? |
| function getDefault() { return module['default']; } : |
| function getModuleExports() { return module; }; |
| __webpack_require__.d(getter, 'a', getter); |
| return getter; |
| }; |
| |
| |
| __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; |
| |
| |
| __webpack_require__.p = "plugins/BotTracking/vue/dist/"; |
| |
| |
| |
| return __webpack_require__(__webpack_require__.s = "fae3"); |
| }) |
| |
| ({ |
|
|
| "19dc": |
| (function(module, exports) { |
|
|
| module.exports = __WEBPACK_EXTERNAL_MODULE__19dc__; |
|
|
| }), |
|
|
| "8bbf": |
| (function(module, exports) { |
|
|
| module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__; |
|
|
| }), |
|
|
| "fae3": |
| (function(module, __webpack_exports__, __webpack_require__) { |
|
|
| "use strict"; |
| |
| __webpack_require__.r(__webpack_exports__); |
|
|
| |
| __webpack_require__.d(__webpack_exports__, "SiteWithoutData", function() { return SiteWithoutData; }); |
| __webpack_require__.d(__webpack_exports__, "NoRecentRequestsWidget", function() { return NoRecentRequestsWidget; }); |
|
|
| |
| |
|
|
| if (typeof window !== 'undefined') { |
| var currentScript = window.document.currentScript |
| if (false) { var getCurrentScript; } |
|
|
| var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/) |
| if (src) { |
| __webpack_require__.p = src[1] |
| } |
| } |
|
|
| |
| var setPublicPath = (null); |
|
|
| |
| var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf"); |
|
|
| |
|
|
| const _hoisted_1 = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { |
| class: "icon-chevron-left" |
| }, null, -1); |
| const _hoisted_2 = { |
| key: 1 |
| }; |
| const _hoisted_3 = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("br", null, null, -1); |
| const _hoisted_4 = { |
| key: 0, |
| class: "row" |
| }; |
| const _hoisted_5 = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { |
| class: "icon-warning" |
| }, null, -1); |
| const _hoisted_6 = { |
| key: 1, |
| class: "row tracking-method-detection" |
| }; |
| const _hoisted_7 = ["src", "alt"]; |
| const _hoisted_8 = ["href"]; |
| const _hoisted_9 = { |
| class: "row tracking-method-list" |
| }; |
| const _hoisted_10 = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", { |
| class: "icon-search" |
| }, null, -1); |
| const _hoisted_11 = ["href", "onClick"]; |
| const _hoisted_12 = ["src"]; |
| const _hoisted_13 = { |
| key: 1, |
| class: "list-entry-icon", |
| "aria-hidden": "true" |
| }; |
| const _hoisted_14 = { |
| class: "list-entry-text" |
| }; |
| const _hoisted_15 = ["href"]; |
| const _hoisted_16 = ["src"]; |
| const _hoisted_17 = { |
| key: 1, |
| class: "list-entry-icon", |
| "aria-hidden": "true" |
| }; |
| const _hoisted_18 = { |
| class: "list-entry-text" |
| }; |
| const _hoisted_19 = { |
| class: "tracking-method-skip" |
| }; |
| const _hoisted_20 = ["href"]; |
| const _hoisted_21 = ["data-method"]; |
| const _hoisted_22 = ["src", "alt"]; |
| function render(_ctx, _cache, $props, $setup, $data, $options) { |
| const _component_ActivityIndicator = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("ActivityIndicator"); |
| const _component_VueEntryContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("VueEntryContainer"); |
| return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", null, [_ctx.showMethodDetails ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", { |
| key: 0, |
| class: "tracking-method-back", |
| onClick: _cache[0] || (_cache[0] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])($event => { |
| _ctx.showOverview(); |
| }, ["prevent"])) |
| }, [_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('Mobile_NavigationBack')), 1)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h1", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.headline), 1), !_ctx.loading && !_ctx.showMethodDetails ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("p", _hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataChooseTrackingMethodPreamble1')) + " ", 1), _hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(" " + Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataChooseTrackingMethodPreamble2')), 1)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_ActivityIndicator, { |
| "loading-message": _ctx.translate('BotTracking_DetectingYourSite'), |
| loading: _ctx.loading |
| }, null, 8, ["loading-message", "loading"]), !_ctx.loading && !_ctx.showMethodDetails ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], { |
| key: 2 |
| }, [_ctx.errorMessage ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_4, [_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.errorMessage), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { |
| class: "btn", |
| href: "#", |
| onClick: _cache[1] || (_cache[1] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])($event => _ctx.fetchTrackingMethods(), ["prevent"])) |
| }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('General_Refresh')), 1)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.recommendedMethod ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { |
| src: _ctx.recommendedMethod.icon, |
| alt: `${_ctx.recommendedMethod.name} logo` |
| }, null, 8, _hoisted_7), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataInstallWithXRecommendation', _ctx.recommendedMethod.name)), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataRecommendationText', _ctx.recommendedMethod.name)), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { |
| href: `#${_ctx.recommendedMethod.id.toLowerCase()}`, |
| class: "btn", |
| onClick: _cache[2] || (_cache[2] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])($event => _ctx.showMethod(_ctx.recommendedMethod.id), ["prevent"])) |
| }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataInstallWithX', _ctx.recommendedMethod.name)), 9, _hoisted_8)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_9, [_hoisted_10, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataOtherInstallMethods')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("p", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataOtherInstallMethodsIntro')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("ul", null, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.trackingMethods, method => { |
| return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("li", { |
| class: "list-entry", |
| key: method.id |
| }, [method.content ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", { |
| key: 0, |
| href: `#${method.id.toLowerCase()}`, |
| onClick: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])($event => _ctx.showMethod(method.id), ["prevent"]) |
| }, [method.icon ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("img", { |
| key: 0, |
| src: method.icon, |
| class: "list-entry-icon" |
| }, null, 8, _hoisted_12)) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_13)), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_14, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(method.name), 1)], 8, _hoisted_11)) : method.link ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", { |
| key: 1, |
| href: method.link, |
| target: "_blank", |
| rel: "noreferrer noopener" |
| }, [method.icon ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("img", { |
| key: 0, |
| src: method.icon, |
| class: "list-entry-icon" |
| }, null, 8, _hoisted_16)) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_17)), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", _hoisted_18, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(method.name), 1)], 8, _hoisted_15)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]); |
| }), 128))])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", _hoisted_19, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("h2", null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataNotYetReady')), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("a", { |
| href: _ctx.backToMatomoLink |
| }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.translate('BotTracking_SiteWithoutDataBackToMatomo')), 9, _hoisted_20)])], 64)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.showMethodDetails ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", { |
| key: 3, |
| class: "tracking-method-details", |
| "data-method": _ctx.showMethodDetails.id |
| }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", { |
| src: _ctx.showMethodDetails.icon, |
| alt: `${_ctx.showMethodDetails.name} logo` |
| }, null, 8, _hoisted_22), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_VueEntryContainer, { |
| html: _ctx.showMethodDetails.content |
| }, null, 8, ["html"])], 8, _hoisted_21)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]); |
| } |
| |
|
|
| |
| var external_CoreHome_ = __webpack_require__("19dc"); |
|
|
| |
|
|
|
|
| var SiteWithoutDatavue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ |
| components: { |
| ActivityIndicator: external_CoreHome_["ActivityIndicator"], |
| VueEntryContainer: external_CoreHome_["VueEntryContainer"] |
| }, |
| props: { |
| backToMatomoLink: String |
| }, |
| data() { |
| return { |
| loading: true, |
| errorMessage: null, |
| showMethodDetails: null, |
| recommendedMethod: null, |
| trackingMethods: [] |
| }; |
| }, |
| created() { |
| Object(external_commonjs_vue_commonjs2_vue_root_Vue_["watch"])(() => external_CoreHome_["MatomoUrl"].hashParsed.value.activeTab, activeTab => { |
| this.showMethodDetails = this.findTrackingMethod(activeTab); |
| }); |
| this.fetchTrackingMethods(); |
| }, |
| methods: { |
| fetchTrackingMethods() { |
| const params = { |
| module: 'BotTracking', |
| action: 'getTrackingMethodsForSite', |
| idSite: external_CoreHome_["Matomo"].idSite |
| }; |
| this.loading = true; |
| this.errorMessage = null; |
| external_CoreHome_["AjaxHelper"].fetch(params).then(response => { |
| const trackingMethods = Array.isArray(response === null || response === void 0 ? void 0 : response.trackingMethods) ? [...response.trackingMethods] : []; |
| const recommendedIndex = trackingMethods.findIndex(method => method.wasDetected); |
| if (recommendedIndex !== -1) { |
| this.recommendedMethod = trackingMethods[recommendedIndex]; |
| trackingMethods.splice(recommendedIndex, 1); |
| } else { |
| this.recommendedMethod = null; |
| } |
| this.trackingMethods = trackingMethods; |
| }).catch(() => { |
| this.errorMessage = Object(external_CoreHome_["translate"])('General_ErrorRequest', '', ''); |
| this.recommendedMethod = null; |
| this.trackingMethods = []; |
| }).finally(() => { |
| this.loading = false; |
| this.showMethodDetails = this.findTrackingMethod(external_CoreHome_["MatomoUrl"].hashParsed.value.activeTab); |
| }); |
| }, |
| findTrackingMethod(methodId) { |
| if (this.recommendedMethod && methodId && this.recommendedMethod.id.toLowerCase() === methodId.toLowerCase()) { |
| return this.recommendedMethod; |
| } |
| let trackingMethod = null; |
| Object.entries(this.trackingMethods).forEach(([, method]) => { |
| if (methodId && method.id.toLowerCase() === methodId.toLowerCase() && method.content) { |
| trackingMethod = method; |
| } |
| }); |
| return trackingMethod; |
| }, |
| showMethod(methodId) { |
| external_CoreHome_["MatomoUrl"].updateHash(Object.assign(Object.assign({}, external_CoreHome_["MatomoUrl"].hashParsed.value), {}, { |
| activeTab: methodId.toLowerCase() |
| })); |
| }, |
| showOverview() { |
| external_CoreHome_["MatomoUrl"].updateHash(Object.assign(Object.assign({}, external_CoreHome_["MatomoUrl"].hashParsed.value), {}, { |
| activeTab: null |
| })); |
| } |
| }, |
| computed: { |
| headline() { |
| if (this.showMethodDetails && this.showMethodDetails.name) { |
| if (this.showMethodDetails.isOthers) { |
| return this.showMethodDetails.name; |
| } |
| return Object(external_CoreHome_["translate"])('BotTracking_SiteWithoutDataInstallWithX', this.showMethodDetails.name); |
| } |
| return Object(external_CoreHome_["translate"])('BotTracking_SiteWithoutDataChooseTrackingMethod'); |
| } |
| } |
| })); |
| |
| |
| |
|
|
|
|
|
|
| SiteWithoutDatavue_type_script_lang_ts.render = render |
|
|
| var SiteWithoutData = (SiteWithoutDatavue_type_script_lang_ts); |
| |
|
|
| const NoRecentRequestsWidgetvue_type_template_id_d9a3d5fe_hoisted_1 = ["innerHTML"]; |
| function NoRecentRequestsWidgetvue_type_template_id_d9a3d5fe_render(_ctx, _cache, $props, $setup, $data, $options) { |
| return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", { |
| class: "alert alert-warning bot-tracking-no-recent-requests-message", |
| innerHTML: _ctx.$sanitize(_ctx.messageHtml) |
| }, null, 8, NoRecentRequestsWidgetvue_type_template_id_d9a3d5fe_hoisted_1); |
| } |
| |
|
|
| |
|
|
|
|
| var NoRecentRequestsWidgetvue_type_script_lang_ts = (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["defineComponent"])({ |
| computed: { |
| noDataUrl() { |
| var _Matomo$idSite; |
| const { |
| period, |
| date |
| } = external_CoreHome_["MatomoUrl"].parsed.value; |
| const query = external_CoreHome_["MatomoUrl"].stringify({ |
| module: 'BotTracking', |
| action: 'siteWithoutData', |
| idSite: (_Matomo$idSite = external_CoreHome_["Matomo"].idSite) !== null && _Matomo$idSite !== void 0 ? _Matomo$idSite : external_CoreHome_["MatomoUrl"].parsed.value.idSite, |
| period, |
| date |
| }); |
| return `index.php?${query}`; |
| }, |
| messageHtml() { |
| const linkOpen = `<a href="${this.noDataUrl}">`; |
| return Object(external_CoreHome_["translate"])('BotTracking_NoRecentAIBotRequests', '<strong>', '</strong>', linkOpen, '</a>'); |
| } |
| } |
| })); |
| |
| |
| |
|
|
|
|
|
|
| NoRecentRequestsWidgetvue_type_script_lang_ts.render = NoRecentRequestsWidgetvue_type_template_id_d9a3d5fe_render |
|
|
| var NoRecentRequestsWidget = (NoRecentRequestsWidgetvue_type_script_lang_ts); |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
| |
|
|
|
|
|
|
|
|
| }) |
|
|
| }); |
| }); |
| |