@researchdatabox/redbox-core 0.0.1-beta.9474 → 0.0.1-beta.9604

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 (126) hide show
  1. package/dist/CoreController.d.ts.map +1 -1
  2. package/dist/CoreController.js +8 -4
  3. package/dist/api-routes/groups/translation.d.ts.map +1 -1
  4. package/dist/api-routes/groups/translation.js +5 -1
  5. package/dist/config/branding.config.d.ts +2 -1
  6. package/dist/config/branding.config.d.ts.map +1 -1
  7. package/dist/config/branding.config.js +5 -95
  8. package/dist/config/form.config.d.ts +4 -0
  9. package/dist/config/form.config.d.ts.map +1 -1
  10. package/dist/config/form.config.js +1 -1
  11. package/dist/config/http.config.d.ts +1 -1
  12. package/dist/config/http.config.d.ts.map +1 -1
  13. package/dist/config/http.config.js +32 -4
  14. package/dist/config/routes.config.d.ts.map +1 -1
  15. package/dist/config/routes.config.js +5 -4
  16. package/dist/config/validators.config.d.ts +6 -4
  17. package/dist/config/validators.config.d.ts.map +1 -1
  18. package/dist/config/validators.config.js +5 -3
  19. package/dist/config/webpack.config.d.ts.map +1 -1
  20. package/dist/config/webpack.config.js +9 -9
  21. package/dist/controllers/BrandingAppController.js +2 -2
  22. package/dist/controllers/BrandingController.d.ts +8 -0
  23. package/dist/controllers/BrandingController.d.ts.map +1 -1
  24. package/dist/controllers/BrandingController.js +88 -28
  25. package/dist/controllers/DynamicAssetController.d.ts +0 -21
  26. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  27. package/dist/controllers/DynamicAssetController.js +1 -42
  28. package/dist/controllers/FormVocabularyController.d.ts +2 -0
  29. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  30. package/dist/controllers/FormVocabularyController.js +58 -1
  31. package/dist/controllers/RecordController.d.ts.map +1 -1
  32. package/dist/controllers/RecordController.js +23 -7
  33. package/dist/controllers/TranslationController.js +3 -3
  34. package/dist/controllers/webservice/AdminController.js +2 -2
  35. package/dist/controllers/webservice/BrandingController.js +2 -2
  36. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  37. package/dist/controllers/webservice/TranslationController.js +8 -8
  38. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  39. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  40. package/dist/controllers/webservice/UserManagementController.js +3 -3
  41. package/dist/hooks/webpack.d.ts.map +1 -1
  42. package/dist/hooks/webpack.js +17 -7
  43. package/dist/middleware/redboxSession.d.ts.map +1 -1
  44. package/dist/middleware/redboxSession.js +6 -2
  45. package/dist/model/BuildResponse.d.ts +4 -0
  46. package/dist/model/BuildResponse.d.ts.map +1 -1
  47. package/dist/sails.d.ts +2 -0
  48. package/dist/sails.d.ts.map +1 -1
  49. package/dist/services/BrandingService.d.ts.map +1 -1
  50. package/dist/services/BrandingService.js +4 -32
  51. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  52. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  53. package/dist/services/BrandingThemeCssService.js +113 -0
  54. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  55. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  56. package/dist/services/BrandingThemeTokens.js +82 -0
  57. package/dist/services/CacheService.d.ts.map +1 -1
  58. package/dist/services/CacheService.js +37 -29
  59. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  60. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  61. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  62. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  63. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  64. package/dist/services/FormRecordConsistencyService.js +18 -18
  65. package/dist/services/FormsService.js +5 -5
  66. package/dist/services/I18nEntriesService.d.ts +6 -4
  67. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  68. package/dist/services/I18nEntriesService.js +83 -17
  69. package/dist/services/OniService.js +2 -2
  70. package/dist/services/RecordsService.js +3 -3
  71. package/dist/services/SassCompilerService.d.ts +4 -10
  72. package/dist/services/SassCompilerService.d.ts.map +1 -1
  73. package/dist/services/SassCompilerService.js +9 -173
  74. package/dist/services/StandardDatastreamService.d.ts +5 -0
  75. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  76. package/dist/services/StandardDatastreamService.js +51 -6
  77. package/dist/services/StorageManagerService.d.ts +1 -0
  78. package/dist/services/StorageManagerService.d.ts.map +1 -1
  79. package/dist/services/StorageManagerService.js +30 -12
  80. package/dist/services/TemplateService.d.ts +1 -17
  81. package/dist/services/TemplateService.d.ts.map +1 -1
  82. package/dist/services/TemplateService.js +5 -50
  83. package/dist/services/VocabularyService.d.ts +12 -0
  84. package/dist/services/VocabularyService.d.ts.map +1 -1
  85. package/dist/services/VocabularyService.js +201 -14
  86. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  87. package/dist/services/doi-v2/bindings.js +2 -8
  88. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  89. package/dist/services/figshare-v2/bindings.js +2 -5
  90. package/dist/services/index.d.ts +6 -0
  91. package/dist/services/index.d.ts.map +1 -1
  92. package/dist/services/index.js +12 -2
  93. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  94. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  95. package/dist/visitor/attachment-fields.visitor.js +44 -34
  96. package/dist/visitor/client.visitor.d.ts +93 -92
  97. package/dist/visitor/client.visitor.d.ts.map +1 -1
  98. package/dist/visitor/client.visitor.js +159 -159
  99. package/dist/visitor/construct.visitor.d.ts +95 -95
  100. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  101. package/dist/visitor/construct.visitor.js +154 -154
  102. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  103. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  104. package/dist/visitor/context-variables.visitor.js +85 -75
  105. package/dist/visitor/data-value.visitor.d.ts +95 -95
  106. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  107. package/dist/visitor/data-value.visitor.js +151 -151
  108. package/dist/visitor/json-type-def.visitor.d.ts +92 -92
  109. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  110. package/dist/visitor/json-type-def.visitor.js +152 -152
  111. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +96 -96
  112. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  113. package/dist/visitor/migrate-config-v4-v5.visitor.js +187 -184
  114. package/dist/visitor/template.visitor.d.ts +96 -94
  115. package/dist/visitor/template.visitor.d.ts.map +1 -1
  116. package/dist/visitor/template.visitor.js +214 -159
  117. package/dist/visitor/validator.visitor.d.ts +92 -92
  118. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  119. package/dist/visitor/validator.visitor.js +165 -152
  120. package/dist/visitor/visitor-helpers.js +9 -9
  121. package/dist/visitor/vocab-inline.visitor.d.ts +18 -18
  122. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  123. package/dist/visitor/vocab-inline.visitor.js +67 -53
  124. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  125. package/dist/waterline-models/BrandingConfig.js +5 -4
  126. package/package.json +15 -12
