fleek-track-analytics 0.0.20 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-tool/lazy-load-tool.d.ts +1 -1
- package/dist/analytics-tool/lazy-load-tool.js +29 -8
- package/dist/analytics-tool/lazy-load-tool.js.map +1 -1
- package/dist/analytics-tool/react-native-segment.js +3 -3
- package/dist/analytics-tool/react-native-segment.js.map +1 -1
- package/dist/event-map/event-map.d.ts +7 -1
- package/dist/event-map/event-map.js +1 -0
- package/dist/event-map/event-map.js.map +1 -1
- package/dist/init/init.js +2 -2
- package/dist/init/init.js.map +1 -1
- package/dist/init/types.d.ts +1 -1
- package/dist/track-analytics/track-analytics.d.ts +1 -1
- package/dist/track-analytics/track-analytics.js +2 -2
- package/dist/track-analytics/track-analytics.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { tAPP, tPLATFORM } from '../types';
|
|
2
|
-
export declare const lazyLoadTool: (platform: tPLATFORM, app: tAPP) => import("../init/types").IAnalyticsWrapper | null
|
|
2
|
+
export declare const lazyLoadTool: (platform: tPLATFORM, app: tAPP) => Promise<import("../init/types").IAnalyticsWrapper | null>;
|
|
@@ -1,15 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.lazyLoadTool = void 0;
|
|
4
|
-
const
|
|
5
|
-
const web_segment_1 = require("./web-segment");
|
|
6
|
-
const getAnalyticsToolWrapper = (platform) => {
|
|
27
|
+
const getAnalyticsToolWrapper = async (platform) => {
|
|
7
28
|
try {
|
|
8
29
|
if (platform === 'REACT_NATIVE') {
|
|
9
|
-
return
|
|
30
|
+
return (await Promise.resolve().then(() => __importStar(require('./react-native-segment')))).reactNativeSegment;
|
|
10
31
|
}
|
|
11
32
|
if (platform === 'NODE' || platform === 'WEB') {
|
|
12
|
-
return
|
|
33
|
+
return (await Promise.resolve().then(() => __importStar(require('./web-segment')))).webSegment;
|
|
13
34
|
}
|
|
14
35
|
return null;
|
|
15
36
|
}
|
|
@@ -21,12 +42,12 @@ const getAnalyticsToolWrapper = (platform) => {
|
|
|
21
42
|
const ERROR_MESSAGES = {
|
|
22
43
|
TOOL_INIT_FAILED_AT_LAZY_LOAD: 'TOOL_INIT_FAILED_AT_LAZY_LOAD',
|
|
23
44
|
};
|
|
24
|
-
const lazyLoadTool = (platform, app) => {
|
|
45
|
+
const lazyLoadTool = async (platform, app) => {
|
|
25
46
|
let tool = null;
|
|
26
47
|
try {
|
|
27
|
-
const toolWrapper = getAnalyticsToolWrapper(platform);
|
|
48
|
+
const toolWrapper = await getAnalyticsToolWrapper(platform);
|
|
28
49
|
if (toolWrapper) {
|
|
29
|
-
tool = toolWrapper(app);
|
|
50
|
+
tool = await Promise.resolve(toolWrapper(app));
|
|
30
51
|
}
|
|
31
52
|
}
|
|
32
53
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-load-tool.js","sourceRoot":"","sources":["../../src/analytics-tool/lazy-load-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lazy-load-tool.js","sourceRoot":"","sources":["../../src/analytics-tool/lazy-load-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,uBAAuB,GAAG,KAAK,EAAE,QAAmB,EAAE,EAAE;IAC5D,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,wDAAa,wBAAwB,GAAC,CAAC,CAAC,kBAAkB,CAAC;QACrE,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9C,OAAO,CAAC,wDAAa,eAAe,GAAC,CAAC,CAAC,UAAU,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,6BAA6B,EAAE,+BAA+B;CAC/D,CAAC;AAEK,MAAM,YAAY,GAAG,KAAK,EAAE,QAAmB,EAAE,GAAS,EAAE,EAAE;IACnE,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,WAAW,GAA+B,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
|
|
@@ -13,16 +13,16 @@ const reactNativeSegment = (APP) => {
|
|
|
13
13
|
const { track, screen, identify } = client;
|
|
14
14
|
const trackWrapper = (eventName, eventParams) => {
|
|
15
15
|
const data = eventParams;
|
|
16
|
-
track(eventName, data);
|
|
16
|
+
track(eventName, Object.assign(Object.assign({}, data), { analyticsLib: true }));
|
|
17
17
|
};
|
|
18
18
|
const identifyWrapper = (id, traits) => {
|
|
19
|
-
identify(id, traits);
|
|
19
|
+
identify(id, Object.assign(Object.assign({}, traits), { avatar: 'ANALYTICS_LIB' }));
|
|
20
20
|
};
|
|
21
21
|
return {
|
|
22
22
|
track: trackWrapper,
|
|
23
23
|
screen: (params) => {
|
|
24
24
|
if (!(0, types_1.isScreenWeb)(params, 'REACT_NATIVE')) {
|
|
25
|
-
screen(params.name, params.properties);
|
|
25
|
+
screen(params.name, Object.assign(Object.assign({}, params.properties), { analyticsLib: true }));
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
identify: identifyWrapper,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native-segment.js","sourceRoot":"","sources":["../../src/analytics-tool/react-native-segment.ts"],"names":[],"mappings":";;;AAAA,4EAA+D;AAC/D,yDAAsD;AAGtD,yCAA+D;AAGxD,MAAM,kBAAkB,GAAwB,CAAC,GAAS,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC;QAC1B,QAAQ,EAAE,UAAU;QACpB,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,YAAY,GAAW,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;QAEtD,MAAM,IAAI,GAAG,WAA2C,CAAC;QAEzD,KAAK,CAAC,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"react-native-segment.js","sourceRoot":"","sources":["../../src/analytics-tool/react-native-segment.ts"],"names":[],"mappings":";;;AAAA,4EAA+D;AAC/D,yDAAsD;AAGtD,yCAA+D;AAGxD,MAAM,kBAAkB,GAAwB,CAAC,GAAS,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC;QAC1B,QAAQ,EAAE,UAAU;QACpB,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,YAAY,GAAW,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;QAEtD,MAAM,IAAI,GAAG,WAA2C,CAAC;QAEzD,KAAK,CAAC,SAAS,kCAAO,IAAI,KAAE,YAAY,EAAE,IAAI,IAAG,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;QAChD,QAAQ,CAAC,EAAY,EAAE,gCAAK,MAAM,KAAE,MAAM,EAAE,eAAe,GAAkB,CAAC,CAAC;IACjF,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAO,MAAM,CAAC,UAAU,KAAE,YAAY,EAAE,IAAI,IAAG,CAAC;YACpE,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,MAAM;KACtB,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,kBAAkB,sBA+B7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare enum EVENT_NAMES {
|
|
2
|
-
ADD_TO_CART = "ADD_TO_CART"
|
|
2
|
+
ADD_TO_CART = "ADD_TO_CART",
|
|
3
|
+
TEST_LIB_EVENT_TRACK = "TEST_LIB_EVENT_TRACK"
|
|
3
4
|
}
|
|
4
5
|
export interface ProductCartEventData {
|
|
5
6
|
value: number;
|
|
@@ -20,6 +21,11 @@ export interface ProductCartEventData {
|
|
|
20
21
|
productName: string;
|
|
21
22
|
grade: string;
|
|
22
23
|
}
|
|
24
|
+
export interface TestEventProps {
|
|
25
|
+
value1: string;
|
|
26
|
+
value2: string;
|
|
27
|
+
}
|
|
23
28
|
export interface EVENT_MAP {
|
|
24
29
|
[EVENT_NAMES.ADD_TO_CART]: ProductCartEventData;
|
|
30
|
+
[EVENT_NAMES.TEST_LIB_EVENT_TRACK]: TestEventProps;
|
|
25
31
|
}
|
|
@@ -4,5 +4,6 @@ exports.EVENT_NAMES = void 0;
|
|
|
4
4
|
var EVENT_NAMES;
|
|
5
5
|
(function (EVENT_NAMES) {
|
|
6
6
|
EVENT_NAMES["ADD_TO_CART"] = "ADD_TO_CART";
|
|
7
|
+
EVENT_NAMES["TEST_LIB_EVENT_TRACK"] = "TEST_LIB_EVENT_TRACK";
|
|
7
8
|
})(EVENT_NAMES || (exports.EVENT_NAMES = EVENT_NAMES = {}));
|
|
8
9
|
//# sourceMappingURL=event-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-map.js","sourceRoot":"","sources":["../../src/event-map/event-map.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"event-map.js","sourceRoot":"","sources":["../../src/event-map/event-map.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,0CAA2B,CAAA;IAC3B,4DAA6C,CAAA;AAC/C,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
|
package/dist/init/init.js
CHANGED
|
@@ -8,10 +8,10 @@ const failedAnalyticsReurn = {
|
|
|
8
8
|
screen: () => { },
|
|
9
9
|
type: 'FAILED_INIT',
|
|
10
10
|
};
|
|
11
|
-
const init = (params) => {
|
|
11
|
+
const init = async (params) => {
|
|
12
12
|
console.log(params);
|
|
13
13
|
try {
|
|
14
|
-
const analyticsWrapper = (0, lazy_load_tool_1.lazyLoadTool)(params.platform, params.App);
|
|
14
|
+
const analyticsWrapper = await (0, lazy_load_tool_1.lazyLoadTool)(params.platform, params.App);
|
|
15
15
|
if (!analyticsWrapper) {
|
|
16
16
|
console.log('ANALYTICS_WRAPPER_NULL');
|
|
17
17
|
}
|
package/dist/init/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":";;;AAAA,qEAAgE;AAGhE,MAAM,oBAAoB,GAAsB;IAC9C,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;IAChB,IAAI,EAAE,aAAa;CACpB,CAAC;AAEK,MAAM,IAAI,GAAuB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":";;;AAAA,qEAAgE;AAGhE,MAAM,oBAAoB,GAAsB;IAC9C,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;IAChB,IAAI,EAAE,aAAa;CACpB,CAAC;AAEK,MAAM,IAAI,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAGpB,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,IAAA,6BAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,gBAAgB,IAAI,oBAAoB,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,IAAI,QAcf"}
|
package/dist/init/types.d.ts
CHANGED
|
@@ -30,5 +30,5 @@ export interface IAnalyticsWrapper {
|
|
|
30
30
|
segmentClient?: SegmentClient;
|
|
31
31
|
}
|
|
32
32
|
export declare const isScreenWeb: (params: IWebScreenParams | IRNScreenParams, platform: tPLATFORM) => params is IWebScreenParams;
|
|
33
|
-
type tInit = (params: IAnalyticsInit) => IAnalyticsWrapper
|
|
33
|
+
type tInit = (params: IAnalyticsInit) => Promise<IAnalyticsWrapper>;
|
|
34
34
|
export { tInit as trackAnalyticsInit };
|
|
@@ -6,7 +6,7 @@ declare class TrackAnalytics {
|
|
|
6
6
|
private analyticsWrapper;
|
|
7
7
|
reactNativeSegmentClient?: SegmentClient;
|
|
8
8
|
constructor(params: IAnalyticsInit);
|
|
9
|
-
initAnalytics: () => void
|
|
9
|
+
initAnalytics: () => Promise<void>;
|
|
10
10
|
private checkInitDone;
|
|
11
11
|
track: tTrack;
|
|
12
12
|
identify: tIdentify;
|
|
@@ -7,9 +7,9 @@ const init_1 = require("../init/init");
|
|
|
7
7
|
class TrackAnalytics {
|
|
8
8
|
constructor(params) {
|
|
9
9
|
this.analyticsWrapper = null;
|
|
10
|
-
this.initAnalytics = () => {
|
|
10
|
+
this.initAnalytics = async () => {
|
|
11
11
|
try {
|
|
12
|
-
this.analyticsWrapper = (0, init_1.init)(this.initParams);
|
|
12
|
+
this.analyticsWrapper = await (0, init_1.init)(this.initParams);
|
|
13
13
|
if (this.initParams.platform === 'REACT_NATIVE') {
|
|
14
14
|
this.reactNativeSegmentClient = this.analyticsWrapper.segmentClient;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-analytics.js","sourceRoot":"","sources":["../../src/track-analytics/track-analytics.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAE7C,yCAAqH;AACrH,uCAAoC;AAGpC,MAAM,cAAc;IAKlB,YAAY,MAAsB;QAH1B,qBAAgB,GAA6B,IAAI,CAAC;QAO1D,kBAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"track-analytics.js","sourceRoot":"","sources":["../../src/track-analytics/track-analytics.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAE7C,yCAAqH;AACrH,uCAAoC;AAGpC,MAAM,cAAc;IAKlB,YAAY,MAAsB;QAH1B,qBAAgB,GAA6B,IAAI,CAAC;QAO1D,kBAAa,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;oBAChD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBACtE,CAAC;YACH,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAa,CAAC,qBAAqB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAWF,UAAK,GAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;;YAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,aAAQ,GAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;;YACnC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,MAA0C,EAAE,EAAE;;YACtD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,IAAI,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QA3CA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAaO,aAAa;QACnB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yBAAa,CAAC,4BAA4B,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CAuBF;AAEQ,wCAAc"}
|