@rowsncolumns/utils 9.2.39 → 9.2.41
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/cjs/cell-data-helpers.d.ts +13 -0
- package/dist/cjs/cell-data-helpers.d.ts.map +1 -1
- package/dist/cjs/cell-data-helpers.js +19 -1
- package/dist/cjs/excel-number-format.d.ts +128 -0
- package/dist/cjs/excel-number-format.d.ts.map +1 -0
- package/dist/cjs/excel-number-format.js +659 -0
- package/dist/cjs/formatter.d.ts +20 -0
- package/dist/cjs/formatter.d.ts.map +1 -1
- package/dist/cjs/formatter.js +300 -2
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/locale.d.ts +15 -0
- package/dist/cjs/locale.d.ts.map +1 -1
- package/dist/cjs/locale.js +58 -6
- package/dist/cjs/sheet-span.d.ts +13 -0
- package/dist/cjs/sheet-span.d.ts.map +1 -0
- package/dist/cjs/sheet-span.js +24 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/cell-data-helpers.d.ts +13 -0
- package/dist/esm/cell-data-helpers.d.ts.map +1 -1
- package/dist/esm/cell-data-helpers.js +14 -0
- package/dist/esm/excel-number-format.d.ts +128 -0
- package/dist/esm/excel-number-format.d.ts.map +1 -0
- package/dist/esm/excel-number-format.js +640 -0
- package/dist/esm/formatter.d.ts +20 -0
- package/dist/esm/formatter.d.ts.map +1 -1
- package/dist/esm/formatter.js +277 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/locale.d.ts +15 -0
- package/dist/esm/locale.d.ts.map +1 -1
- package/dist/esm/locale.js +42 -5
- package/dist/esm/sheet-span.d.ts +13 -0
- package/dist/esm/sheet-span.d.ts.map +1 -0
- package/dist/esm/sheet-span.js +20 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -31,6 +31,19 @@ export declare const getExtendedValueError: (extValue?: Record<string, any> | nu
|
|
|
31
31
|
* `getDefaultHorizontalAlignment(sheetId, rowIndex, columnIndex)` so a toolbar
|
|
32
32
|
* alignment selector reports the alignment the grid actually draws.
|
|
33
33
|
*/
|
|
34
|
+
/**
|
|
35
|
+
* Excel's `justify` and `distributed` alignments imply word wrap: the cell
|
|
36
|
+
* wraps inside its own width even without `wrapStrategy: "wrap"` (there is
|
|
37
|
+
* nothing to spread across otherwise) and the row auto-fits the wrapped
|
|
38
|
+
* lines. Shared by the canvas renderer (wrap + overflow decision) and the
|
|
39
|
+
* state hooks' row auto-height so both agree on which cells wrap.
|
|
40
|
+
*/
|
|
41
|
+
export declare const alignmentImpliesWrap: (align: HorizontalAlign | string | null | undefined) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Whether a cell format wraps its text — explicit `wrapStrategy: "wrap"` or
|
|
44
|
+
* an alignment that wraps implicitly ({@link alignmentImpliesWrap}).
|
|
45
|
+
*/
|
|
46
|
+
export declare const cellFormatWrapsText: (format: Pick<CellFormat, "wrapStrategy" | "horizontalAlignment"> | null | undefined) => boolean;
|
|
34
47
|
export declare const resolveDefaultHorizontalAlignment: ({ errorValue, userEnteredValue, effectiveValue, dataValidation, }: {
|
|
35
48
|
errorValue: unknown;
|
|
36
49
|
userEnteredValue: Record<string, any> | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-data-helpers.d.ts","sourceRoot":"","sources":["../../cell-data-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,EACxD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EACtD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,QAAQ,EACzD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,EACvD,OAAO,CAAC,GAAG,IAAI,KACd,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,SAEvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EACtD,OAAO,CAAC,GAAG,IAAI,KACd,MAAM,GAAG,SAAS,GAAG,IAEvB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAE1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,OAAO,GAAG,SAEZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,GAAG,GAAG,SAER,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iCAAiC,GAAI,mEAK/C;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1E,KAAG,eAAe,GAAG,SASrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"cell-data-helpers.d.ts","sourceRoot":"","sources":["../../cell-data-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,QAAQ,EACxD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EACtD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,QAAQ,EACzD,OAAO,CAAC,GAAG,IAAI,KACd,CAAC,CAAC,IAAI,CAER,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,EACvD,OAAO,CAAC,GAAG,IAAI,KACd,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,SAEvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,QAAQ,EACtD,OAAO,CAAC,GAAG,IAAI,KACd,MAAM,GAAG,SAAS,GAAG,IAEvB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAE1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,OAAO,GAAG,SAEZ,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,MAAM,GAAG,SAEX,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KACpC,GAAG,GAAG,SAER,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACjD,OAAyD,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QACI,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,qBAAqB,CAAC,GACxD,IAAI,GACJ,SAAS,KACZ,OAEgD,CAAC;AAEpD,eAAO,MAAM,iCAAiC,GAAI,mEAK/C;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,cAAc,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1E,KAAG,eAAe,GAAG,SASrB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Note: These functions use generic types to avoid circular dependencies
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.resolveDefaultHorizontalAlignment = exports.getExtendedValueError = exports.getExtendedValueFormula = exports.getExtendedValueBool = exports.getExtendedValueString = exports.getExtendedValueNumber = exports.getStyleId = exports.getCellFormattedValue = exports.getCellEffectiveFormat = exports.getCellUserEnteredFormat = exports.getCellEffectiveValue = exports.getCellUserEnteredValue = void 0;
|
|
9
|
+
exports.resolveDefaultHorizontalAlignment = exports.cellFormatWrapsText = exports.alignmentImpliesWrap = exports.getExtendedValueError = exports.getExtendedValueFormula = exports.getExtendedValueBool = exports.getExtendedValueString = exports.getExtendedValueNumber = exports.getStyleId = exports.getCellFormattedValue = exports.getCellEffectiveFormat = exports.getCellUserEnteredFormat = exports.getCellEffectiveValue = exports.getCellUserEnteredValue = void 0;
|
|
10
10
|
var getCellUserEnteredValue = function (cell) {
|
|
11
11
|
var _a;
|
|
12
12
|
return (_a = cell === null || cell === void 0 ? void 0 : cell.ue) !== null && _a !== void 0 ? _a : cell === null || cell === void 0 ? void 0 : cell.userEnteredValue;
|
|
@@ -77,6 +77,24 @@ exports.getExtendedValueError = getExtendedValueError;
|
|
|
77
77
|
* `getDefaultHorizontalAlignment(sheetId, rowIndex, columnIndex)` so a toolbar
|
|
78
78
|
* alignment selector reports the alignment the grid actually draws.
|
|
79
79
|
*/
|
|
80
|
+
/**
|
|
81
|
+
* Excel's `justify` and `distributed` alignments imply word wrap: the cell
|
|
82
|
+
* wraps inside its own width even without `wrapStrategy: "wrap"` (there is
|
|
83
|
+
* nothing to spread across otherwise) and the row auto-fits the wrapped
|
|
84
|
+
* lines. Shared by the canvas renderer (wrap + overflow decision) and the
|
|
85
|
+
* state hooks' row auto-height so both agree on which cells wrap.
|
|
86
|
+
*/
|
|
87
|
+
var alignmentImpliesWrap = function (align) { return align === "justify" || align === "distributed"; };
|
|
88
|
+
exports.alignmentImpliesWrap = alignmentImpliesWrap;
|
|
89
|
+
/**
|
|
90
|
+
* Whether a cell format wraps its text — explicit `wrapStrategy: "wrap"` or
|
|
91
|
+
* an alignment that wraps implicitly ({@link alignmentImpliesWrap}).
|
|
92
|
+
*/
|
|
93
|
+
var cellFormatWrapsText = function (format) {
|
|
94
|
+
return (format === null || format === void 0 ? void 0 : format.wrapStrategy) === "wrap" ||
|
|
95
|
+
(0, exports.alignmentImpliesWrap)(format === null || format === void 0 ? void 0 : format.horizontalAlignment);
|
|
96
|
+
};
|
|
97
|
+
exports.cellFormatWrapsText = cellFormatWrapsText;
|
|
80
98
|
var resolveDefaultHorizontalAlignment = function (_a) {
|
|
81
99
|
var _b;
|
|
82
100
|
var errorValue = _a.errorValue, userEnteredValue = _a.userEnteredValue, effectiveValue = _a.effectiveValue, dataValidation = _a.dataValidation;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Excel-parity pre-pass for number formatting.
|
|
3
|
+
*
|
|
4
|
+
* `numfmt` renders the bulk of Excel's format language, but it decides three
|
|
5
|
+
* things from the binary double where Excel decides them from the number's
|
|
6
|
+
* 15-significant-digit decimal representation:
|
|
7
|
+
*
|
|
8
|
+
* - rounding to a fixed number of decimals (`0.00` of `1.005` is `1.01`, not
|
|
9
|
+
* the `1.00` the double `1.00499999999999989…` rounds to);
|
|
10
|
+
* - `General`, which switches to scientific notation below 1E-4 and above
|
|
11
|
+
* 11 digits and rounds (never truncates) the 11th digit;
|
|
12
|
+
* - magnitudes ≥ 1E15, where Excel pads the 15 significant digits with
|
|
13
|
+
* zeros (`0.00` of `1E21` is `1000000000000000000000.00`).
|
|
14
|
+
*
|
|
15
|
+
* It also renders a date/time format for a serial outside Excel's calendar
|
|
16
|
+
* (negative, or ≥ 10000-01-01) as `#######`, as Excel does in the cell.
|
|
17
|
+
*
|
|
18
|
+
* Everything here works on the pattern's SECTION the value selects, so
|
|
19
|
+
* multi-section formats (`0.00;(0.00);"-"`) keep their Excel section rules.
|
|
20
|
+
* A format with `[>100]`-style conditions is resolved here too — which
|
|
21
|
+
* section matches, and whether the value's sign is shown — so the matched
|
|
22
|
+
* section gets the same decimal rules; the library then renders that one
|
|
23
|
+
* section on its own.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* What Excel shows when a value cannot be rendered by its format: a
|
|
27
|
+
* date/time outside the calendar, or a number no conditional section takes.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DATE_OVERFLOW_DISPLAY = "#######";
|
|
30
|
+
export type FormatSectionKind = "general" | "empty" | "number" | "date" | "text" | "other";
|
|
31
|
+
export type FormatConditionOperator = "<" | "<=" | ">" | ">=" | "=" | "<>";
|
|
32
|
+
/** A `[>100]`-style section condition. */
|
|
33
|
+
export interface FormatCondition {
|
|
34
|
+
op: FormatConditionOperator;
|
|
35
|
+
operand: number;
|
|
36
|
+
}
|
|
37
|
+
export interface FormatSectionInfo {
|
|
38
|
+
kind: FormatSectionKind;
|
|
39
|
+
/** The section body with color / locale / condition tokens removed. */
|
|
40
|
+
body: string;
|
|
41
|
+
/** `[>100]`-style condition on this section. */
|
|
42
|
+
hasCondition: boolean;
|
|
43
|
+
condition?: FormatCondition;
|
|
44
|
+
/** Elapsed-time token (`[h]`, `[mm]`, `[s]`) — negative values are legal. */
|
|
45
|
+
isElapsed: boolean;
|
|
46
|
+
/** Literal text before a `General` token (`-General` → `"-"`). */
|
|
47
|
+
generalPrefix: string;
|
|
48
|
+
/** Digit placeholders after the decimal point. */
|
|
49
|
+
decimals: number;
|
|
50
|
+
/** Number of `%` signs (each scales by 100). */
|
|
51
|
+
percent: number;
|
|
52
|
+
/** Trailing scaling commas (each divides by 1000). */
|
|
53
|
+
commaScale: number;
|
|
54
|
+
/** A grouping comma between digit placeholders. */
|
|
55
|
+
grouping: boolean;
|
|
56
|
+
/** Only placeholders / separators — safe to render without the library. */
|
|
57
|
+
isPlainNumber: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Digit placeholders outside a fraction: a `-` prefixed to this section is
|
|
60
|
+
* dropped when every digit it renders is zero (`0.00` of -0.001 → `0.00`).
|
|
61
|
+
*/
|
|
62
|
+
volatileSign: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Split a format code into its `;` sections, honouring quotes, bracket
|
|
66
|
+
* tokens and backslash escapes.
|
|
67
|
+
*/
|
|
68
|
+
export declare const splitFormatSections: (code: string) => string[];
|
|
69
|
+
/** Classify one section of a format code. */
|
|
70
|
+
export declare const analyzeFormatSection: (section: string) => FormatSectionInfo;
|
|
71
|
+
/**
|
|
72
|
+
* Which section Excel applies to a numeric value: one section covers every
|
|
73
|
+
* number; two sections split positive-or-zero / negative; three add a zero
|
|
74
|
+
* section. Returns the index and whether the section's sign is implicit.
|
|
75
|
+
*/
|
|
76
|
+
export declare const pickNumberSection: (sectionCount: number, value: number) => {
|
|
77
|
+
index: number;
|
|
78
|
+
implicitSign: boolean;
|
|
79
|
+
};
|
|
80
|
+
export interface ResolvedConditionalSection {
|
|
81
|
+
index: number;
|
|
82
|
+
/** The implicit `General` fallback Excel adds to a one-section conditional format. */
|
|
83
|
+
generated: boolean;
|
|
84
|
+
/** A negative value's rendering is prefixed with `-`. */
|
|
85
|
+
minus: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Excel's section selection for a format with `[>100]`-style conditions:
|
|
89
|
+
* the first of the (up to three) numeric sections whose condition holds —
|
|
90
|
+
* an unconditional section always holds — or `undefined` when none does.
|
|
91
|
+
* `conditions[i]` is section i's condition (or `undefined`).
|
|
92
|
+
*/
|
|
93
|
+
export declare const resolveConditionalSection: (conditions: readonly (FormatCondition | undefined)[], value: number) => ResolvedConditionalSection | undefined;
|
|
94
|
+
/** Remove the `[>100]`-style condition tokens from one section. */
|
|
95
|
+
export declare const stripConditionTokens: (section: string) => string;
|
|
96
|
+
/**
|
|
97
|
+
* Round |x|·10^shift half away from zero to `decimals` places using its
|
|
98
|
+
* 15-significant-digit decimal representation, and return the rounded value
|
|
99
|
+
* scaled back (÷10^shift). Returns `x` unchanged when no digit is dropped.
|
|
100
|
+
*/
|
|
101
|
+
export declare const roundDecimal15: (x: number, decimals: number, shift?: number) => number;
|
|
102
|
+
/** Excel `General` for a finite number, using `.`/`E` (caller localizes). */
|
|
103
|
+
export declare const excelGeneral: (value: number) => string;
|
|
104
|
+
/**
|
|
105
|
+
* Digits of |x| for |x| ≥ 1E15 as Excel shows them: the 15 significant
|
|
106
|
+
* digits followed by zeros (Excel stores nothing beyond 15 digits).
|
|
107
|
+
*/
|
|
108
|
+
export declare const hugeIntegerDigits: (x: number) => string;
|
|
109
|
+
export declare const groupDigits: (digits: string, separator: string) => string;
|
|
110
|
+
export interface ExcelPrePassResult {
|
|
111
|
+
/** A final rendering; the library is not consulted. */
|
|
112
|
+
text?: string;
|
|
113
|
+
/** The (possibly pre-rounded) value to hand to the library. */
|
|
114
|
+
value: number;
|
|
115
|
+
}
|
|
116
|
+
export interface ExcelPrePassLocale {
|
|
117
|
+
decimal: string;
|
|
118
|
+
group: string;
|
|
119
|
+
}
|
|
120
|
+
/** Renders one section of a format code with the formatting library. */
|
|
121
|
+
export type RenderFormatSection = (code: string, value: number) => string;
|
|
122
|
+
/**
|
|
123
|
+
* Apply Excel's decimal rules before handing a numeric value to `numfmt`.
|
|
124
|
+
* `render` formats one section of the pattern with the library; it is used
|
|
125
|
+
* when the pre-pass has to resolve a conditional format itself.
|
|
126
|
+
*/
|
|
127
|
+
export declare const excelNumberPrePass: (pattern: string, value: number, l10n: ExcelPrePassLocale, render: RenderFormatSection) => ExcelPrePassResult;
|
|
128
|
+
//# sourceMappingURL=excel-number-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"excel-number-format.d.ts","sourceRoot":"","sources":["../../excel-number-format.ts"],"names":[],"mappings":"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"}
|