@@ -5,192 +5,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  Object.defineProperty(exports, "__esModule", { value: true });
12
9
  exports.Services = void 0;
13
10
  const PopulateExportedMethods_decorator_1 = require("../decorator/PopulateExportedMethods.decorator");
14
11
  const CoreService_1 = require("../CoreService");
15
- const crypto_1 = __importDefault(require("crypto"));
16
- const fs_1 = __importDefault(require("fs"));
17
- const path_1 = __importDefault(require("path"));
18
- const fs_extra_1 = __importDefault(require("fs-extra"));
19
- // Use require to avoid type dependencies for webpack internals
20
- const webpack = require('webpack');
21
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
22
- const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
23
12
  /**
24
13
  * SassCompilerService
25
- * : compile semantic variable map into CSS using root assets/styles/style.scss
26
- * injecting tenant overrides after the variable import section.
27
- *
28
- * Usage: await SassCompilerService.compile({ 'site-branding-area-background': '#ffffff' })
29
- * Returns: { css, hash }
14
+ * Deprecated compatibility wrapper for variable CSS generation.
30
15
  */
31
16
  var Services;
32
17
  (function (Services) {
33
18
  let SassCompiler = class SassCompiler extends CoreService_1.Services.Core.Service {
34
- getWhitelist() {
35
- return _.get(sails, 'config.branding.variableAllowList', []) || [];
19
+ getAllowedVariableKeys() {
20
+ return BrandingThemeCssService.getAllowedVariableKeys();
36
21
  }
37
- normaliseHex(value) {
38
- let v = value.trim();
39
- if (v.startsWith('#')) {
40
- v = v.replace(/#/g, '');
41
- if (v.length === 3) {
42
- v = v.split('').map(c => c + c).join('');
43
- }
44
- if (v.length === 6 || v.length === 8)
45
- return '#' + v.toLowerCase();
46
- }
47
- return value;
22
+ normalizeHex(value) {
23
+ return BrandingThemeCssService.normalizeHex(value);
48
24
  }
49
- /** Build SCSS root by injecting overrides after last *variables import */
50
- buildRootScss(overrideLines) {
51
- const stylesDir = path_1.default.resolve(process.cwd(), 'assets/styles');
52
- const stylePath = path_1.default.join(stylesDir, 'style.scss');
53
- let content = fs_1.default.readFileSync(stylePath, 'utf8');
54
- // Resolve ~ imports to node_modules paths for Sass
55
- content = content.replace(/@import\s+"~([^"]+)"/g, (match, importPath) => {
56
- return `@import "${importPath}"`;
57
- });
58
- const lines = content.split(/\r?\n/);
59
- let insertIdx = -1;
60
- for (let i = 0; i < lines.length; i++) {
61
- if (/default-variables|custom-variables/.test(lines[i]))
62
- insertIdx = i;
63
- }
64
- if (insertIdx === -1) {
65
- for (let i = 0; i < lines.length; i++) {
66
- if (!/^@import/.test(lines[i])) {
67
- insertIdx = i - 1;
68
- break;
69
- }
70
- }
71
- if (insertIdx < 0)
72
- insertIdx = 0;
73
- }
74
- lines.splice(insertIdx + 1, 0, ...overrideLines);
75
- return lines.join('\n');
25
+ validateVariables(variables) {
26
+ return BrandingThemeCssService.validateVariables(variables);
76
27
  }
77
- /** Compile full theme returning css + sha256 hash using webpack loader chain */
78
28
  async compile(variables) {
79
- const whitelist = this.getWhitelist();
80
- const invalid = Object.keys(variables || {}).filter(k => !whitelist.includes(k.replace(/^\$/, '')));
81
- if (invalid.length)
82
- throw new Error('Invalid variable(s): ' + invalid.join(', '));
83
- const overrideLines = [];
84
- for (const [key, rawVal] of Object.entries(variables || {})) {
85
- const normKey = key.startsWith('$') ? key.substring(1) : key;
86
- const value = this.normaliseHex(rawVal);
87
- // Sanitize value to prevent SCSS injection
88
- if (/[{}();@"'\\/\n\r!]/.test(value)) {
89
- throw new Error(`Invalid characters in variable value: ${normKey}`);
90
- }
91
- const variableName = normKey.startsWith('$') ? normKey : `$${normKey}`;
92
- overrideLines.push(`${variableName}: ${value}; // tenant override`);
93
- }
94
- const scss = this.buildRootScss(overrideLines);
95
- // Build a temporary workspace for webpack to compile our injected SCSS using the project loader chain
96
- const tmpBase = path_1.default.join(process.cwd(), '.tmp', 'branding-webpack', crypto_1.default.randomBytes(8).toString('hex'));
97
- const tmpOut = path_1.default.join(tmpBase, 'dist');
98
- fs_extra_1.default.mkdirpSync(tmpBase);
99
- // Write a temporary root.scss and entry.js that imports it
100
- const rootScssPath = path_1.default.join(tmpBase, 'root.scss');
101
- const entryJsPath = path_1.default.join(tmpBase, 'entry.js');
102
- fs_1.default.writeFileSync(rootScssPath, scss, 'utf8');
103
- fs_1.default.writeFileSync(entryJsPath, `require('./root.scss');\n`, 'utf8');
104
- // Minimal webpack config aligned with project's sass/css pipeline
105
- const wpConfig = {
106
- mode: 'production',
107
- devtool: false,
108
- entry: entryJsPath,
109
- output: {
110
- path: tmpOut,
111
- filename: 'bundle.js',
112
- publicPath: '/',
113
- clean: true
114
- },
115
- module: {
116
- rules: [
117
- {
118
- test: /\.(sa|sc|c)ss$/,
119
- exclude: /\.\.\/angular/,
120
- use: [
121
- MiniCssExtractPlugin.loader,
122
- 'css-loader',
123
- 'resolve-url-loader',
124
- {
125
- loader: 'sass-loader',
126
- options: {
127
- sourceMap: true, // Required for resolve-url-loader
128
- sassOptions: {
129
- loadPaths: [
130
- path_1.default.resolve(process.cwd(), 'assets/styles'),
131
- path_1.default.resolve(process.cwd(), 'node_modules')
132
- ]
133
- }
134
- }
135
- }
136
- ]
137
- },
138
- {
139
- test: /\.(woff2?|ttf|otf|eot|svg)$/,
140
- type: 'asset/resource',
141
- exclude: /\.\.\/angular/
142
- },
143
- {
144
- mimetype: 'image/svg+xml',
145
- scheme: 'data',
146
- type: 'asset/resource',
147
- generator: { filename: 'icons/[hash].svg' }
148
- }
149
- ]
150
- },
151
- plugins: [
152
- new MiniCssExtractPlugin({ filename: 'style.css' })
153
- ],
154
- optimization: {
155
- minimize: true,
156
- minimizer: [new CssMinimizerPlugin()]
157
- },
158
- resolve: {
159
- extensions: ['.js', '.ts', '.scss', '.css'],
160
- modules: [path_1.default.resolve(process.cwd(), 'node_modules'), 'node_modules']
161
- },
162
- resolveLoader: {
163
- modules: [path_1.default.resolve(process.cwd(), 'node_modules'), 'node_modules']
164
- },
165
- stats: 'errors-warnings'
166
- };
167
- const compiler = webpack(wpConfig);
168
- await new Promise((resolve, reject) => {
169
- compiler.run((err, stats) => {
170
- if (err)
171
- return reject(err);
172
- if (!stats)
173
- return reject(new Error('Webpack did not return stats'));
174
- const info = stats.toJson({ all: false, errors: true, warnings: true });
175
- if (stats.hasErrors()) {
176
- const errorMsg = info.errors
177
- ?.map((e) => (typeof e === 'string' ? e : e.message || JSON.stringify(e)))
178
- .join('; ') || 'unknown error';
179
- return reject(new Error('Webpack SCSS compile failed: ' + errorMsg));
180
- }
181
- resolve(stats);
182
- });
183
- });
184
- // Read the emitted CSS
185
- const cssPath = path_1.default.join(tmpOut, 'style.css');
186
- const css = fs_1.default.readFileSync(cssPath, 'utf8');
187
- // Clean up temp directory (best-effort)
188
- try {
189
- fs_extra_1.default.removeSync(tmpBase);
190
- }
191
- catch (_e) { /* best-effort cleanup */ }
192
- const hash = crypto_1.default.createHash('sha256').update(css).digest('hex').substring(0, 32);
193
- return { css, hash };
29
+ return BrandingThemeCssService.generate(variables);
194
30
  }
195
31
  };
196
32
  SassCompiler = __decorate([
@@ -198,4 +34,4 @@ var Services;
198
34
  ], SassCompiler);
199
35
  Services.SassCompiler = SassCompiler;
200
36
  })(Services || (exports.Services = Services = {}));
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Fzc0NvbXBpbGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TYXNzQ29tcGlsZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNHQUF5RjtBQUN6RixnREFBc0Q7QUFDdEQsb0RBQTRCO0FBQzVCLDRDQUFvQjtBQUNwQixnREFBd0I7QUFDeEIsd0RBQTJCO0FBRTNCLCtEQUErRDtBQUMvRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUNoRSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBR25FOzs7Ozs7O0dBT0c7QUFDSCxJQUFpQixRQUFRLENBb0t4QjtBQXBLRCxXQUFpQixRQUFRO0lBR3JCLElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQWEsU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBQ25ELFlBQVk7WUFDUixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLG1DQUFtQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RSxDQUFDO1FBRUQsWUFBWSxDQUFDLEtBQWE7WUFDdEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDakIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMs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
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Fzc0NvbXBpbGVyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TYXNzQ29tcGlsZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNHQUF5RjtBQUN6RixnREFBc0Q7QUFLdEQ7OztHQUdHO0FBQ0gsSUFBaUIsUUFBUSxDQW1CeEI7QUFuQkQsV0FBaUIsUUFBUTtJQUV2QixJQUFhLFlBQVksR0FBekIsTUFBYSxZQUFhLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNyRCxzQkFBc0I7WUFDcEIsT0FBTyx1QkFBdUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzFELENBQUM7UUFFRCxZQUFZLENBQUMsS0FBYTtZQUN4QixPQUFPLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsaUJBQWlCLENBQUMsU0FBaUM7WUFDakQsT0FBTyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFpQztZQUM3QyxPQUFPLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDO0tBQ0YsQ0FBQTtJQWhCWSxZQUFZO1FBRHhCLDJEQUF1QjtPQUNYLFlBQVksQ0FnQnhCO0lBaEJZLHFCQUFZLGVBZ0J4QixDQUFBO0FBQ0gsQ0FBQyxFQW5CZ0IsUUFBUSx3QkFBUixRQUFRLFFBbUJ4QiJ9
@@ -43,6 +43,7 @@ export declare namespace Services {
43
43
  private promoteTusPartsFromStaging;
44
44
  private listTusPartKeys;
45
45
  private listedObjectKey;
46
+ private sumDiskObjectContentLength;
46
47
  private tusPartsPrefix;
47
48
  private tusInfoKey;
48
49
  private streamDiskObjects;
@@ -65,6 +66,10 @@ export declare namespace Services {
65
66
  * Add a single datastream: read from staging disk, write to primary disk.
66
67
  */
67
68
  addDatastream(oid: string, datastream: Datastream, stagingDisk?: IDisk): Promise<unknown>;
69
+ private putStagedObject;
70
+ private readDiskObjectToBuffer;
71
+ private readStreamToBuffer;
72
+ private isNonRetryableStreamingWriteError;
68
73
  private afterDatastreamPromoted;
69
74
  /**
70
75
  * Remove a single datastream from the primary disk.
@@ -1 +1 @@
1
- {"version":3,"file":"StandardDatastreamService.d.ts","sourceRoot":"","sources":["../../src/services/StandardDatastreamService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StandardDatastreamService.d.ts","sourceRoot":"","sources":["../../src/services/StandardDatastreamService.ts"],"names":[],"mappings":"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"}
@@ -291,9 +291,10 @@ var Services;
291
291
  return await this.promoteTusPartsFromStaging(stagingDisk, primaryDisk, fileId, destKey)
292
292
  || primaryDisk.exists(destKey);
293
293
  }
294
+ const metadata = await stagingDisk.getMetaData(fileId);
294
295
  const readable = await stagingDisk.getStream(fileId);
295
296
  try {
296
- await primaryDisk.putStream(destKey, readable);
297
+ await this.putStagedObject(primaryDisk, destKey, stagingDisk, fileId, readable, metadata.contentLength);
297
298
  }
298
299
  catch (err) {
299
300
  readable.destroy();
@@ -327,9 +328,10 @@ var Services;
327
328
  if (!partKeys.length) {
328
329
  return false;
329
330
  }
331
+ const contentLength = await this.sumDiskObjectContentLength(stagingDisk, partKeys);
330
332
  const readable = node_stream_1.Readable.from(this.streamDiskObjects(stagingDisk, partKeys));
331
333
  try {
332
- await primaryDisk.putStream(destKey, readable);
334
+ await primaryDisk.putStream(destKey, readable, { contentLength });
333
335
  await stagingDisk.deleteAll(this.tusPartsPrefix(fileId));
334
336
  await stagingDisk.delete(this.tusInfoKey(fileId)).catch((err) => {
335
337
  if (!this.isStorageNotFoundError(err)) {
@@ -364,6 +366,14 @@ var Services;
364
366
  }
365
367
  return undefined;
366
368
  }
369
+ async sumDiskObjectContentLength(stagingDisk, keys) {
370
+ let total = 0;
371
+ for (const key of keys) {
372
+ const metadata = await stagingDisk.getMetaData(key);
373
+ total += metadata.contentLength;
374
+ }
375
+ return total;
376
+ }
367
377
  tusPartsPrefix(fileId) {
368
378
  return `.tus/${fileId}/parts/`;
369
379
  }
@@ -415,8 +425,8 @@ var Services;
415
425
  .getFormByName(typedRecord.metaMetadata.form, true, typedRecord.metaMetadata.brandId)
416
426
  .pipe((0, operators_1.mergeMap)(form => {
417
427
  const reqs = [];
418
- const attachmentFields = form?.configuration?.attachmentFields;
419
- if (attachmentFields) {
428
+ const attachmentFields = _.get(form, 'configuration.attachmentFields', _.get(form, 'attachmentFields', []));
429
+ if (attachmentFields.length > 0) {
420
430
  typedRecord.metaMetadata.attachmentFields = attachmentFields;
421
431
  for (const attField of attachmentFields) {
422
432
  const perFieldFileIdsAdded = [];
@@ -503,9 +513,10 @@ var Services;
503
513
  this.logger.verbose(`${this.logHeader} addDatastream() -> Successfully added: ${destKey}`);
504
514
  return { success: true, key: destKey };
505
515
  }
516
+ const metadata = await effectiveStagingDisk.getMetaData(fileId);
506
517
  const readable = await effectiveStagingDisk.getStream(fileId);
507
518
  try {
508
- await primaryDisk.putStream(destKey, readable);
519
+ await this.putStagedObject(primaryDisk, destKey, effectiveStagingDisk, fileId, readable, metadata.contentLength);
509
520
  }
510
521
  catch (err) {
511
522
  readable.destroy();
@@ -516,6 +527,40 @@ var Services;
516
527
  this.logger.verbose(`${this.logHeader} addDatastream() -> Successfully added: ${destKey}`);
517
528
  return { success: true, key: destKey };
518
529
  }
530
+ async putStagedObject(primaryDisk, destKey, stagingDisk, fileId, readable, contentLength) {
531
+ try {
532
+ await primaryDisk.putStream(destKey, readable, { contentLength });
533
+ }
534
+ catch (err) {
535
+ if (!this.isNonRetryableStreamingWriteError(err)) {
536
+ throw err;
537
+ }
538
+ const bytes = await this.readDiskObjectToBuffer(stagingDisk, fileId);
539
+ await primaryDisk.put(destKey, bytes, { contentLength: bytes.length });
540
+ }
541
+ }
542
+ async readDiskObjectToBuffer(stagingDisk, fileId) {
543
+ const readable = await stagingDisk.getStream(fileId);
544
+ return this.readStreamToBuffer(readable);
545
+ }
546
+ async readStreamToBuffer(readable) {
547
+ const chunks = [];
548
+ for await (const chunk of readable) {
549
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
550
+ }
551
+ return Buffer.concat(chunks);
552
+ }
553
+ isNonRetryableStreamingWriteError(err) {
554
+ const candidates = [
555
+ err,
556
+ _.get(err, 'cause'),
557
+ _.get(err, 'cause.cause'),
558
+ ];
559
+ return candidates.some((candidate) => {
560
+ const message = String(_.get(candidate, 'message', '')).toLowerCase();
561
+ return message.includes('non-retryable streaming request');
562
+ });
563
+ }
519
564
  async afterDatastreamPromoted(oid, fileId, destKey, datastream) {
520
565
  try {
521
566
  const metadataRow = await this.buildMetadataRow(oid, fileId, destKey, datastream.metadata);
@@ -746,4 +791,4 @@ var Services;
746
791
  }
747
792
  Services.StandardDatastream = StandardDatastream;
748
793
  })(Services || (exports.Services = Services = {}));
749
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmREYXRhc3RyZWFtU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TdGFuZGFyZERhdGFzdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFzRDtBQUV0RCw0RUFBeUU7QUFDekUsOENBQTJDO0FBQzNDLCtCQUFzQztBQUN0Qyw4Q0FBMEM7QUFDMUMsMENBQTRCO0FBQzVCLDZDQUF1QztBQTRCdkM7Ozs7OztHQU1HO0FBQ0gsSUFBaUIsUUFBUSxDQXd6QnhCO0FBeHpCRCxXQUFpQixRQUFRO0lBQ3ZCLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNuRCxNQUFNLENBQUMsZUFBZSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXZELGdCQUFnQixHQUFhO1lBQzlDLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGlCQUFpQjtTQUNsQixDQUFDO1FBRWlCLFNBQVMsR0FBVyw2QkFBNkIsQ0FBQztRQUVyRTs7V0FFRztRQUNLLG1CQUFtQjtZQUN6QixNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUM3QyxDQUFDO1FBRUQ7O1dBRUc7UUFDSyxVQUFVLENBQUMsR0FBVyxFQUFFLE1BQWM7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
794
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmREYXRhc3RyZWFtU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TdGFuZGFyZERhdGFzdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFzRDtBQUV0RCw0RUFBeUU7QUFDekUsOENBQTJDO0FBQzNDLCtCQUFzQztBQUN0Qyw4Q0FBMEM7QUFDMUMsMENBQTRCO0FBQzVCLDZDQUF1QztBQTRCdkM7Ozs7OztHQU1HO0FBQ0gsSUFBaUIsUUFBUSxDQW8zQnhCO0FBcDNCRCxXQUFpQixRQUFRO0lBQ3ZCLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNuRCxNQUFNLENBQUMsZUFBZSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXZELGdCQUFnQixHQUFhO1lBQzlDLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGlCQUFpQjtTQUNsQixDQUFDO1FBRWlCLFNBQVMsR0FBVyw2QkFBNkIsQ0FBQztRQUVyRTs7V0FFRztRQUNLLG1CQUFtQjtZQUN6QixNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUM3QyxDQUFDO1FBRUQ7O1dBRUc7UUFDSyxVQUFVLENBQUMsR0FBVyxFQUFFLE1BQWM7WUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN6RCxDQUFDO1FBRU8sb0JBQW9CLENBQUMsR0FBVztZQUN0QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNyRCxDQUFDO1FBRU8seUJBQXlCO1lBQy9CLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyx5QkFBMEUsQ0FBQztRQUNuRyxDQUFDO1FBRU8sZUFBZSxDQUFDLGNBQXlDO1lBQy9ELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9ELE9BQU8sUUFBUSxJQUFJLFNBQVMsQ0FBQztRQUMvQixDQUFDO1FBRU8sZUFBZSxDQUFDLEtBQWM7WUFDcEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUVELElBQUksS0FBSyxZQUFZLElBQUksRUFBRSxDQUFDO2dCQUMxQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pFLENBQUM7WUFFRCxNQUFNLG9CQUFvQixHQUFHLEtBQXVDLENBQUM7WUFDckUsSUFBSSxPQUFPLG9CQUFvQixDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxDQUFDO29CQUNILE9BQU8sb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzVDLENBQUM7Z0JBQUMsTUFBTSxDQUFDO29CQUNQLE9BQU8sU0FBUyxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQStCLENBQUMsQ0FBQztZQUNqRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNGLENBQUM7UUFFTyxtQkFBbUIsQ0FBQyxHQUFpQztZQUMzRCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQyxZQUFZO2dCQUM3QyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQXNDLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO2dCQUM5QyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7Z0JBQzVCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtnQkFDaEMsWUFBWSxFQUFFLHNCQUFzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVk7Z0JBQ25JLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDZCxRQUFRLEVBQUU7b0JBQ1IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO29CQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTTtvQkFDaEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFdBQVc7b0JBQ3pDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtvQkFDdEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO29CQUMxQixlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7b0JBQ3BDLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztvQkFDbEMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjO29CQUNsQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7aUJBQzdCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDNUIsR0FBVyxFQUNYLE1BQWMsRUFDZCxVQUFrQixFQUNsQixRQUFrQztZQUVsQyxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxNQUFNLFlBQVksR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0QsT0FBTztnQkFDTCxHQUFHO2dCQUNILE1BQU07Z0JBQ04sVUFBVTtnQkFDVixXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTtnQkFDekMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUM3RCxRQUFRLEVBQUUsT0FBTyxRQUFRLEVBQUUsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDeEUsUUFBUSxFQUFFLE9BQU8sUUFBUSxFQUFFLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXO2dCQUMvRixVQUFVLEVBQUUsT0FBTyxRQUFRLEVBQUUsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDdEYsZUFBZSxFQUFFLE9BQU8sUUFBUSxFQUFFLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDdEcsQ0FBQztRQUNKLENBQUM7UUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBNEI7WUFDN0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyQixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUywrQkFBK0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzNGLENBQUM7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQWtCO1lBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDckIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxlQUFlLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkQsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUywrQkFBK0IsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkYsQ0FBQztRQUNILENBQUM7UUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FPaEM7WUFDQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDO2dCQUNILE1BQU0sZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDRCQUE0QixLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZILENBQUM7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLHdCQUF3QixDQUNwQyxHQUFXLEVBQ1gsV0FBcUU7WUFFckUsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEQsTUFBTSxPQUFPLEdBQW9ELEVBQUUsQ0FBQztZQUNwRSxNQUFNLFlBQVksR0FBNEMsRUFBRSxDQUFDO1lBQ2pFLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzdCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtvQkFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzlDLE1BQU0sR0FBRyxHQUE0Qjt3QkFDbkMsR0FBRzt3QkFDSCxNQUFNO3dCQUNOLFVBQVUsRUFBRSxHQUFHO3dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO3dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7d0JBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztxQkFDdEQsQ0FBQztvQkFDRixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUc7d0JBQ2xCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO3dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7d0JBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO3FCQUNoQyxDQUFDO29CQUNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQXVGLEVBQUUsQ0FBQztZQUNyRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztvQkFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUc7d0JBQy9CLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSzt3QkFDakIsT0FBTyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7cUJBQ3JELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRU8sbUJBQW1CLENBQUMsR0FBVyxFQUFFLFVBQW1DLEVBQUU7WUFDNUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsR0FBRyxPQUFPO2dCQUNWLFFBQVEsRUFBRTtvQkFDUixNQUFNO29CQUNOLElBQUksRUFBRSxNQUFNO29CQUNaLEdBQUcsQ0FBRSxPQUFPLENBQUMsVUFBVSxDQUF5QyxJQUFJLEVBQUUsQ0FBQztpQkFDeEU7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVPLHNCQUFzQixDQUFDLEdBQVk7WUFDekMsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsR0FLcEIsQ0FBQztZQUNGLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBRTFELE9BQU8sWUFBWSxDQUFDLElBQUksS0FBSyxRQUFRO21CQUNoQyxZQUFZLENBQUMsSUFBSSxLQUFLLFdBQVc7bUJBQ2pDLFlBQVksQ0FBQyxNQUFNLEtBQUssR0FBRzttQkFDM0IsWUFBWSxDQUFDLFVBQVUsS0FBSyxHQUFHO21CQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQzttQkFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7bUJBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7bUJBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVPLDJCQUEyQixDQUFDLEdBQVk7WUFDOUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsR0FLcEIsQ0FBQztZQUNGLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBRTFELE9BQU8sWUFBWSxDQUFDLElBQUksS0FBSyxRQUFRO21CQUNoQyxZQUFZLENBQUMsTUFBTSxLQUFLLEdBQUc7bUJBQzNCLFlBQVksQ0FBQyxVQUFVLEtBQUssR0FBRzttQkFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQzttQkFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLEdBQVcsRUFBRSxNQUFjLEVBQUUsT0FBZTtZQUMvRSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25GLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxpQkFBaUIsQ0FBQztZQUMzQixDQUFDO1lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2RSxRQUFRLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUUzRSxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLGdCQUFnQixDQUFDO1lBQ2hDLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLGdCQUFnQixFQUFFLENBQUM7b0JBQ2xGLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBVyxFQUFFLE1BQWMsRUFBRSxPQUFlO1lBQzNFLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hELE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXhELElBQUksTUFBTSxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsNkNBQTZDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzdGLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO3VCQUNsRixXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXJELElBQUksQ0FBQztnQkFDSCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUcsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNuRixNQUFNLEdBQUcsQ0FBQztnQkFDWixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0QyxNQUFNLEdBQUcsQ0FBQztnQkFDWixDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsc0NBQXNDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdEYsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUM7b0JBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDdEUsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9DLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGtEQUFrRCxPQUFPLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkcsQ0FBQztnQkFDRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4RixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRU8sS0FBSyxDQUFDLDBCQUEwQixDQUN0QyxXQUFrQixFQUNsQixXQUFrQixFQUNsQixNQUFjLEVBQ2QsT0FBZTtZQUVmLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25GLE1BQU0sUUFBUSxHQUFHLHNCQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3RDLE1BQU0sR0FBRyxDQUFDO29CQUNaLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsMEVBQTBFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUgsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFrQixFQUFFLE1BQWM7WUFDOUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztpQkFDOUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM3QyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQWlCLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7aUJBQ3pFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRU8sZUFBZSxDQUFDLE1BQWU7WUFDckMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQTJDLENBQUM7WUFDOUQsSUFBSSxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN2QixDQUFDO1lBQ0QsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVPLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxXQUFrQixFQUFFLElBQWM7WUFDekUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRU8sY0FBYyxDQUFDLE1BQWM7WUFDbkMsT0FBTyxRQUFRLE1BQU0sU0FBUyxDQUFDO1FBQ2pDLENBQUM7UUFFTyxVQUFVLENBQUMsTUFBYztZQUMvQixPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7UUFDcEMsQ0FBQztRQUVPLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFdBQWtCLEVBQUUsSUFBYztZQUNqRSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hELElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNqQyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLDZDQUE2QztRQUM3QyxtRUFBbUU7UUFFbkU7OztXQUdHO1FBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFXLEVBQUUsV0FBeUI7WUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxxREFBeUIsRUFBRSxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV2QixLQUFLLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDdkUsTUFBTSxjQUFjLEdBQUcsMEJBQTBCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDdEUsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQzdHLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUNsQixNQUFNLGNBQWMsR0FBRyxxQkFBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDcEcsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQzdHLENBQUM7WUFDSCxDQUFDO1lBRUQsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUMvQixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQ7OztXQUdHO1FBQ0ksZ0JBQWdCLENBQ3JCLEdBQVcsRUFDWCxNQUFlLEVBQ2YsV0FBb0IsRUFDcEIsV0FBa0IsRUFDbEIsWUFBMEI7WUFFMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFMUQsT0FBTyxZQUFZO2lCQUNoQixhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO2lCQUNwRixJQUFJLENBQ0gsSUFBQSxvQkFBUSxFQUFDLElBQUksQ0FBQyxFQUFFO2dCQUVkLE1BQU0sSUFBSSxHQUF1QixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FDNUIsSUFBSSxFQUNKLGdDQUFnQyxFQUNoQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FDeEIsQ0FBQztnQkFDZCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsV0FBVyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztvQkFFN0QsS0FBSyxNQUFNLFFBQVEsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO3dCQUN4QyxNQUFNLG9CQUFvQixHQUFpQixFQUFFLENBQUM7d0JBQzlDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFDM0UsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQzt3QkFDdkUsTUFBTSxTQUFTLEdBQWlCLEVBQUUsQ0FBQzt3QkFFbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBQ3RFLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxFQUFFLENBQUM7NEJBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dDQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDOzRCQUM1QyxDQUFDO3dCQUNILENBQUM7d0JBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBQ25FLEtBQUssTUFBTSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7NEJBQzNCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dDQUM5QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBVSxDQUFDO29DQUN2QyxHQUFHLE1BQU07b0NBQ1QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0NBQ3BCLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO29DQUM1QixlQUFlLEVBQUUsUUFBUTtvQ0FDekIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUM7aUNBQ2pDLENBQUMsQ0FBQyxDQUFDOzRCQUNOLENBQUM7d0JBQ0gsQ0FBQzt3QkFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsQ0FBQzt3QkFFM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUM3RixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyxJQUFBLFNBQUUsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUVPLFlBQVksQ0FBQyxNQUFlO1lBQ2xDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFpQyxDQUFDO1lBQzlDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFtRCxDQUFDO1lBQzdFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUErQyxDQUFDO1lBQ3JFLE1BQU0sSUFBSSxHQUFHLE9BQU8sWUFBWSxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxNQUFNLE9BQU8sR0FBRyxPQUFPLFlBQVksRUFBRSxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0YsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztnQkFDcEUsQ0FBQyxDQUFFLFlBQVksRUFBRSxnQkFBNkI7Z0JBQzlDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDZCxPQUFPO2dCQUNMLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTthQUN6QixDQUFDO1FBQ0osQ0FBQztRQUVPLGNBQWMsQ0FBQyxLQUFjO1lBQ25DLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sS0FBZ0MsQ0FBQztRQUMxQyxDQUFDO1FBRU8sY0FBYyxDQUFDLFFBQWlDLEVBQUUsS0FBYTtZQUNyRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFtQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRU8sZUFBZSxDQUNyQixNQUFzQyxFQUN0QyxVQUEwQztZQUUxQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsSUFBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVPLFlBQVksQ0FBQyxLQUE4QjtZQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxZQUFZLElBQUksT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssUUFBUSxDQUFDO1FBQy9FLENBQUM7UUFFRDs7V0FFRztRQUNJLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBVyxFQUFFLFVBQXNCLEVBQUUsV0FBbUI7WUFDakYsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLCtCQUErQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBRTlFLE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hGLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTdDLE1BQU0sZUFBZSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNuSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDaEUsQ0FBQztnQkFDRCxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUywyQ0FBMkMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkgsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixNQUFNLEdBQUcsQ0FBQztZQUNaLENBQUM7WUFDRCxNQUFNLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUxQyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVyRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDJDQUEyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBRU8sS0FBSyxDQUFDLGVBQWUsQ0FDM0IsV0FBa0IsRUFDbEIsT0FBZSxFQUNmLFdBQWtCLEVBQ2xCLE1BQWMsRUFDZCxRQUFrQixFQUNsQixhQUFxQjtZQUVyQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakQsTUFBTSxHQUFHLENBQUM7Z0JBQ1osQ0FBQztnQkFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3JFLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLENBQUM7UUFDSCxDQUFDO1FBRU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLFdBQWtCLEVBQUUsTUFBYztZQUNyRSxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFrQjtZQUNqRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7WUFDNUIsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRU8saUNBQWlDLENBQUMsR0FBWTtZQUNwRCxNQUFNLFVBQVUsR0FBRztnQkFDakIsR0FBRztnQkFDSCxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQzthQUMxQixDQUFDO1lBQ0YsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLEdBQVcsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLFVBQXNCO1lBQ3hHLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsNkNBQTZDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xHLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDNUIsR0FBRztnQkFDSCxNQUFNO2dCQUNOLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsVUFBVSxFQUFFLE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUM3RyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLFVBQXNCO1lBQy9ELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxvQ0FBb0MsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwRixNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDZDQUE2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLDREQUE0RCxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzlHLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN0RixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRDs7V0FFRztRQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FDbEMsR0FBVyxFQUNYLGNBQTRCLEVBQzVCLGlCQUErQixFQUMvQixXQUFtQjtZQUVuQixLQUFLLE1BQU0sRUFBRSxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVEOzs7V0FHRztRQUNJLEtBQUssQ0FBQyxhQUFhLENBQ3hCLEdBQVcsRUFDWCxNQUFjLEVBQ2QsY0FBeUM7WUFFekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyw0QkFBNEIsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUU1RSxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUV4RCxrQkFBa0I7WUFDbEIsSUFBSSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNuRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFhLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVsRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUN6RCxNQUFNLFdBQVcsR0FBRyxNQUFNLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV4RSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ3BFLElBQUksR0FBRyxXQUFXLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDO29CQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDcEQsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO29CQUNyQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUM7b0JBQy9CLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDO3dCQUM5QixHQUFHO3dCQUNILE1BQU07d0JBQ04sVUFBVSxFQUFFLE9BQU87d0JBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzt3QkFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO3dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7d0JBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztxQkFDdEQsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQUMsTUFBTSxDQUFDO29CQUNQLGdEQUFnRDtnQkFDbEQsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDNUIsR0FBRztnQkFDSCxNQUFNO2dCQUNOLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixNQUFNLEVBQUUsVUFBVTtnQkFDbEIsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO2FBQ2pELENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0wsVUFBVTtnQkFDVixXQUFXO2dCQUNYLElBQUk7YUFDTCxDQUFDO1FBQ0osQ0FBQztRQUVEOzs7V0FHRztRQUNJLEtBQUssQ0FBQyxlQUFlLENBQzFCLEdBQVcsRUFDWCxNQUFjLEVBQ2QsY0FBeUM7WUFFekMsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFFekQsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNaLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hFLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2hCLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDO3dCQUM1QixHQUFHO3dCQUNILE1BQU07d0JBQ04sVUFBVSxFQUFFLE9BQU87d0JBQ25CLE1BQU0sRUFBRSxNQUFNO3dCQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQzt3QkFDaEQsU0FBUyxFQUFFLENBQUM7cUJBQ2IsQ0FBQyxDQUFDO29CQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakQsQ0FBQztnQkFDRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNwRCxNQUFNLFFBQVEsR0FBRzt3QkFDZixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFOzRCQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7NEJBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTs0QkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZOzRCQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7eUJBQ2hCLENBQUM7cUJBQ0gsQ0FBQztvQkFDRixNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDOUIsR0FBRzt3QkFDSCxNQUFNO3dCQUNOLFVBQVUsRUFBRSxPQUFPO3dCQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7d0JBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTt3QkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzt3QkFDckQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNoQixDQUFDLENBQUM7b0JBQ0gsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUM7d0JBQzVCLEdBQUc7d0JBQ0gsTUFBTTt3QkFDTixVQUFVLEVBQUUsT0FBTzt3QkFDbkIsTUFBTSxFQUFFLE1BQU07d0JBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO3dCQUNoRCxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU07cUJBQzNCLENBQUMsQ0FBQztvQkFDSCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDckQsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUM7d0JBQzVCLEdBQUc7d0JBQ0gsTUFBTTt3QkFDTixVQUFVLEVBQUUsT0FBTzt3QkFDbkIsTUFBTSxFQUFFLE1BQU07d0JBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO3dCQUNoRCxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU07cUJBQzNCLENBQUMsQ0FBQztvQkFDSCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7WUFFRCxzQ0FBc0M7WUFDdEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFLdEUsTUFBTSxXQUFXLEdBQTRCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNsRixNQUFNLE9BQU8sR0FBRyxHQUE4QixDQUFDO2dCQUMvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDN0QsT0FBTztvQkFDTCxHQUFHO29CQUNILE9BQU87aUJBQ1IsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxZQUFZLEdBQUcsTUFBTSxlQUFlLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUMxRCxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFM0csSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVGLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDO29CQUM1QixHQUFHO29CQUNILE1BQU0sRUFBRSxNQUFNO29CQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQztvQkFDaEQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUVELE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3RGLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO2dCQUNwRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO2dCQUVELE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNmLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRTt3QkFDbkMsR0FBRyxPQUFPO3dCQUNWLEdBQUcsVUFBVSxDQUFDLE9BQU87d0JBQ3JCLFFBQVEsRUFBRTs0QkFDUixNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNOzRCQUM3QixJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNOzRCQUN0RCxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXOzRCQUMvRCxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFROzRCQUNqQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVOzRCQUNyQyxlQUFlLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlO3lCQUNoRDtxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDNUIsR0FBRztnQkFDSCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUM7Z0JBQ2hELFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTthQUMzQixDQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDOztJQWozQlUsMkJBQWtCLHFCQWszQjlCLENBQUE7QUFDSCxDQUFDLEVBcDNCZ0IsUUFBUSx3QkFBUixRQUFRLFFBbzNCeEIifQ==
@@ -68,6 +68,7 @@ export declare namespace Services {
68
68
  */
69
69
  private createDriver;
70
70
  private normalizeGridFSString;
71
+ private normalizeOptionalBoolean;
71
72
  /**
72
73
  * Get a disk by name.
73
74
  * @throws Error if disk is not found.
@@ -1 +1 @@
1
- {"version":3,"file":"StorageManagerService.d.ts","sourceRoot":"","sources":["../../src/services/StorageManagerService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StorageManagerService.d.ts","sourceRoot":"","sources":["../../src/services/StorageManagerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAoE,MAAM,0BAA0B,CAAC;AAGvI;;;;;;;;GAQG;AACH,yBAAiB,QAAQ,CAAC;IAkCxB;;;;OAIG;IACH,UAAiB,KAAK;QACpB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,aAAa,EAAE,QAAQ,CAAC,CAAC;QAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,WAAW,CACT,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,IAAI,CAAA;SAAE,CAAC,CAAC;QAC9F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5F,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5F,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACxG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,CACL,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,OAAO,CAAC;YAAC,eAAe,CAAC,EAAE,MAAM,CAAA;SAAE,GAC1D,OAAO,CAAC;YACT,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC5B,CAAC,CAAC;KACJ;IAED,MAAa,cAAe,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QACvD,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAUlC;QAEF,SAAS,CAAC,SAAS,EAAE,MAAM,CAA6B;QAGxD,OAAO,CAAC,gBAAgB,CAAgC;QACxD,OAAO,CAAC,SAAS,CAAoC;QACrD,OAAO,CAAC,SAAS,CAAoC;QACrD,OAAO,CAAC,aAAa,CAAyC;QAG9D,OAAO,CAAC,MAAM,CAAiC;QAC/C,OAAO,CAAC,aAAa,CAAkB;QACvC,OAAO,CAAC,iBAAiB,CAA8B;QACvD,OAAO,CAAC,eAAe,CAAkB;QAEzB,IAAI,IAAI,IAAI;kBAeH,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;QAkC/D;;;;WAIG;QACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;QAmBhC,sBAAsB,IAAI,aAAa;gBAYhC,gBAAgB;QAyC9B;;WAEG;QACH,OAAO,CAAC,YAAY;QAiEpB,OAAO,CAAC,qBAAqB;QAI7B,OAAO,CAAC,wBAAwB;QAgBhC;;;WAGG;QACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;QAUhC;;WAEG;QACI,WAAW,IAAI,KAAK;QAM3B;;WAEG;QACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;QAW9C;;WAEG;QACI,oBAAoB,IAAI,UAAU;QAMzC;;WAEG;QACI,WAAW,IAAI,KAAK;QAM3B;;WAEG;QACI,cAAc,IAAI,OAAO;KAGjC;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,qBAAqB,EAAE,QAAQ,CAAC,cAAc,CAAC;CACtD"}