@adins/ucsearch 2.9.4 → 2.9.6

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.
Files changed (62) hide show
  1. package/adins-ucsearch.d.ts +1 -2
  2. package/esm2020/adins-ucsearch.mjs +5 -0
  3. package/esm2020/lib/model/adins-constant.mjs +22 -0
  4. package/esm2020/lib/model/criteria-obj.model.mjs +9 -0
  5. package/esm2020/lib/model/input-search-obj.model.mjs +45 -0
  6. package/esm2020/lib/model/integration-obj.model.mjs +12 -0
  7. package/esm2020/lib/model/key-value-report.model.mjs +14 -0
  8. package/esm2020/lib/model/key-value-uc-search.model.mjs +38 -0
  9. package/esm2020/lib/model/request-criteria-obj.model.mjs +14 -0
  10. package/esm2020/lib/pipe/text-search.pipe.mjs +24 -0
  11. package/esm2020/lib/services/excel-service/excel-service.mjs +29 -0
  12. package/esm2020/lib/ucsearch.component.mjs +949 -0
  13. package/esm2020/lib/ucsearch.module.mjs +55 -0
  14. package/esm2020/lib/ucsearch.service.mjs +14 -0
  15. package/esm2020/public-api.mjs +7 -0
  16. package/fesm2015/adins-ucsearch.mjs +1214 -0
  17. package/fesm2015/adins-ucsearch.mjs.map +1 -0
  18. package/fesm2020/adins-ucsearch.mjs +1205 -0
  19. package/fesm2020/adins-ucsearch.mjs.map +1 -0
  20. package/lib/pipe/text-search.pipe.d.ts +3 -0
  21. package/lib/services/excel-service/excel-service.d.ts +3 -0
  22. package/lib/ucsearch.component.d.ts +3 -0
  23. package/lib/ucsearch.module.d.ts +12 -0
  24. package/lib/ucsearch.service.d.ts +3 -0
  25. package/package.json +23 -12
  26. package/adins-ucsearch.metadata.json +0 -1
  27. package/bundles/adins-ucsearch.umd.js +0 -1758
  28. package/bundles/adins-ucsearch.umd.js.map +0 -1
  29. package/bundles/adins-ucsearch.umd.min.js +0 -2
  30. package/bundles/adins-ucsearch.umd.min.js.map +0 -1
  31. package/esm2015/adins-ucsearch.js +0 -11
  32. package/esm2015/lib/model/adins-constant.js +0 -68
  33. package/esm2015/lib/model/criteria-obj.model.js +0 -31
  34. package/esm2015/lib/model/input-search-obj.model.js +0 -105
  35. package/esm2015/lib/model/integration-obj.model.js +0 -30
  36. package/esm2015/lib/model/key-value-report.model.js +0 -36
  37. package/esm2015/lib/model/key-value-uc-search.model.js +0 -54
  38. package/esm2015/lib/model/request-criteria-obj.model.js +0 -42
  39. package/esm2015/lib/pipe/text-search.pipe.js +0 -33
  40. package/esm2015/lib/services/excel-service/excel-service.js +0 -49
  41. package/esm2015/lib/ucsearch.component.js +0 -1309
  42. package/esm2015/lib/ucsearch.module.js +0 -43
  43. package/esm2015/lib/ucsearch.service.js +0 -18
  44. package/esm2015/public-api.js +0 -11
  45. package/esm5/adins-ucsearch.js +0 -11
  46. package/esm5/lib/model/adins-constant.js +0 -72
  47. package/esm5/lib/model/criteria-obj.model.js +0 -33
  48. package/esm5/lib/model/input-search-obj.model.js +0 -117
  49. package/esm5/lib/model/integration-obj.model.js +0 -32
  50. package/esm5/lib/model/key-value-report.model.js +0 -42
  51. package/esm5/lib/model/key-value-uc-search.model.js +0 -58
  52. package/esm5/lib/model/request-criteria-obj.model.js +0 -44
  53. package/esm5/lib/pipe/text-search.pipe.js +0 -42
  54. package/esm5/lib/services/excel-service/excel-service.js +0 -63
  55. package/esm5/lib/ucsearch.component.js +0 -1447
  56. package/esm5/lib/ucsearch.module.js +0 -47
  57. package/esm5/lib/ucsearch.service.js +0 -21
  58. package/esm5/public-api.js +0 -11
  59. package/fesm2015/adins-ucsearch.js +0 -1491
  60. package/fesm2015/adins-ucsearch.js.map +0 -1
  61. package/fesm5/adins-ucsearch.js +0 -1665
  62. package/fesm5/adins-ucsearch.js.map +0 -1
