@social-mail/shared 1.0.3

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 (69) hide show
  1. package/.gitlab-ci.yml +16 -0
  2. package/.vscode/launch.json +21 -0
  3. package/.vscode/settings.json +55 -0
  4. package/README.md +3 -0
  5. package/dist/QueryIterator.js +28 -0
  6. package/dist/QueryIterator.js.map +1 -0
  7. package/dist/mime-parser/AttachmentFile.js +21 -0
  8. package/dist/mime-parser/AttachmentFile.js.map +1 -0
  9. package/dist/mime-parser/HeaderContentDisposition.js +32 -0
  10. package/dist/mime-parser/HeaderContentDisposition.js.map +1 -0
  11. package/dist/mime-parser/HeaderContentType.js +33 -0
  12. package/dist/mime-parser/HeaderContentType.js.map +1 -0
  13. package/dist/mime-parser/MimeMessage.js +99 -0
  14. package/dist/mime-parser/MimeMessage.js.map +1 -0
  15. package/dist/mime-parser/MimeNode.js +406 -0
  16. package/dist/mime-parser/MimeNode.js.map +1 -0
  17. package/dist/mime-parser/encoder/RawBuffer.js +57 -0
  18. package/dist/mime-parser/encoder/RawBuffer.js.map +1 -0
  19. package/dist/mime-parser/encoder/base64-to-blob.js +30 -0
  20. package/dist/mime-parser/encoder/base64-to-blob.js.map +1 -0
  21. package/dist/mime-parser/encoder/quoted-printable.js +71 -0
  22. package/dist/mime-parser/encoder/quoted-printable.js.map +1 -0
  23. package/dist/mime-parser/encoder/word-encoding.js +45 -0
  24. package/dist/mime-parser/encoder/word-encoding.js.map +1 -0
  25. package/dist/mime-parser/parsePairs.js +40 -0
  26. package/dist/mime-parser/parsePairs.js.map +1 -0
  27. package/dist/mime-parser/stream/LineStream.js +99 -0
  28. package/dist/mime-parser/stream/LineStream.js.map +1 -0
  29. package/dist/mime-parser/stream/TextWriter.js +36 -0
  30. package/dist/mime-parser/stream/TextWriter.js.map +1 -0
  31. package/dist/mime-parser/tokenizer.js +46 -0
  32. package/dist/mime-parser/tokenizer.js.map +1 -0
  33. package/dist/tests/mime/lines-test.js +19 -0
  34. package/dist/tests/mime/lines-test.js.map +1 -0
  35. package/dist/tests/mime/message1.js +58 -0
  36. package/dist/tests/mime/message1.js.map +1 -0
  37. package/dist/tests/mime/message2.js +77 -0
  38. package/dist/tests/mime/message2.js.map +1 -0
  39. package/dist/tests/mime/pairs.js +33 -0
  40. package/dist/tests/mime/pairs.js.map +1 -0
  41. package/dist/tests/mime/parse-headers.js +104 -0
  42. package/dist/tests/mime/parse-headers.js.map +1 -0
  43. package/dist/tests/mime/word-encoding-test.js +21 -0
  44. package/dist/tests/mime/word-encoding-test.js.map +1 -0
  45. package/dist/tsconfig.tsbuildinfo +1 -0
  46. package/index.js +4 -0
  47. package/package.json +17 -0
  48. package/src/QueryIterator.js +33 -0
  49. package/src/mime-parser/AttachmentFile.js +29 -0
  50. package/src/mime-parser/HeaderContentDisposition.js +32 -0
  51. package/src/mime-parser/HeaderContentType.js +34 -0
  52. package/src/mime-parser/MimeMessage.js +100 -0
  53. package/src/mime-parser/MimeNode.js +435 -0
  54. package/src/mime-parser/encoder/RawBuffer.js +60 -0
  55. package/src/mime-parser/encoder/base64-to-blob.js +26 -0
  56. package/src/mime-parser/encoder/quoted-printable.js +118 -0
  57. package/src/mime-parser/encoder/word-encoding.js +43 -0
  58. package/src/mime-parser/parsePairs.js +34 -0
  59. package/src/mime-parser/stream/LineStream.js +85 -0
  60. package/src/mime-parser/stream/TextWriter.js +27 -0
  61. package/src/mime-parser/tokenizer.js +37 -0
  62. package/src/tests/mime/lines-test.js +17 -0
  63. package/src/tests/mime/message1.js +46 -0
  64. package/src/tests/mime/message2.js +73 -0
  65. package/src/tests/mime/pairs.js +38 -0
  66. package/src/tests/mime/parse-headers.js +90 -0
  67. package/src/tests/mime/word-encoding-test.js +13 -0
  68. package/test.js +70 -0
  69. package/tsconfig.json +16 -0
