@zyzgroup/core-web 0.0.85 → 0.0.87

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zyzgroup/core-web",
3
3
  "private": false,
4
- "version": "0.0.85",
4
+ "version": "0.0.87",
5
5
  "sideEffects": false,
6
6
  "type": "module",
7
7
  "browser": {
package/types/axios.d.ts CHANGED
@@ -19,6 +19,8 @@ export declare class FetchWithAxios {
19
19
  head<T = any>(url: string, config?: FetchWithAxiosRequestConfig): Promise<T>;
20
20
  options<T = any>(url: string, config?: FetchWithAxiosRequestConfig): Promise<T>;
21
21
  post<T = any>(url: string, data?: Record<string, any>, config?: FetchWithAxiosRequestConfig): Promise<T>;
22
+ postBlob<T = any>(url: string, data: FormData, config?: FetchWithAxiosRequestConfig): Promise<T>;
23
+ postForm<T = any>(url: string, formEl: HTMLFormElement, config?: FetchWithAxiosRequestConfig): Promise<AxiosResponse<T, any>>;
22
24
  put<T = any>(url: string, data?: Record<string, any>, config?: FetchWithAxiosRequestConfig): Promise<T>;
23
25
  patch<T = any>(url: string, data?: Record<string, any>, config?: FetchWithAxiosRequestConfig): Promise<T>;
24
26
  getUri(config?: FetchWithAxiosRequestConfig): string;
@@ -1 +1 @@
1
- {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../src/axios.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC3B,MAAM,OAAO,CAAC;AA0Bf,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IAErE,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,0BAA0B,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACjE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;KACrC,CAAC;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,QAAQ,EAAE,aAAa,CAAC;gBASZ,MAAM,CAAC,EAAE,2BAA2B;IAqDnC,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,CAAC,CAAC;IAIA,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,2BAA2B;IAI9D,MAAM,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAKzB,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAKzB,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAK/B,MAAM,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,MAAM;CAG5D;AAED,qBAAa,2BAA2B,CACtC,CAAC,SAAS,kBAAkB,GAAG,2BAA2B;IAE1D,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;;YAMlC,YAAY;IAKpB,cAAc,CAAC,MAAM,EAAE,CAAC;IAWxB,cAAc,CAAC,MAAM,EAAE,CAAC;IAWxB,aAAa,CAAC,MAAM,EAAE,CAAC;IAYvB,gBAAgB;CAOvB"}
1
+ {"version":3,"file":"axios.d.ts","sourceRoot":"","sources":["../src/axios.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC3B,MAAM,OAAO,CAAC;AAYf,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IAErE,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,0BAA0B,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACjE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;KACrC,CAAC;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;CAQvB;AAED,qBAAa,cAAc;IACzB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,MAAM,CAAC,EAAE,2BAA2B;IAqDnC,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,CAAC,CAAC;IAIA,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,2BAA2B;IAI9D,MAAM,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,2BAA2B;IAKzB,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAKzB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,QAAQ,EACd,MAAM,CAAC,EAAE,2BAA2B;IAYzB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC3B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,2BAA2B;IAYzB,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAKzB,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,2BAA2B;IAK/B,MAAM,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,MAAM;CAG5D;AAED,qBAAa,2BAA2B,CACtC,CAAC,SAAS,kBAAkB,GAAG,2BAA2B;IAE1D,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;;YAMlC,YAAY;IAKpB,cAAc,CAAC,MAAM,EAAE,CAAC;IAWxB,cAAc,CAAC,MAAM,EAAE,CAAC;IAWxB,aAAa,CAAC,MAAM,EAAE,CAAC;IAYvB,gBAAgB;CAOvB"}
package/types/file.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { MIMEType, EncodeType } from "@zyzgroup/core-common";
1
+ /// <reference types="node" />
2
+ import { MIMEType, EncodeType, TimeData } from "@zyzgroup/core-common";
3
+ import { FetchWithAxios } from "./axios";
2
4
  export declare const DOMToString: (htmlElement: HTMLElement) => string;
3
5
  export declare const stringToDOM: (str: string, type?: "application/xhtml+xml" | "application/xml" | "image/svg+xml" | "text/html" | "text/xml") => Document;
4
6
  export declare const DOMToBlob: (htmlElement: HTMLElement, mimeType?: MIMEType, charsetOrEncode?: EncodeType) => Blob;
@@ -9,25 +11,36 @@ export declare function getFileTypeFromFile(file: File): Promise<MIMEType.UNKNOW
9
11
  export declare const getFileExtension: (file: File | string) => string;
10
12
  export declare function getFileMD5Hash(file: File, chunkSize?: number): Promise<string>;
11
13
  export declare class FileUpload {
14
+ axios: FetchWithAxios;
15
+ checkURL: string;
16
+ uploadURL: string;
12
17
  file: File;
13
- url: string;
14
- completeFileUrl: string;
15
- autoUpload: boolean;
16
- chunk: number;
18
+ chunkSize: number;
17
19
  chunks: number;
18
20
  currentChunk: number;
19
21
  isUploading: boolean;
20
- isUploaded: boolean;
22
+ begin: number;
23
+ end: number;
24
+ timer?: NodeJS.Timer;
25
+ timeData: TimeData;
26
+ onTime?: (time: string) => void;
27
+ onProgress?: (currentChunk: number, chunks: number) => void;
28
+ onComplete?: () => void;
29
+ fileHash?: string;
21
30
  constructor(options: {
31
+ baseURL: string;
32
+ checkURL: string;
33
+ uploadURL: string;
22
34
  file: File;
23
- url: string;
24
- completeFileUrl: string;
25
- autoUpload?: boolean;
26
- chunk?: number;
35
+ chunkSize?: number;
36
+ onTime?: (time: string) => void;
37
+ onProgress?: (currentChunk: number, chunks: number) => void;
38
+ onComplete?: () => void;
27
39
  });
28
- initXhr(): {
29
- load: () => void;
30
- error: (e: any) => void;
31
- };
40
+ start(): Promise<void>;
41
+ pause(): void;
42
+ private uploadChunk;
43
+ private startTimeCount;
44
+ private stopTimeCount;
32
45
  }
33
46
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,UAAU,EACX,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,WAAW,gBAAiB,WAAW,WAEnD,CAAC;AAEF,eAAO,MAAM,WAAW,QACjB,MAAM,SAEP,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,UAAU,aAGf,CAAC;AAEF,eAAO,MAAM,SAAS,gBACP,WAAW,4DAKzB,CAAC;AAKF,eAAO,MAAM,UAAU,SACf,IAAI,GAAG,MAAM,QACb,MAAM,KACX,QAAQ,IAAI,CAgBd,CAAC;AASF,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,EAAU,EACzB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,EAAE,CAAC,CA4CjB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,EAC9D,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,aAAsB,EAClE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACnD,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,yHAGnD;AAGD,eAAO,MAAM,gBAAgB,SAAU,IAAI,GAAG,MAAM,KAAG,MAQtD,CAAC;AAwFF,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,SAAkB,mBAY3E;AAED,qBAAa,UAAU;IAErB,IAAI,EAAE,IAAI,CAAC;IAEX,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IAExB,UAAU,EAAE,OAAO,CAAC;IAEpB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,OAAO,CAAC;IAErB,UAAU,EAAE,OAAO,CAAC;gBAER,OAAO,EAAE;QACnB,IAAI,EAAE,IAAI,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IA6ED,OAAO;;mBAmBQ,GAAG;;CAiEnB"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,QAAQ,EACR,UAAU,EACV,QAAQ,EAIT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,WAAW,gBAAiB,WAAW,WAEnD,CAAC;AAEF,eAAO,MAAM,WAAW,QACjB,MAAM,SAEP,uBAAuB,GACvB,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,UAAU,aAGf,CAAC;AAEF,eAAO,MAAM,SAAS,gBACP,WAAW,4DAKzB,CAAC;AAKF,eAAO,MAAM,UAAU,SACf,IAAI,GAAG,MAAM,QACb,MAAM,KACX,QAAQ,IAAI,CAgBd,CAAC;AASF,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,EAAU,EACzB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,EAAE,CAAC,CA4CjB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,EAC9D,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,aAAsB,EAClE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACnD,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,yHAGnD;AAGD,eAAO,MAAM,gBAAgB,SAAU,IAAI,GAAG,MAAM,KAAG,MAQtD,CAAC;AAsCF,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,SAAkB,mBAY3E;AAED,qBAAa,UAAU;IACrB,KAAK,EAAE,cAAc,CAAC;IAEtB,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,EAAE,IAAI,CAAC;IAEX,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,SAAK;IAEjB,WAAW,UAAS;IACpB,KAAK,SAAK;IACV,GAAG,SAAK;IACR,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAsB;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;KACzB;IAwCY,KAAK;IAoBX,KAAK;YAOE,WAAW;IAczB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;CAMtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAqCA,wBAAgB,MAAM,CAAC,GAAG,SAAuB,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAMA;AAED,wBAAgB,QAAQ,CAAC,GAAG,SAAuB;;;;;;;;;EAkBlD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,WAGnC;AAED,wBAAgB,WAAW,CAAC,IAAI,SAAuB,UAMtD;AAMD,wBAAgB,cAAc,CAAC,GAAG,SAAkB,0BAanD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UAOzD;AAUD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,UAY5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM,CAER;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM,CAER"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAqCA,wBAAgB,MAAM,CAAC,GAAG,SAAuB,GAAG;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAMA;AAED,wBAAgB,QAAQ,CAAC,GAAG,SAAuB;;;;;;;;;EAkBlD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,WAGnC;AAED,wBAAgB,WAAW,CAAC,IAAI,SAAuB,UAMtD;AAMD,wBAAgB,cAAc,CAAC,GAAG,SAAkB,0BAanD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UAOzD;AAqBD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,UAY5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM,CAER;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM,CAER"}