@@ -1,42 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { AdInsConstant } from "./adins-constant";
6
- import { IntegrationObj } from "./integration-obj.model";
7
- export class RequestCriteriaObj {
8
- constructor() {
9
- this.includeCount = true;
10
- this.includeData = true;
11
- this.isLoading = true;
12
- this.queryString = '';
13
- this.rowVersion = '';
14
- this.integrationObj = new IntegrationObj();
15
- this.joinType = AdInsConstant.JoinTypeInner;
16
- }
17
- }
18
- if (false) {
19
- /** @type {?} */
20
- RequestCriteriaObj.prototype.includeCount;
21
- /** @type {?} */
22
- RequestCriteriaObj.prototype.includeData;
23
- /** @type {?} */
24
- RequestCriteriaObj.prototype.pageNo;
25
- /** @type {?} */
26
- RequestCriteriaObj.prototype.rowPerPage;
27
- /** @type {?} */
28
- RequestCriteriaObj.prototype.orderBy;
29
- /** @type {?} */
30
- RequestCriteriaObj.prototype.criteria;
31
- /** @type {?} */
32
- RequestCriteriaObj.prototype.isLoading;
33
- /** @type {?} */
34
- RequestCriteriaObj.prototype.queryString;
35
- /** @type {?} */
36
- RequestCriteriaObj.prototype.rowVersion;
37
- /** @type {?} */
38
- RequestCriteriaObj.prototype.integrationObj;
39
- /** @type {?} */
40
- RequestCriteriaObj.prototype.joinType;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jcml0ZXJpYS1vYmoubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRpbnMvdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvbW9kZWwvcmVxdWVzdC1jcml0ZXJpYS1vYmoubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsTUFBTSxPQUFPLGtCQUFrQjtJQWEzQjtRQUVJLElBQUksQ0FBQyxZQUFZLEdBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDaEQsQ0FBQztDQUNKOzs7SUF0QkcsMENBQXFCOztJQUNyQix5Q0FBb0I7O0lBQ3BCLG9DQUFjOztJQUNkLHdDQUFrQjs7SUFDbEIscUNBQVk7O0lBQ1osc0NBQXVCOztJQUN2Qix1Q0FBb0I7O0lBQ3BCLHlDQUFpQjs7SUFDakIsd0NBQWdCOztJQUNoQiw0Q0FBK0I7O0lBQy9CLHNDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkSW5zQ29uc3RhbnQgfSBmcm9tIFwiLi9hZGlucy1jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU9iaiB9IGZyb20gXCIuL2NyaXRlcmlhLW9iai5tb2RlbFwiO1xyXG5pbXBvcnQgeyBJbnRlZ3JhdGlvbk9iaiB9IGZyb20gXCIuL2ludGVncmF0aW9uLW9iai5tb2RlbFwiO1xyXG4gXHJcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0Q3JpdGVyaWFPYmp7XHJcbiAgICBpbmNsdWRlQ291bnQ6Ym9vbGVhbjtcclxuICAgIGluY2x1ZGVEYXRhOmJvb2xlYW47XHJcbiAgICBwYWdlTm86bnVtYmVyO1xyXG4gICAgcm93UGVyUGFnZTpudW1iZXI7XHJcbiAgICBvcmRlckJ5OmFueTtcclxuICAgIGNyaXRlcmlhOkNyaXRlcmlhT2JqW107XHJcbiAgICBpc0xvYWRpbmcgOiBib29sZWFuO1xyXG4gICAgcXVlcnlTdHJpbmc6IGFueTtcclxuICAgIHJvd1ZlcnNpb246IGFueTtcclxuICAgIGludGVncmF0aW9uT2JqOiBJbnRlZ3JhdGlvbk9iajtcclxuICAgIGpvaW5UeXBlOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUNvdW50PXRydWU7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlRGF0YT10cnVlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnF1ZXJ5U3RyaW5nID0gJyc7XHJcbiAgICAgICAgdGhpcy5yb3dWZXJzaW9uID0gJyc7XHJcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbk9iaiA9IG5ldyBJbnRlZ3JhdGlvbk9iaigpO1xyXG4gICAgICAgIHRoaXMuam9pblR5cGUgPSBBZEluc0NvbnN0YW50LkpvaW5UeXBlSW5uZXI7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,33 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Pipe } from '@angular/core';
6
- export class TextSearchPipe {
7
- /**
8
- * @param {?} items
9
- * @param {?=} text
10
- * @return {?}
11
- */
12
- transform(items, text) {
13
- if (!text) {
14
- return items;
15
- }
16
- return items.filter((/**
17
- * @param {?} item
18
- * @return {?}
19
- */
20
- (item) => {
21
- if (item.Value && typeof item.Value === 'string') {
22
- return item.Value.toLowerCase().indexOf(text.toLowerCase()) > -1;
23
- }
24
- return false;
25
- }));
26
- }
27
- }
28
- TextSearchPipe.decorators = [
29
- { type: Pipe, args: [{
30
- name: 'textSearch'
31
- },] }
32
- ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zZWFyY2gucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGlucy91Y3NlYXJjaC8iLCJzb3VyY2VzIjpbImxpYi9waXBlL3RleHQtc2VhcmNoLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS3BELE1BQU0sT0FBTyxjQUFjOzs7Ozs7SUFFekIsU0FBUyxDQUFDLEtBQVksRUFBRSxJQUFVO1FBQ2hDLElBQUcsQ0FBQyxJQUFJLEVBQUM7WUFDUCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTTs7OztRQUFDLENBQUMsSUFBSSxFQUFDLEVBQUU7WUFDMUIsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUM7Z0JBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakU7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBQyxDQUFBO0lBQ0osQ0FBQzs7O1lBZkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxZQUFZO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd0ZXh0U2VhcmNoJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dFNlYXJjaFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgdGV4dD86IGFueSk6IGFueSB7XHJcbiAgICBpZighdGV4dCl7XHJcbiAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pPT57XHJcbiAgICAgIGlmKGl0ZW0uVmFsdWUgJiYgdHlwZW9mIGl0ZW0uVmFsdWUgPT09ICdzdHJpbmcnKXtcclxuICAgICAgICByZXR1cm4gaXRlbS5WYWx1ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGV4dC50b0xvd2VyQ2FzZSgpKT4gLTE7XHJcbiAgICAgIH0gXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -1,49 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Injectable } from '@angular/core';
6
- import * as FileSaver from 'file-saver';
7
- import * as XLSX from 'xlsx';
8
- /** @type {?} */
9
- const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
10
- /** @type {?} */
11
- const EXCEL_EXTENSION = '.xlsx';
12
- export class ExcelService {
13
- constructor() { }
14
- /**
15
- * @param {?} json
16
- * @param {?} excelFileName
17
- * @return {?}
18
- */
19
- exportAsExcelFile(json, excelFileName) {
20
- /** @type {?} */
21
- const worksheet = XLSX.utils.json_to_sheet(json);
22
- console.log('worksheet', worksheet);
23
- /** @type {?} */
24
- const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
25
- /** @type {?} */
26
- const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
27
- //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });
28
- this.saveAsExcelFile(excelBuffer, excelFileName);
29
- }
30
- /**
31
- * @private
32
- * @param {?} buffer
33
- * @param {?} fileName
34
- * @return {?}
35
- */
36
- saveAsExcelFile(buffer, fileName) {
37
- /** @type {?} */
38
- const data = new Blob([buffer], {
39
- type: EXCEL_TYPE
40
- });
41
- FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
42
- }
43
- }
44
- ExcelService.decorators = [
45
- { type: Injectable }
46
- ];
47
- /** @nocollapse */
48
- ExcelService.ctorParameters = () => [];
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhZGlucy91Y3NlYXJjaC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9leGNlbC1zZXJ2aWNlL2V4Y2VsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O01BRXZCLFVBQVUsR0FBRyxpRkFBaUY7O01BQzlGLGVBQWUsR0FBRyxPQUFPO0FBRy9CLE1BQU0sT0FBTyxZQUFZO0lBRXZCLGdCQUFnQixDQUFDOzs7Ozs7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7O2NBRW5ELFNBQVMsR0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDOztjQUM3QixRQUFRLEdBQWtCLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFOztjQUNqRixXQUFXLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsRixzRkFBc0Y7UUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7Ozs7OztJQUVPLGVBQWUsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7O2NBQzdDLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7UUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDekYsQ0FBQzs7O1lBcEJGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeGNlbFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0QXNFeGNlbEZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgXHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc29sZS5sb2coJ3dvcmtzaGVldCcsd29ya3NoZWV0KTtcclxuICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcclxuICAgIGNvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XHJcbiAgICAvL2NvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdidWZmZXInIH0pO1xyXG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyAnX2V4cG9ydF8nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbn0iXX0=