package/.gitlab-ci.yml ADDED
@@ -0,0 +1,16 @@
1
+
2
+ stages: # List of stages for jobs, and their order of execution
3
+ - build
4
+
5
+ build-job: # This job runs in the build stage, which runs first.
6
+ stage: build
7
+ tags:
8
+ - tracer-deploy
9
+ script:
10
+ - tssystemjs
11
+ - echo "TS Pack"
12
+ - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}">.npmrc
13
+ - npm publish --verbose --access public
14
+
15
+ only:
16
+ - tags
@@ -0,0 +1,21 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "type": "node",
9
+ "request": "launch",
10
+ "name": "Test",
11
+ "sourceMaps": true,
12
+ "skipFiles": [
13
+ "<node_internals>/**"
14
+ ],
15
+ "program": "${workspaceFolder}/test.js",
16
+ "outFiles": [
17
+ "${workspaceFolder}/dist/**/*.js"
18
+ ]
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "terminal.integrated.profiles.windows": {
3
+ "PowerShell": {
4
+ "source": "PowerShell",
5
+ "args": [
6
+ "-ExecutionPolicy",
7
+ "Bypass"
8
+ ]
9
+ }
10
+ },
11
+ "terminal.integrated.defaultProfile.windows": "PowerShell",
12
+ "cSpell.words": [
13
+ "Akash",
14
+ "fontawesome",
15
+ "Fonticons",
16
+ "jsdelivr",
17
+ "lightgray",
18
+ "signup",
19
+ "socialmail",
20
+ "tinycolor",
21
+ "webm",
22
+ "webp",
23
+ "xlst"
24
+ ],
25
+ "typescript.preferences.includePackageJsonAutoImports": "on",
26
+ "emmet.showExpandedAbbreviation": "never",
27
+ "editor.bracketPairColorization.enabled": true,
28
+ "eslint.alwaysShowStatus": true,
29
+ "editor.defaultFormatter": "dbaeumer.vscode-eslint",
30
+ "eslint.format.enable": true,
31
+ "emmet.showSuggestionsAsSnippets": false,
32
+ "emmet.showAbbreviationSuggestions": false,
33
+ "emmet.excludeLanguages": [
34
+ "markdown",
35
+ "typescript",
36
+ "typescriptreact"
37
+ ],
38
+ "[typescriptreact]": {
39
+ "editor.defaultFormatter": "vscode.typescript-language-features"
40
+ },
41
+ "[typescript]": {
42
+ "editor.defaultFormatter": "vscode.typescript-language-features"
43
+ },
44
+ "[html]": {
45
+ "editor.defaultFormatter": "vscode.html-language-features"
46
+ },
47
+ "window.commandCenter": true,
48
+ "[css]": {
49
+ "editor.defaultFormatter": "vscode.css-language-features"
50
+ },
51
+ "svg.preview.background": "custom",
52
+ "[json]": {
53
+ "editor.defaultFormatter": "vscode.json-language-features"
54
+ }
55
+ }
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Social Mail Shared
2
+
3
+ Shared Repository that contains things like parser etc that is used by both client and server.
@@ -0,0 +1,28 @@
1
+ System.register([], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var QueryIterator;
5
+ _export("default", void 0);
6
+ return {
7
+ setters: [],
8
+ execute: function () {
9
+ _export("default", QueryIterator = class QueryIterator {
10
+ static first(source, fx) {
11
+ for (const iterator of source) {
12
+ if (fx(iterator)) {
13
+ return iterator;
14
+ }
15
+ }
16
+ }
17
+ firstOrFail(source, fx) {
18
+ for (const iterator of source) {
19
+ if (fx(iterator)) {
20
+ return iterator;
21
+ }
22
+ }
23
+ }
24
+ });
25
+ }
26
+ };
27
+ });
28
+ //# sourceMappingURL=QueryIterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["QueryIterator","_export","setters","execute","first","source","fx","iterator","firstOrFail"],"sources":["../src/QueryIterator.js"],"sourcesContent":[null],"mappings":";;;MAAqBA,aAAa;EAAAC,OAAA;EAAA;IAAAC,OAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAF,OAAA,YAAbD,aAAa,GAApB,MAAOA,aAAa;QAM9B,OAAOI,KAAKA,CAC2BC,MAAM,EACLC,EAAE;UAEtC,KAAK,MAAMC,QAAQ,IAAIF,MAAM,EAAE;YAC3B,IAAIC,EAAE,CAACC,QAAQ,CAAC,EAAE;cACd,OAAOA,QAAQ;;;QAG3B;QAMAC,WAAWA,CAC4BH,MAAM,EACLC,EAAE;UAEtC,KAAK,MAAMC,QAAQ,IAAIF,MAAM,EAAE;YAC3B,IAAIC,EAAE,CAACC,QAAQ,CAAC,EAAE;cACd,OAAOA,QAAQ;;;QAI3B;OACH;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ System.register(["./MimeNode.js"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var MimeNode, AttachmentFile;
5
+ _export("AttachmentFile", void 0);
6
+ return {
7
+ setters: [function (_MimeNodeJs) {
8
+ MimeNode = _MimeNodeJs.MimeNode;
9
+ }],
10
+ execute: function () {
11
+ _export("AttachmentFile", AttachmentFile = class AttachmentFile extends File {
12
+ constructor(fileBits, fileName, options) {
13
+ super(fileBits, fileName, options);
14
+ this.contentId = options.contentId;
15
+ this.disposition = options.disposition;
16
+ }
17
+ });
18
+ }
19
+ };
20
+ });
21
+ //# sourceMappingURL=AttachmentFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AttachmentFile","_export","setters","_MimeNodeJs","MimeNode","execute","File","constructor","fileBits","fileName","options","contentId","disposition"],"sources":["../../src/mime-parser/AttachmentFile.js"],"sourcesContent":[null],"mappings":";;;gBAIaA,cAAe;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,WAAA;MAJnBC,QAAQ,GAAAD,WAAA,CAARC,QAAQ;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAJ,OAAA,mBAIJD,cAAe,GAAtB,MAAOA,cAAe,SAAQM,IAAI;QAcpCC,YAC8BC,QAAQ,EACZC,QAAQ,EAE9BC,OAAO;UACP,KAAK,CAACF,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,CAAC;UAClC,IAAI,CAACC,SAAS,GAAGD,OAAO,CAACC,SAAS;UAClC,IAAI,CAACC,WAAW,GAAGF,OAAO,CAACE,WAAW;QAC1C;OAEH;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ System.register(["./encoder/word-encoding.js", "./parsePairs.js"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var wordEncoding, parsePairs, HeaderContentDisposition;
5
+ _export("HeaderContentDisposition", void 0);
6
+ return {
7
+ setters: [function (_encoderWordEncodingJs) {
8
+ wordEncoding = _encoderWordEncodingJs.wordEncoding;
9
+ }, function (_parsePairsJs) {
10
+ parsePairs = _parsePairsJs.parsePairs;
11
+ }],
12
+ execute: function () {
13
+ _export("HeaderContentDisposition", HeaderContentDisposition = class HeaderContentDisposition {
14
+ constructor(type, filename, name) {
15
+ this.type = type;
16
+ this.filename = filename;
17
+ this.name = name;
18
+ }
19
+ parse(text) {
20
+ const items = parsePairs(text, "type");
21
+ this.type = items.type;
22
+ this.filename = items.filename;
23
+ this.name = items.name;
24
+ }
25
+ toString() {
26
+ return `${this.type};\r\n\t\tfilename="${wordEncoding.encode(this.filename)}";`;
27
+ }
28
+ });
29
+ }
30
+ };
31
+ });
32
+ //# sourceMappingURL=HeaderContentDisposition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HeaderContentDisposition","_export","setters","_encoderWordEncodingJs","wordEncoding","_parsePairsJs","parsePairs","execute","constructor","type","filename","name","parse","text","items","toString","encode"],"sources":["../../src/mime-parser/HeaderContentDisposition.js"],"sourcesContent":[null],"mappings":";;;gCAIaA,wBAAwB;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,sBAAA;MAJ5BC,YAAY,GAAAD,sBAAA,CAAZC,YAAY;IAAA,aAAAC,aAAA;MACZC,UAAU,GAAAD,aAAA,CAAVC,UAAU;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAN,OAAA,6BAGND,wBAAwB,GAA/B,MAAOA,wBAAwB;QAMjCQ,YAC0BC,IAAI,EACJC,QAAQ,EACRC,IAAI;UAE1B,IAAI,CAACF,IAAI,GAAGA,IAAI;UAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;UACxB,IAAI,CAACC,IAAI,GAAGA,IAAI;QACpB;QAEAC,KAAKA,CAAuBC,IAAI;UAC5B,MAAMC,KAAK,GAAGR,UAAU,CAACO,IAAI,EAAE,MAAM,CAAC;UACtC,IAAI,CAACJ,IAAI,GAAGK,KAAK,CAACL,IAAI;UACtB,IAAI,CAACC,QAAQ,GAAGI,KAAK,CAACJ,QAAQ;UAC9B,IAAI,CAACC,IAAI,GAAGG,KAAK,CAACH,IAAI;QAC1B;QAEAI,QAAQA,CAAA;UACJ,OAAO,GAAG,IAAI,CAACN,IAAI,sBAAsBL,YAAY,CAACY,MAAM,CAAE,IAAI,CAACN,QAAQ,CAAC,IAAI;QACpF;OAEH;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ System.register(["./parsePairs.js"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var parsePairs, HeaderContentType;
5
+ _export("HeaderContentType", void 0);
6
+ return {
7
+ setters: [function (_parsePairsJs) {
8
+ parsePairs = _parsePairsJs.parsePairs;
9
+ }],
10
+ execute: function () {
11
+ _export("HeaderContentType", HeaderContentType = class HeaderContentType {
12
+ constructor(type, charset = "UTF-8", boundary) {
13
+ this.type = type;
14
+ this.charset = charset;
15
+ this.boundary = boundary;
16
+ }
17
+ parse(text) {
18
+ const items = parsePairs(text, "type");
19
+ this.type = items.type;
20
+ this.charset = items.charset;
21
+ this.boundary = items.boundary;
22
+ }
23
+ toString() {
24
+ if (this.boundary) {
25
+ return `${this.type}; charset="${this.charset}"; boundary="${this.boundary}";`;
26
+ }
27
+ return `${this.type}; charset="${this.charset}";`;
28
+ }
29
+ });
30
+ }
31
+ };
32
+ });
33
+ //# sourceMappingURL=HeaderContentType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HeaderContentType","_export","setters","_parsePairsJs","parsePairs","execute","constructor","type","charset","boundary","parse","text","items","toString"],"sources":["../../src/mime-parser/HeaderContentType.js"],"sourcesContent":[null],"mappings":";;;kBAGaA,iBAAiB;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,aAAA;MAHrBC,UAAU,GAAAD,aAAA,CAAVC,UAAU;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAJ,OAAA,sBAGND,iBAAiB,GAAxB,MAAOA,iBAAiB;QAM1BM,YAC0BC,IAAI,EACJC,OAAO,GAAG,OAAO,EACjBC,QAAQ;UAE9B,IAAI,CAACF,IAAI,GAAGA,IAAI;UAChB,IAAI,CAACC,OAAO,GAAGA,OAAO;UACtB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;QAC5B;QAEAC,KAAKA,CAAwBC,IAAI;UAC7B,MAAMC,KAAK,GAAGR,UAAU,CAACO,IAAI,EAAE,MAAM,CAAC;UACtC,IAAI,CAACJ,IAAI,GAAGK,KAAK,CAACL,IAAI;UACtB,IAAI,CAACC,OAAO,GAAGI,KAAK,CAACJ,OAAO;UAC5B,IAAI,CAACC,QAAQ,GAAGG,KAAK,CAACH,QAAQ;QAClC;QAEAI,QAAQA,CAAA;UACJ,IAAI,IAAI,CAACJ,QAAQ,EAAE;YACf,OAAO,GAAG,IAAI,CAACF,IAAI,cAAc,IAAI,CAACC,OAAO,gBAAgB,IAAI,CAACC,QAAQ,IAAI;;UAElF,OAAO,GAAG,IAAI,CAACF,IAAI,cAAc,IAAI,CAACC,OAAO,IAAI;QACrD;OACH;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ System.register(["tslib", "./MimeNode.js", "./AttachmentFile.js", "./stream/LineStream.js", "./stream/TextWriter.js"], function (_export, _context) {
2
+ "use strict";
3
+
4
+ var __awaiter, MimeNode, AttachmentFile, ReadableLineStream, StringLineStream, BlobWriter, MimeMessage;
5
+ _export("default", void 0);
6
+ return {
7
+ setters: [function (_tslib) {
8
+ __awaiter = _tslib.__awaiter;
9
+ }, function (_MimeNodeJs) {
10
+ MimeNode = _MimeNodeJs.MimeNode;
11
+ }, function (_AttachmentFileJs) {
12
+ AttachmentFile = _AttachmentFileJs.AttachmentFile;
13
+ }, function (_streamLineStreamJs) {
14
+ ReadableLineStream = _streamLineStreamJs.ReadableLineStream;
15
+ StringLineStream = _streamLineStreamJs.StringLineStream;
16
+ }, function (_streamTextWriterJs) {
17
+ BlobWriter = _streamTextWriterJs.BlobWriter;
18
+ }],
19
+ execute: function () {
20
+ _export("default", MimeMessage = class MimeMessage {
21
+ static load(reader, name, inline) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const node = new MimeNode();
24
+ if (name) {
25
+ node.setHeader("X-Name", name);
26
+ }
27
+ yield node.parse(typeof reader === "string" ? new StringLineStream(reader) : new ReadableLineStream(reader));
28
+ const attachments = yield node.attachments();
29
+ const msg = new MimeMessage(node, attachments);
30
+ if (inline) {
31
+ yield msg.inlineImages();
32
+ }
33
+ return msg;
34
+ });
35
+ }
36
+ get name() {
37
+ return this.node.header("x-name");
38
+ }
39
+ get html() {
40
+ var _a, _b;
41
+ const alternative = this.node.getFirstChild("multipart/alternative");
42
+ return (_b = (_a = alternative === null || alternative === void 0 ? void 0 : alternative.getFirstChild("text/html")) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : "";
43
+ }
44
+ set html(v) {
45
+ const alternative = this.node.getFirstChild("multipart/alternative", true);
46
+ const htmlMime = alternative.getFirstChild("text/html", true);
47
+ htmlMime.contentTransferEncoding = "quoted-printable";
48
+ htmlMime.text = v;
49
+ htmlMime.contentType.charset = "UTF-8";
50
+ }
51
+ get text() {
52
+ var _a, _b;
53
+ const alternative = this.node.getFirstChild("multipart/alternative");
54
+ return (_b = (_a = alternative === null || alternative === void 0 ? void 0 : alternative.getFirstChild("text/plain")) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : "";
55
+ }
56
+ set text(v) {
57
+ const alternative = this.node.getFirstChild("multipart/alternative", true);
58
+ const htmlMime = alternative.getFirstChild("text/plain", true);
59
+ htmlMime.contentTransferEncoding = "quoted-printable";
60
+ htmlMime.text = v;
61
+ htmlMime.contentType.charset = "UTF-8";
62
+ }
63
+ get subject() {
64
+ var _a;
65
+ return (_a = this.node.header("subject")) !== null && _a !== void 0 ? _a : "";
66
+ }
67
+ set subject(v) {
68
+ this.node.setHeader("subject", v);
69
+ }
70
+ constructor(node = new MimeNode("multipart/mixed"), attachments = []) {
71
+ this.node = node;
72
+ this.attachments = attachments;
73
+ }
74
+ save() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const blobWriter = new BlobWriter();
77
+ yield this.node.save(blobWriter);
78
+ return blobWriter.toBlob();
79
+ });
80
+ }
81
+ inlineImages() {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ let text = this.html;
84
+ if (!text) {
85
+ return;
86
+ }
87
+ for (const iterator of this.attachments) {
88
+ if (iterator.contentId) {
89
+ const encoded = iterator.node.encoded;
90
+ text = text.split(`cid:${iterator.contentId}`).join(`data://${iterator.type},${encoded}`);
91
+ }
92
+ }
93
+ });
94
+ }
95
+ });
96
+ }
97
+ };
98
+ });
99
+ //# sourceMappingURL=MimeMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MimeMessage","_export","setters","_tslib","MimeNode","_MimeNodeJs","_AttachmentFileJs","AttachmentFile","_streamLineStreamJs","ReadableLineStream","StringLineStream","_streamTextWriterJs","BlobWriter","execute","load","reader","name","inline","node","setHeader","parse","attachments","msg","inlineImages","header","html","alternative","getFirstChild","_b","_a","text","v","htmlMime","contentTransferEncoding","contentType","charset","subject","constructor","save","blobWriter","toBlob","iterator","contentId","encoded","split","join","type"],"sources":["../../src/mime-parser/MimeMessage.js"],"sourcesContent":[null],"mappings":";;;6FAKqBA,WAAW;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,MAAA;;;MALvBC,QAAQ,GAAAC,WAAA,CAARD,QAAQ;IAAA,aAAAE,iBAAA;MACRC,cAAc,GAAAD,iBAAA,CAAdC,cAAc;IAAA,aAAAC,mBAAA;MACdC,kBAAkB,GAAAD,mBAAA,CAAlBC,kBAAkB;MAAEC,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB;IAAA,aAAAC,mBAAA;MACpCC,UAAU,GAAAD,mBAAA,CAAVC,UAAU;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAZ,OAAA,YAEED,WAAW,GAAlB,MAAOA,WAAW;QAE5B,OAAac,IAAIA,CAC0BC,MAAM,EACvBC,IAAI,EACHC,MAAM;;YAE7B,MAAMC,IAAI,GAAG,IAAId,QAAQ,EAAE;YAC3B,IAAIY,IAAI,EAAE;cACNE,IAAI,CAACC,SAAS,CAAC,QAAQ,EAAEH,IAAI,CAAC;;YAElC,MAAME,IAAI,CAACE,KAAK,CAAE,OAAOL,MAAM,KAAK,QAAQ,GACtC,IAAIL,gBAAgB,CAACK,MAAM,CAAC,GAC5B,IAAIN,kBAAkB,CAACM,MAAM,CAAC,CAAC;YACrC,MAAMM,WAAW,GAAG,MAAMH,IAAI,CAACG,WAAW,EAAE;YAK5C,MAAMC,GAAG,GAAG,IAAItB,WAAW,CAACkB,IAAI,EAAEG,WAAW,CAAC;YAC9C,IAAIJ,MAAM,EAAE;cACR,MAAMK,GAAG,CAACC,YAAY,EAAE;;YAE5B,OAAOD,GAAG;UACd,CAAC;;QAED,IAAIN,IAAIA,CAAA;UACJ,OAAO,IAAI,CAACE,IAAI,CAACM,MAAM,CAAC,QAAQ,CAAC;QACrC;QAEA,IAAIC,IAAIA,CAAA;;UACJ,MAAMC,WAAW,GAAG,IAAI,CAACR,IAAI,CAACS,aAAa,CAAC,uBAAuB,CAAC;UACpE,OAAO,CAAAC,EAAA,IAAAC,EAAA,GAAAH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,aAAa,CAAC,WAAW,CAAC,cAAAE,EAAA,uBAAAA,EAAA,CAAEC,IAAI,cAAAF,EAAA,cAAAA,EAAA,GAAI,EAAE;QAC9D;QAEA,IAAIH,IAAIA,CAAuBM,CAAC;UAC5B,MAAML,WAAW,GAAG,IAAI,CAACR,IAAI,CAACS,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC;UAC1E,MAAMK,QAAQ,GAAGN,WAAW,CAACC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC;UAC7DK,QAAQ,CAACC,uBAAuB,GAAG,kBAAkB;UACrDD,QAAQ,CAACF,IAAI,GAAGC,CAAC;UACjBC,QAAQ,CAACE,WAAW,CAACC,OAAO,GAAG,OAAO;QAC1C;QAEA,IAAIL,IAAIA,CAAA;;UACJ,MAAMJ,WAAW,GAAG,IAAI,CAACR,IAAI,CAACS,aAAa,CAAC,uBAAuB,CAAC;UACpE,OAAO,CAAAC,EAAA,IAAAC,EAAA,GAAAH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,aAAa,CAAC,YAAY,CAAC,cAAAE,EAAA,uBAAAA,EAAA,CAAEC,IAAI,cAAAF,EAAA,cAAAA,EAAA,GAAI,EAAE;QAC/D;QAEA,IAAIE,IAAIA,CAAuBC,CAAC;UAC5B,MAAML,WAAW,GAAG,IAAI,CAACR,IAAI,CAACS,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC;UAC1E,MAAMK,QAAQ,GAAGN,WAAW,CAACC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC;UAC9DK,QAAQ,CAACC,uBAAuB,GAAG,kBAAkB;UACrDD,QAAQ,CAACF,IAAI,GAAGC,CAAC;UACjBC,QAAQ,CAACE,WAAW,CAACC,OAAO,GAAG,OAAO;QAC1C;QAEA,IAAIC,OAAOA,CAAA;;UACP,OAAO,CAAAP,EAAA,OAAI,CAACX,IAAI,CAACM,MAAM,CAAC,SAAS,CAAC,cAAAK,EAAA,cAAAA,EAAA,GAAI,EAAE;QAC5C;QAEA,IAAIO,OAAOA,CAAuBL,CAAC;UAC/B,IAAI,CAACb,IAAI,CAACC,SAAS,CAAC,SAAS,EAAEY,CAAC,CAAC;QACrC;QAKAM,YAC4BnB,IAAI,GAAG,IAAId,QAAQ,CAAC,iBAAiB,CAAC,EAC9BiB,WAAW,GAAG,EAAE;UAChD,IAAI,CAACH,IAAI,GAAGA,IAAI;UAChB,IAAI,CAACG,WAAW,GAAGA,WAAW;QAClC;QAEMiB,IAAIA,CAAA;;YACN,MAAMC,UAAU,GAAG,IAAI3B,UAAU,EAAE;YACnC,MAAM,IAAI,CAACM,IAAI,CAACoB,IAAI,CAACC,UAAU,CAAC;YAChC,OAAOA,UAAU,CAACC,MAAM,EAAE;UAC9B,CAAC;;QAEKjB,YAAYA,CAAA;;YACd,IAAIO,IAAI,GAAG,IAAI,CAACL,IAAI;YACpB,IAAI,CAACK,IAAI,EAAE;cACP;;YAGJ,KAAK,MAAMW,QAAQ,IAAI,IAAI,CAACpB,WAAW,EAAE;cACrC,IAAIoB,QAAQ,CAACC,SAAS,EAAE;gBACpB,MAAMC,OAAO,GAAGF,QAAQ,CAACvB,IAAI,CAACyB,OAAO;gBACrCb,IAAI,GAAGA,IAAI,CAACc,KAAK,CAAC,OAAOH,QAAQ,CAACC,SAAS,EAAE,CAAC,CAACG,IAAI,CAAC,UAAUJ,QAAQ,CAACK,IAAI,IAAIH,OAAO,EAAE,CAAC;;;UAGrG,CAAC;;OAEJ;IAAA;EAAA;AAAA","ignoreList":[]}