@cichol/sass-bridge 4.6.13 → 5.0.0

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/dists/index.cjs CHANGED
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var _Symbol = require('core-js-pure/features/symbol/index.js');
4
- var _Reflect$defineMetadata = require('core-js-pure/features/reflect/define-metadata.js');
5
- var _Promise = require('core-js-pure/features/promise/index.js');
3
+ var _Map = require('core-js-pure/features/map/index.js');
6
4
  var _mapInstanceProperty = require('core-js-pure/features/instance/map.js');
7
- var _Reflect$getMetadata = require('core-js-pure/features/reflect/get-metadata.js');
8
- var _Reflect$construct = require('core-js-pure/features/reflect/construct.js');
5
+ var _Promise = require('core-js-pure/features/promise/index.js');
6
+ var _Reflect$apply = require('core-js-pure/features/reflect/apply.js');
7
+ var _flatMapInstanceProperty = require('core-js-pure/features/instance/flat-map.js');
8
+ var _filterInstanceProperty = require('core-js-pure/features/instance/filter.js');
9
+ var _Reflect$getPrototypeOf = require('core-js-pure/features/reflect/get-prototype-of.js');
10
+ var _Symbol$metadata = require('core-js-pure/features/symbol/metadata.js');
11
+ var _Array$from = require('core-js-pure/features/array/from.js');
12
+ var _entriesInstanceProperty = require('core-js-pure/features/instance/entries.js');
9
13
  var _Object$fromEntries = require('core-js-pure/features/object/from-entries.js');
10
- require('reflect-metadata');
11
- var _Symbol$toStringTag = require('core-js-pure/features/symbol/to-string-tag.js');
12
14
  var _pushInstanceProperty = require('core-js-pure/features/instance/push.js');
13
15
  var _fillInstanceProperty = require('core-js-pure/features/instance/fill.js');
14
- var _Array$from = require('core-js-pure/features/array/from.js');
15
- var _entriesInstanceProperty = require('core-js-pure/features/instance/entries.js');
16
- var _Map = require('core-js-pure/features/map/index.js');
17
- var _everyInstanceProperty = require('core-js-pure/features/instance/every.js');
18
- var _Array$isArray = require('core-js-pure/features/array/is-array.js');
19
16
  var chroma = require('chroma-js');
20
- var Immutable = require('immutable');
21
- var _filterInstanceProperty = require('core-js-pure/features/instance/filter.js');
22
17
  var _Object$keys = require('core-js-pure/features/object/keys.js');
23
18
  var _startsWithInstanceProperty = require('core-js-pure/features/instance/starts-with.js');
24
19
  var _Object$getPrototypeOf = require('core-js-pure/features/object/get-prototype-of.js');
25
20
  var sass = require('sass');
21
+ var _Symbol$toStringTag = require('core-js-pure/features/symbol/to-string-tag.js');
22
+ var _everyInstanceProperty = require('core-js-pure/features/instance/every.js');
23
+ var _Array$isArray = require('core-js-pure/features/array/is-array.js');
24
+ var util = require('util');
25
+ var Immutable = require('immutable');
26
26
 
27
27
  function _interopNamespaceDefault(e) {
28
28
  var n = Object.create(null);
@@ -41,7 +41,6 @@ function _interopNamespaceDefault(e) {
41
41
  return Object.freeze(n);
42
42
  }
43
43
 
44
- var Immutable__namespace = /*#__PURE__*/_interopNamespaceDefault(Immutable);
45
44
  var sass__namespace = /*#__PURE__*/_interopNamespaceDefault(sass);
46
45
 
47
46
  var _context, _context2, _context3, _context4, _context5;
@@ -69,14 +68,6 @@ const {
69
68
  } = SassTypes;
70
69
  const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
71
70
 
72
- // Helper functions.
73
- function isObject(value) {
74
- const type = typeof value;
75
- return !!value && (type === 'object' || type === 'function');
76
- }
77
- function isMap(value) {
78
- return isObject(value) && _Symbol$toStringTag in value && value[_Symbol$toStringTag] === 'Map';
79
- }
80
71
  function sassToJavaScriptType(sassValue) {
81
72
  switch (true) {
82
73
  case sassValue instanceof SassBoolean:
@@ -137,8 +128,19 @@ function sassToJavaScriptType(sassValue) {
137
128
  }
138
129
  }
139
130
  }
131
+
132
+ // Helper functions.
133
+ function isObject(value) {
134
+ const type = typeof value;
135
+ return !!value && (type === 'object' || type === 'function');
136
+ }
137
+ function isMap(value) {
138
+ if (value instanceof _Map) return true;
139
+ if (util.types.isMap(value)) return true;
140
+ return isObject(value) && _Symbol$toStringTag in value && value[_Symbol$toStringTag] === 'Map';
141
+ }
140
142
  function javaScriptToSassType(rawValue) {
141
- var _context3, _context4;
143
+ var _context, _context2;
142
144
  switch (true) {
143
145
  case typeof rawValue === 'boolean':
144
146
  {
@@ -150,7 +152,7 @@ function javaScriptToSassType(rawValue) {
150
152
  const numberValue = rawValue;
151
153
  return new SassNumber(numberValue);
152
154
  }
153
- case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
155
+ case isObject(rawValue) && _everyInstanceProperty(_context = ['value', 'unit']).call(_context, propertyKey => propertyKey in rawValue):
154
156
  {
155
157
  const {
156
158
  value,
@@ -163,7 +165,7 @@ function javaScriptToSassType(rawValue) {
163
165
  const stringValue = rawValue;
164
166
  return new SassString(stringValue);
165
167
  }
166
- case isObject(rawValue) && _everyInstanceProperty(_context4 = ['value', 'quotes']).call(_context4, propertyKey => propertyKey in rawValue):
168
+ case isObject(rawValue) && _everyInstanceProperty(_context2 = ['value', 'quotes']).call(_context2, propertyKey => propertyKey in rawValue):
167
169
  {
168
170
  const {
169
171
  value: stringValue,
@@ -189,10 +191,10 @@ function javaScriptToSassType(rawValue) {
189
191
  }
190
192
  case isMap(rawValue):
191
193
  {
192
- var _context5;
194
+ var _context3;
193
195
  const mapValue = rawValue;
194
- const iterable = _mapInstanceProperty(_context5 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context5, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
195
- return new SassMap(Immutable__namespace.OrderedMap(iterable));
196
+ const iterable = _mapInstanceProperty(_context3 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context3, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
197
+ return new SassMap(Immutable.OrderedMap(iterable));
196
198
  }
197
199
  default:
198
200
  {
@@ -203,30 +205,36 @@ function javaScriptToSassType(rawValue) {
203
205
 
204
206
  // Type definitions.
205
207
 
206
- // Constants.
207
- const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
208
- function sassFunction(definition) {
209
- return target => {
210
- _Reflect$defineMetadata(KeyOfSignature, definition, target);
211
- return target;
208
+ function sassFunction(signature) {
209
+ return function decorate(target, context) {
210
+ if (context.private) {
211
+ throw new TypeError('Not supported on private methods.');
212
+ }
213
+ if (!context.metadata.functionMap) {
214
+ context.metadata.functionMap = new _Map();
215
+ }
216
+ const {
217
+ functionMap
218
+ } = context.metadata;
219
+ context.addInitializer(function initialize() {
220
+ const bridgedFunction = async rawArgs => {
221
+ const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
222
+ const result = await _Promise.resolve(_Reflect$apply(target, this, args));
223
+ return javaScriptToSassType(result);
224
+ };
225
+ functionMap.set(signature, bridgedFunction);
226
+ });
212
227
  };
213
228
  }
214
229
  async function getFunctions(...moduleImports) {
215
- const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(({
216
- default: Constructor
217
- }) => Constructor)));
218
- const entries = _mapInstanceProperty(modules).call(modules, module => {
219
- const signature = _Reflect$getMetadata(KeyOfSignature, module);
220
- async function customFunction(rawArgs) {
221
- const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
222
- const result = await _Reflect$construct(module, args).execute();
223
- return javaScriptToSassType(result);
224
- }
225
- return [signature, customFunction];
226
- });
230
+ var _context, _context2;
231
+ const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => module.then(({
232
+ default: Module
233
+ }) => new Module())));
234
+ const entries = _flatMapInstanceProperty(_context = _filterInstanceProperty(_context2 = _mapInstanceProperty(modules).call(modules, module => (_Reflect$getPrototypeOf(module)?.constructor)[_Symbol$metadata]?.functionMap)).call(_context2, functionMap => !!functionMap)).call(_context, functionMap => _Array$from(_entriesInstanceProperty(functionMap).call(functionMap)));
227
235
  return _Object$fromEntries(entries);
228
236
  }
229
237
 
230
238
  exports.getFunctions = getFunctions;
231
239
  exports.sassFunction = sassFunction;
232
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL3R5cGVzLnRzIiwiLi4vc291cmNlcy90eXBlLWNvbnZlcnRlci50cyIsIi4uL3NvdXJjZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tICdjaHJvbWEtanMnXG5pbXBvcnQgKiBhcyBzYXNzIGZyb20gJ3Nhc3MnXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJ3Nhc3MnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVzID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGxcblxuZXhwb3J0IHR5cGUgTnVtYmVyV2l0aFVuaXQgPSB7IHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyB9XG5cbmV4cG9ydCB0eXBlIFN0cmluZ1dpdGhRdW90ZXMgPSB7IHZhbHVlOiBzdHJpbmcsIHF1b3RlczogYm9vbGVhbiB9XG5cbmV4cG9ydCB0eXBlIEphdmFTY3JpcHRUeXBlPEJhc2UgPSBQcmltaXRpdmVzIHwgQ29sb3IgfCBOdW1iZXJXaXRoVW5pdCB8IFN0cmluZ1dpdGhRdW90ZXM+ID1cblx0fCBCYXNlXG5cdHwgSmF2YVNjcmlwdFR5cGU8QmFzZT5bXVxuXHR8IE1hcDxKYXZhU2NyaXB0VHlwZTxCYXNlPiwgSmF2YVNjcmlwdFR5cGU8QmFzZT4+XG5cbnR5cGUgRmlsdGVyU2Fzc1ByZWZpeDxUIGV4dGVuZHMgc3RyaW5nPiA9IFQgZXh0ZW5kcyBgU2FzcyR7aW5mZXIgUn1gID8gUiA6IG5ldmVyXG5cbnR5cGUgU2Fzc1R5cGVzID0gRXhjbHVkZTxgU2FzcyR7RmlsdGVyU2Fzc1ByZWZpeDxrZXlvZiB0eXBlb2Ygc2Fzcz59YCwgYFNhc3MkeydCb29sZWFuJyB8ICdDYWxjdWxhdGlvbid9YD5cblxuY29uc3QgU2Fzc1R5cGVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRPYmplY3Qua2V5cyhzYXNzKVxuXHRcdC5maWx0ZXIocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkuc3RhcnRzV2l0aCgnU2FzcycpKVxuXHRcdC5tYXAocHJvcGVydHlLZXkgPT4gc2Fzc1twcm9wZXJ0eUtleSBhcyBTYXNzVHlwZXNdKVxuXHRcdC5maWx0ZXIoY29uc3RydWN0b3IgPT4gdHlwZW9mIGNvbnN0cnVjdG9yID09PSAnZnVuY3Rpb24nKVxuXHRcdC5maWx0ZXIoY29uc3RydWN0b3IgPT4gT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoVmFsdWUucHJvdG90eXBlLCBjb25zdHJ1Y3Rvci5wcm90b3R5cGUpKVxuXHRcdC5tYXAoY29uc3RydWN0b3IgPT4gWyBjb25zdHJ1Y3Rvci5uYW1lLCBjb25zdHJ1Y3RvciBdIGFzIFtTYXNzVHlwZXMsICh0eXBlb2Ygc2FzcylbU2Fzc1R5cGVzXV0pLFxuKSBhcyB7IFtQIGluIFNhc3NUeXBlc106ICh0eXBlb2Ygc2FzcylbUF0gfVxuXG5leHBvcnQgY29uc3QgU2Fzc1RSVUUgPSBzYXNzLnNhc3NUcnVlXG5leHBvcnQgdHlwZSBTYXNzVFJVRSA9IHR5cGVvZiBTYXNzVFJVRVxuXG5leHBvcnQgY29uc3QgU2Fzc0ZBTFNFID0gc2Fzcy5zYXNzRmFsc2VcbmV4cG9ydCB0eXBlIFNhc3NGQUxTRSA9IHR5cGVvZiBTYXNzRkFMU0VcblxuZXhwb3J0IGNvbnN0IFNhc3NOVUxMID0gc2Fzcy5zYXNzTnVsbFxuZXhwb3J0IHR5cGUgU2Fzc05VTEwgPSB0eXBlb2YgU2Fzc05VTExcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc051bWJlciB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTnVtYmVyID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTnVtYmVyPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzU3RyaW5nIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NTdHJpbmcgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NTdHJpbmc+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NDb2xvciB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzQ29sb3IgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NDb2xvcj5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc0xpc3QgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc0xpc3QgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NMaXN0PlxuXG5leHBvcnQgY29uc3QgeyBTYXNzTWFwIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NNYXAgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NNYXA+XG5cbmV4cG9ydCBjb25zdCBTYXNzQm9vbGVhbiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihTYXNzVFJVRSkuY29uc3RydWN0b3IgYXMgdHlwZW9mIHNhc3MuU2Fzc0Jvb2xlYW5cbmV4cG9ydCB0eXBlIFNhc3NCb29sZWFuID0gc2Fzcy5TYXNzQm9vbGVhblxuXG5leHBvcnQgdHlwZSBTYXNzVHlwZSA9XG5cdHwgSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzVHlwZXMgZXh0ZW5kcyBSZWNvcmQ8YW55LCBpbmZlciBSPiA/IFIgOiBuZXZlcj5cblx0fCBTYXNzQm9vbGVhblxuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaHJvbWEgZnJvbSAnY2hyb21hLWpzJ1xuaW1wb3J0ICogYXMgSW1tdXRhYmxlIGZyb20gJ2ltbXV0YWJsZSdcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7XG5cdHR5cGUgU2Fzc1R5cGUsXG5cdFNhc3NCb29sZWFuLFxuXHRTYXNzTnVtYmVyLFxuXHRTYXNzU3RyaW5nLFxuXHRTYXNzQ29sb3IsXG5cdFNhc3NMaXN0LFxuXHRTYXNzTWFwLFxuXHRTYXNzVFJVRSxcblx0U2Fzc0ZBTFNFLFxuXHRTYXNzTlVMTCxcblx0dHlwZSBKYXZhU2NyaXB0VHlwZSxcblx0dHlwZSBOdW1iZXJXaXRoVW5pdCxcblx0dHlwZSBTdHJpbmdXaXRoUXVvdGVzLFxufSBmcm9tICcuL3R5cGVzJ1xuXG4vLyBIZWxwZXIgZnVuY3Rpb25zLlxuZnVuY3Rpb24gaXNPYmplY3QodmFsdWU/OiB1bmtub3duKTogdmFsdWUgaXMgb2JqZWN0IHtcblx0Y29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZVxuXG5cdHJldHVybiAhIXZhbHVlICYmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKVxufVxuXG5mdW5jdGlvbiBpc01hcCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuXHRyZXR1cm4gaXNPYmplY3QodmFsdWUpICYmIFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnTWFwJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2Fzc1RvSmF2YVNjcmlwdFR5cGUoc2Fzc1ZhbHVlOiBTYXNzVHlwZSk6IEphdmFTY3JpcHRUeXBlIHtcblx0c3dpdGNoICh0cnVlKSB7XG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0Jvb2xlYW46IHtcblx0XHRyZXR1cm4gc2Fzc1ZhbHVlLnZhbHVlXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NTdHJpbmc6IHtcblx0XHRyZXR1cm4gc2Fzc1ZhbHVlLnRleHRcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc051bWJlcjoge1xuXHRcdGNvbnN0IHsgdmFsdWUsIG51bWVyYXRvclVuaXRzLCBkZW5vbWluYXRvclVuaXRzIH0gPSBzYXNzVmFsdWVcblxuXHRcdGNvbnN0IHVuaXQgPSBzYXNzVmFsdWUuaGFzVW5pdHNcblx0XHRcdD8gbnVtZXJhdG9yVW5pdHMuam9pbignKicpICsgKGRlbm9taW5hdG9yVW5pdHMuc2l6ZSA+IDAgPyBgLyR7ZGVub21pbmF0b3JVbml0cy5qb2luKCcqJyl9YCA6ICcnKVxuXHRcdFx0OiAnJ1xuXG5cdFx0cmV0dXJuIHVuaXQgPyB7IHZhbHVlLCB1bml0IH0gOiB2YWx1ZVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzQ29sb3I6IHtcblx0XHRjb25zdCBzYXNzQ29sb3IgPSBzYXNzVmFsdWUudG9TcGFjZSgncmdiJylcblx0XHRjb25zdCB7IGFscGhhLCBzcGFjZSB9ID0gc2Fzc0NvbG9yXG5cdFx0Y29uc3QgY2hhbm5lbHMgPSBbIC4uLnNhc3NDb2xvci5jaGFubmVscyBdIGFzIFsgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyIF1cblxuXHRcdGlmIChhbHBoYSkge1xuXHRcdFx0Y2hhbm5lbHMucHVzaChhbHBoYSlcblx0XHR9XG5cblx0XHRyZXR1cm4gY2hyb21hKC4uLmNoYW5uZWxzLCBzcGFjZSBhcyAncmdiJylcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0xpc3Q6IHtcblx0XHRjb25zdCBsaXN0VmFsdWUgPSBzYXNzVmFsdWUuYXNMaXN0XG5cdFx0Y29uc3QgbGVuZ3RoID0gbGlzdFZhbHVlLnNpemVcblx0XHRjb25zdCBhcnJheSA9IEFycmF5KGxlbmd0aCkuZmlsbCh1bmRlZmluZWQpIGFzIFNhc3NUeXBlW11cblxuXHRcdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcblx0XHRcdGFycmF5W2luZGV4XSA9IGxpc3RWYWx1ZS5nZXQoaW5kZXgpIGFzIFNhc3NUeXBlXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFycmF5Lm1hcCh2YWx1ZSA9PiBzYXNzVG9KYXZhU2NyaXB0VHlwZSh2YWx1ZSkpXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NNYXA6IHtcblx0XHRjb25zdCBtYXBWYWx1ZSA9IHNhc3NWYWx1ZS5jb250ZW50c1xuXG5cdFx0Y29uc3QgZW50cmllcyA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpIGFzIEl0ZXJhYmxlSXRlcmF0b3I8W1Nhc3NUeXBlLCBTYXNzVHlwZV0+KVxuXHRcdFx0Lm1hcCgoWyBrZXksIHZhbHVlIF0pID0+IFsgc2Fzc1RvSmF2YVNjcmlwdFR5cGUoa2V5KSwgc2Fzc1RvSmF2YVNjcmlwdFR5cGUodmFsdWUpIF0pXG5cblx0XHRyZXR1cm4gbmV3IE1hcChlbnRyaWVzIGFzIFtKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGVdW10pXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyYXdWYWx1ZTogSmF2YVNjcmlwdFR5cGUpOiBTYXNzVHlwZSB7XG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nOiB7XG5cdFx0Y29uc3QgYm9vbGVhblZhbHVlID0gcmF3VmFsdWVcblxuXHRcdHJldHVybiBib29sZWFuVmFsdWUgPyBTYXNzVFJVRSA6IFNhc3NGQUxTRVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdudW1iZXInOiB7XG5cdFx0Y29uc3QgbnVtYmVyVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKG51bWJlclZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgWyAndmFsdWUnLCAndW5pdCcgXS5ldmVyeShwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleSBpbiByYXdWYWx1ZSk6IHtcblx0XHRjb25zdCB7IHZhbHVlLCB1bml0IH0gPSByYXdWYWx1ZSBhcyBOdW1iZXJXaXRoVW5pdFxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKHZhbHVlLCB1bml0KVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnOiB7XG5cdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgWyAndmFsdWUnLCAncXVvdGVzJyBdLmV2ZXJ5KHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5IGluIHJhd1ZhbHVlKToge1xuXHRcdGNvbnN0IHsgdmFsdWU6IHN0cmluZ1ZhbHVlLCBxdW90ZXMgfSA9IHJhd1ZhbHVlIGFzIFN0cmluZ1dpdGhRdW90ZXNcblxuXHRcdHJldHVybiBuZXcgU2Fzc1N0cmluZyhzdHJpbmdWYWx1ZSwgeyBxdW90ZXMgfSlcblx0fVxuXG5cdGNhc2UgaXNPYmplY3QocmF3VmFsdWUpICYmICdfcmdiJyBpbiByYXdWYWx1ZToge1xuXHRcdGNvbnN0IFsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgXSA9IHJhd1ZhbHVlLnJnYmEoKSBhcyBudW1iZXJbXVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzQ29sb3IoeyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9KVxuXHR9XG5cblx0Y2FzZSBBcnJheS5pc0FycmF5KHJhd1ZhbHVlKToge1xuXHRcdHJldHVybiBuZXcgU2Fzc0xpc3QocmF3VmFsdWUubWFwKGphdmFTY3JpcHRUb1Nhc3NUeXBlKSlcblx0fVxuXG5cdGNhc2UgaXNNYXAocmF3VmFsdWUpOiB7XG5cdFx0Y29uc3QgbWFwVmFsdWUgPSByYXdWYWx1ZSBhcyBNYXA8SmF2YVNjcmlwdFR5cGUsIEphdmFTY3JpcHRUeXBlPlxuXG5cdFx0Y29uc3QgaXRlcmFibGUgPSBBcnJheS5mcm9tKG1hcFZhbHVlLmVudHJpZXMoKSlcblx0XHRcdC5tYXAoZW50cnkgPT4gKFxuXHRcdFx0XHRlbnRyeS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpIGFzIFsgU2Fzc1R5cGUsIFNhc3NUeXBlIF1cblx0XHRcdCkpXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NNYXAoSW1tdXRhYmxlLk9yZGVyZWRNYXAoaXRlcmFibGUpKVxuXHR9XG5cblx0ZGVmYXVsdDoge1xuXHRcdHJldHVybiBTYXNzTlVMTFxuXHR9XG5cdH1cbn1cbiIsImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSdcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB7IEN1c3RvbUZ1bmN0aW9uIH0gZnJvbSAnc2FzcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB0eXBlIHsgU2Fzc1R5cGUsIEphdmFTY3JpcHRUeXBlIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNhc3NUb0phdmFTY3JpcHRUeXBlLCBqYXZhU2NyaXB0VG9TYXNzVHlwZSB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXInXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgaW50ZXJmYWNlIEJyaWRnZWRGdW5jdGlvbiB7XG5cdGV4ZWN1dGUoKTogSmF2YVNjcmlwdFR5cGUgfCBQcm9taXNlPEphdmFTY3JpcHRUeXBlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdG9yIHtcblx0bmV3ICguLi5hcmdzOiBhbnlbXSk6IEJyaWRnZWRGdW5jdGlvblxufVxuXG4vLyBDb25zdGFudHMuXG5jb25zdCBLZXlPZlNpZ25hdHVyZSA9IFN5bWJvbCgnQGNpY2hvbC9zYXNzLWJyaWRnZTo6S2V5T2ZTaWduYXR1cmUnKVxuXG5leHBvcnQgZnVuY3Rpb24gc2Fzc0Z1bmN0aW9uKGRlZmluaXRpb246IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yIHtcblx0cmV0dXJuICg8VCBleHRlbmRzIENvbnN0cnVjdG9yPih0YXJnZXQ6IFQpID0+IHtcblx0XHRSZWZsZWN0LmRlZmluZU1ldGFkYXRhKEtleU9mU2lnbmF0dXJlLCBkZWZpbml0aW9uLCB0YXJnZXQpXG5cblx0XHRyZXR1cm4gdGFyZ2V0XG5cdH0pIGFzIENsYXNzRGVjb3JhdG9yXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGdW5jdGlvbnMoXG5cdC4uLm1vZHVsZUltcG9ydHM6IFByb21pc2U8eyBkZWZhdWx0OiBDb25zdHJ1Y3RvciB9PltdXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIEN1c3RvbUZ1bmN0aW9uPCdhc3luYyc+Pj4ge1xuXHRjb25zdCBtb2R1bGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0bW9kdWxlSW1wb3J0cy5tYXAobW9kdWxlID0+IChcblx0XHRcdFByb21pc2UucmVzb2x2ZShtb2R1bGUpXG5cdFx0XHRcdC50aGVuKCh7IGRlZmF1bHQ6IENvbnN0cnVjdG9yIH0pID0+IENvbnN0cnVjdG9yKVxuXHRcdCkpLFxuXHQpXG5cblx0Y29uc3QgZW50cmllcyA9IG1vZHVsZXMubWFwKG1vZHVsZSA9PiB7XG5cdFx0Y29uc3Qgc2lnbmF0dXJlID0gUmVmbGVjdC5nZXRNZXRhZGF0YShLZXlPZlNpZ25hdHVyZSwgbW9kdWxlKSBhcyBzdHJpbmdcblxuXHRcdGFzeW5jIGZ1bmN0aW9uIGN1c3RvbUZ1bmN0aW9uKHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPiB7XG5cdFx0XHRjb25zdCBhcmdzID0gcmF3QXJncy5tYXAoc2Fzc1RvSmF2YVNjcmlwdFR5cGUpXG5cdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBSZWZsZWN0LmNvbnN0cnVjdChtb2R1bGUsIGFyZ3MpLmV4ZWN1dGUoKVxuXG5cdFx0XHRyZXR1cm4gamF2YVNjcmlwdFRvU2Fzc1R5cGUocmVzdWx0KVxuXHRcdH1cblxuXHRcdHJldHVybiBbIHNpZ25hdHVyZSwgY3VzdG9tRnVuY3Rpb24gXSBhcyBjb25zdFxuXHR9KVxuXG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcylcbn1cbiJdLCJuYW1lcyI6WyJTYXNzVHlwZXMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dCIsIl9maWx0ZXJJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQyIiwiX2NvbnRleHQzIiwiX2NvbnRleHQ0IiwiX2NvbnRleHQ1IiwiX09iamVjdCRrZXlzIiwic2FzcyIsImNhbGwiLCJwcm9wZXJ0eUtleSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiIsIlZhbHVlIiwibmFtZSIsIlNhc3NUUlVFIiwic2Fzc1RydWUiLCJTYXNzRkFMU0UiLCJzYXNzRmFsc2UiLCJTYXNzTlVMTCIsInNhc3NOdWxsIiwiU2Fzc051bWJlciIsIlNhc3NTdHJpbmciLCJTYXNzQ29sb3IiLCJTYXNzTGlzdCIsIlNhc3NNYXAiLCJTYXNzQm9vbGVhbiIsIl9PYmplY3QkZ2V0UHJvdG90eXBlT2YiLCJpc09iamVjdCIsInZhbHVlIiwidHlwZSIsImlzTWFwIiwiX1N5bWJvbCR0b1N0cmluZ1RhZyIsInNhc3NUb0phdmFTY3JpcHRUeXBlIiwic2Fzc1ZhbHVlIiwidGV4dCIsIm51bWVyYXRvclVuaXRzIiwiZGVub21pbmF0b3JVbml0cyIsInVuaXQiLCJoYXNVbml0cyIsImpvaW4iLCJzaXplIiwic2Fzc0NvbG9yIiwidG9TcGFjZSIsImFscGhhIiwic3BhY2UiLCJjaGFubmVscyIsIl9wdXNoSW5zdGFuY2VQcm9wZXJ0eSIsImNocm9tYSIsImxpc3RWYWx1ZSIsImFzTGlzdCIsImxlbmd0aCIsImFycmF5IiwiX2ZpbGxJbnN0YW5jZVByb3BlcnR5IiwiQXJyYXkiLCJ1bmRlZmluZWQiLCJpbmRleCIsImdldCIsIm1hcFZhbHVlIiwiY29udGVudHMiLCJlbnRyaWVzIiwiX0FycmF5JGZyb20iLCJfZW50cmllc0luc3RhbmNlUHJvcGVydHkiLCJrZXkiLCJfTWFwIiwiamF2YVNjcmlwdFRvU2Fzc1R5cGUiLCJyYXdWYWx1ZSIsImJvb2xlYW5WYWx1ZSIsIm51bWJlclZhbHVlIiwiX2V2ZXJ5SW5zdGFuY2VQcm9wZXJ0eSIsInN0cmluZ1ZhbHVlIiwicXVvdGVzIiwicmVkIiwiZ3JlZW4iLCJibHVlIiwicmdiYSIsIl9BcnJheSRpc0FycmF5IiwiaXRlcmFibGUiLCJlbnRyeSIsIkltbXV0YWJsZSIsIk9yZGVyZWRNYXAiLCJLZXlPZlNpZ25hdHVyZSIsIl9TeW1ib2wiLCJzYXNzRnVuY3Rpb24iLCJkZWZpbml0aW9uIiwidGFyZ2V0IiwiX1JlZmxlY3QkZGVmaW5lTWV0YWRhdGEiLCJnZXRGdW5jdGlvbnMiLCJtb2R1bGVJbXBvcnRzIiwibW9kdWxlcyIsIl9Qcm9taXNlIiwiYWxsIiwibW9kdWxlIiwicmVzb2x2ZSIsInRoZW4iLCJkZWZhdWx0IiwiQ29uc3RydWN0b3IiLCJzaWduYXR1cmUiLCJfUmVmbGVjdCRnZXRNZXRhZGF0YSIsImN1c3RvbUZ1bmN0aW9uIiwicmF3QXJncyIsImFyZ3MiLCJyZXN1bHQiLCJfUmVmbGVjdCRjb25zdHJ1Y3QiLCJleGVjdXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLQTs7QUFnQkEsTUFBTUEsU0FBUyxHQUFHQyxtQkFBQSxDQUNqQkMsb0JBQUEsQ0FBQUMsUUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxTQUFBLEdBQUFELHVCQUFBLENBQUFFLFNBQUEsR0FBQUosb0JBQUEsQ0FBQUssU0FBQSxHQUFBSCx1QkFBQSxDQUFBSSxTQUFBLEdBQUFDLFlBQUEsQ0FBWUMsZUFBSSxDQUFDLENBQUEsQ0FBQUMsSUFBQSxDQUFBSCxTQUFBLEVBQ1JJLFdBQVcsSUFBSUMsMkJBQUEsQ0FBQUQsV0FBVyxDQUFBRCxDQUFBQSxJQUFBLENBQVhDLFdBQVcsRUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFBLENBQUFELElBQUEsQ0FBQUosU0FBQSxFQUNqREssV0FBVyxJQUFJRixlQUFJLENBQUNFLFdBQVcsQ0FBYyxDQUFDLENBQUEsQ0FBQUQsSUFBQSxDQUFBTCxTQUFBLEVBQzNDUSxXQUFXLElBQUksT0FBT0EsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFBLENBQUFILElBQUEsQ0FBQU4sU0FBQSxFQUNqRFMsV0FBVyxJQUFJQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsYUFBYSxDQUFDTixJQUFJLENBQUNPLFVBQUssQ0FBQ0YsU0FBUyxFQUFFRixXQUFXLENBQUNFLFNBQVMsQ0FBQyxDQUFDLENBQUFMLENBQUFBLElBQUEs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
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlcyI6WyIuLi9zb3VyY2VzL3R5cGVzLnRzIiwiLi4vc291cmNlcy90eXBlLWNvbnZlcnRlci9zYXNzLXRvLWphdmFzY3JpcHQudHMiLCIuLi9zb3VyY2VzL3R5cGUtY29udmVydGVyL2phdmFzY3JpcHQtdG8tc2Fzcy50cyIsIi4uL3NvdXJjZXMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tICdjaHJvbWEtanMnXG5pbXBvcnQgKiBhcyBzYXNzIGZyb20gJ3Nhc3MnXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJ3Nhc3MnXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVzID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IG51bGxcblxuZXhwb3J0IHR5cGUgTnVtYmVyV2l0aFVuaXQgPSB7IHZhbHVlOiBudW1iZXIsIHVuaXQ6IHN0cmluZyB9XG5cbmV4cG9ydCB0eXBlIFN0cmluZ1dpdGhRdW90ZXMgPSB7IHZhbHVlOiBzdHJpbmcsIHF1b3RlczogYm9vbGVhbiB9XG5cbmV4cG9ydCB0eXBlIEphdmFTY3JpcHRUeXBlPEJhc2UgPSBQcmltaXRpdmVzIHwgQ29sb3IgfCBOdW1iZXJXaXRoVW5pdCB8IFN0cmluZ1dpdGhRdW90ZXM+ID1cblx0fCBCYXNlXG5cdHwgSmF2YVNjcmlwdFR5cGU8QmFzZT5bXVxuXHR8IE1hcDxKYXZhU2NyaXB0VHlwZTxCYXNlPiwgSmF2YVNjcmlwdFR5cGU8QmFzZT4+XG5cbnR5cGUgRmlsdGVyU2Fzc1ByZWZpeDxUIGV4dGVuZHMgc3RyaW5nPiA9IFQgZXh0ZW5kcyBgU2FzcyR7aW5mZXIgUn1gID8gUiA6IG5ldmVyXG5cbnR5cGUgU2Fzc1R5cGVzID0gRXhjbHVkZTxgU2FzcyR7RmlsdGVyU2Fzc1ByZWZpeDxrZXlvZiB0eXBlb2Ygc2Fzcz59YCwgYFNhc3MkeydCb29sZWFuJyB8ICdDYWxjdWxhdGlvbid9YD5cblxuY29uc3QgU2Fzc1R5cGVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRPYmplY3Qua2V5cyhzYXNzKVxuXHRcdC5maWx0ZXIocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkuc3RhcnRzV2l0aCgnU2FzcycpKVxuXHRcdC5tYXAocHJvcGVydHlLZXkgPT4gc2Fzc1twcm9wZXJ0eUtleSBhcyBTYXNzVHlwZXNdKVxuXHRcdC5maWx0ZXIoY29uc3RydWN0b3IgPT4gdHlwZW9mIGNvbnN0cnVjdG9yID09PSAnZnVuY3Rpb24nKVxuXHRcdC5maWx0ZXIoY29uc3RydWN0b3IgPT4gT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoVmFsdWUucHJvdG90eXBlLCBjb25zdHJ1Y3Rvci5wcm90b3R5cGUpKVxuXHRcdC5tYXAoY29uc3RydWN0b3IgPT4gWyBjb25zdHJ1Y3Rvci5uYW1lLCBjb25zdHJ1Y3RvciBdIGFzIFtTYXNzVHlwZXMsICh0eXBlb2Ygc2FzcylbU2Fzc1R5cGVzXV0pLFxuKSBhcyB7IFtQIGluIFNhc3NUeXBlc106ICh0eXBlb2Ygc2FzcylbUF0gfVxuXG5leHBvcnQgY29uc3QgU2Fzc1RSVUUgPSBzYXNzLnNhc3NUcnVlXG5leHBvcnQgdHlwZSBTYXNzVFJVRSA9IHR5cGVvZiBTYXNzVFJVRVxuXG5leHBvcnQgY29uc3QgU2Fzc0ZBTFNFID0gc2Fzcy5zYXNzRmFsc2VcbmV4cG9ydCB0eXBlIFNhc3NGQUxTRSA9IHR5cGVvZiBTYXNzRkFMU0VcblxuZXhwb3J0IGNvbnN0IFNhc3NOVUxMID0gc2Fzcy5zYXNzTnVsbFxuZXhwb3J0IHR5cGUgU2Fzc05VTEwgPSB0eXBlb2YgU2Fzc05VTExcblxuZXhwb3J0IGNvbnN0IHsgU2Fzc051bWJlciB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTnVtYmVyID0gSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzTnVtYmVyPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzU3RyaW5nIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NTdHJpbmcgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NTdHJpbmc+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NDb2xvciB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzQ29sb3IgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NDb2xvcj5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc0xpc3QgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc0xpc3QgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NMaXN0PlxuXG5leHBvcnQgY29uc3QgeyBTYXNzTWFwIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NNYXAgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NNYXA+XG5cbmV4cG9ydCBjb25zdCBTYXNzQm9vbGVhbiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihTYXNzVFJVRSkuY29uc3RydWN0b3IgYXMgdHlwZW9mIHNhc3MuU2Fzc0Jvb2xlYW5cbmV4cG9ydCB0eXBlIFNhc3NCb29sZWFuID0gc2Fzcy5TYXNzQm9vbGVhblxuXG5leHBvcnQgdHlwZSBTYXNzVHlwZSA9XG5cdHwgSW5zdGFuY2VUeXBlPHR5cGVvZiBTYXNzVHlwZXMgZXh0ZW5kcyBSZWNvcmQ8YW55LCBpbmZlciBSPiA/IFIgOiBuZXZlcj5cblx0fCBTYXNzQm9vbGVhblxuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBjaHJvbWEgZnJvbSAnY2hyb21hLWpzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHtcblx0dHlwZSBKYXZhU2NyaXB0VHlwZSxcblx0dHlwZSBTYXNzVHlwZSxcblx0U2Fzc0Jvb2xlYW4sXG5cdFNhc3NOdW1iZXIsXG5cdFNhc3NTdHJpbmcsXG5cdFNhc3NDb2xvcixcblx0U2Fzc0xpc3QsXG5cdFNhc3NNYXAsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzYXNzVG9KYXZhU2NyaXB0VHlwZShzYXNzVmFsdWU6IFNhc3NUeXBlKTogSmF2YVNjcmlwdFR5cGUge1xuXHRzd2l0Y2ggKHRydWUpIHtcblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzQm9vbGVhbjoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudmFsdWVcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc1N0cmluZzoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudGV4dFxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTnVtYmVyOiB7XG5cdFx0Y29uc3QgeyB2YWx1ZSwgbnVtZXJhdG9yVW5pdHMsIGRlbm9taW5hdG9yVW5pdHMgfSA9IHNhc3NWYWx1ZVxuXG5cdFx0Y29uc3QgdW5pdCA9IHNhc3NWYWx1ZS5oYXNVbml0c1xuXHRcdFx0PyBudW1lcmF0b3JVbml0cy5qb2luKCcqJykgKyAoZGVub21pbmF0b3JVbml0cy5zaXplID4gMCA/IGAvJHtkZW5vbWluYXRvclVuaXRzLmpvaW4oJyonKX1gIDogJycpXG5cdFx0XHQ6ICcnXG5cblx0XHRyZXR1cm4gdW5pdCA/IHsgdmFsdWUsIHVuaXQgfSA6IHZhbHVlXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NDb2xvcjoge1xuXHRcdGNvbnN0IHNhc3NDb2xvciA9IHNhc3NWYWx1ZS50b1NwYWNlKCdyZ2InKVxuXHRcdGNvbnN0IHsgYWxwaGEsIHNwYWNlIH0gPSBzYXNzQ29sb3Jcblx0XHRjb25zdCBjaGFubmVscyA9IFsgLi4uc2Fzc0NvbG9yLmNoYW5uZWxzIF0gYXMgWyBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIgXVxuXG5cdFx0aWYgKGFscGhhKSB7XG5cdFx0XHRjaGFubmVscy5wdXNoKGFscGhhKVxuXHRcdH1cblxuXHRcdHJldHVybiBjaHJvbWEoLi4uY2hhbm5lbHMsIHNwYWNlIGFzICdyZ2InKVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTGlzdDoge1xuXHRcdGNvbnN0IGxpc3RWYWx1ZSA9IHNhc3NWYWx1ZS5hc0xpc3Rcblx0XHRjb25zdCBsZW5ndGggPSBsaXN0VmFsdWUuc2l6ZVxuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkobGVuZ3RoKS5maWxsKHVuZGVmaW5lZCkgYXMgU2Fzc1R5cGVbXVxuXG5cdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuXHRcdFx0YXJyYXlbaW5kZXhdID0gbGlzdFZhbHVlLmdldChpbmRleCkgYXMgU2Fzc1R5cGVcblx0XHR9XG5cblx0XHRyZXR1cm4gYXJyYXkubWFwKHZhbHVlID0+IHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSlcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc01hcDoge1xuXHRcdGNvbnN0IG1hcFZhbHVlID0gc2Fzc1ZhbHVlLmNvbnRlbnRzXG5cblx0XHRjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbShtYXBWYWx1ZS5lbnRyaWVzKCkgYXMgSXRlcmFibGVJdGVyYXRvcjxbU2Fzc1R5cGUsIFNhc3NUeXBlXT4pXG5cdFx0XHQubWFwKChbIGtleSwgdmFsdWUgXSkgPT4gWyBzYXNzVG9KYXZhU2NyaXB0VHlwZShrZXkpLCBzYXNzVG9KYXZhU2NyaXB0VHlwZSh2YWx1ZSkgXSlcblxuXHRcdHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0phdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZV1bXSlcblx0fVxuXG5cdGRlZmF1bHQ6IHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdH1cbn1cbiIsIi8vIE5vZGUuanMgYnVpbHQtaW4gQVBJcy5cbmltcG9ydCB1dGlsIGZyb20gJ3V0aWwnXG5cbi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgSW1tdXRhYmxlIGZyb20gJ2ltbXV0YWJsZSdcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB7XG5cdHR5cGUgTnVtYmVyV2l0aFVuaXQsXG5cdHR5cGUgU3RyaW5nV2l0aFF1b3Rlcyxcblx0dHlwZSBKYXZhU2NyaXB0VHlwZSxcblx0dHlwZSBTYXNzVHlwZSxcblx0U2Fzc051bWJlcixcblx0U2Fzc1N0cmluZyxcblx0U2Fzc0NvbG9yLFxuXHRTYXNzTGlzdCxcblx0U2Fzc01hcCxcblx0U2Fzc1RSVUUsXG5cdFNhc3NGQUxTRSxcblx0U2Fzc05VTEwsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyBIZWxwZXIgZnVuY3Rpb25zLlxuZnVuY3Rpb24gaXNPYmplY3QodmFsdWU/OiB1bmtub3duKTogdmFsdWUgaXMgb2JqZWN0IHtcblx0Y29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZVxuXG5cdHJldHVybiAhIXZhbHVlICYmICh0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlID09PSAnZnVuY3Rpb24nKVxufVxuXG5mdW5jdGlvbiBpc01hcCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuXHRpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApIHJldHVybiB0cnVlXG5cdGlmICh1dGlsLnR5cGVzLmlzTWFwKHZhbHVlKSkgcmV0dXJuIHRydWVcblxuXHRyZXR1cm4gaXNPYmplY3QodmFsdWUpICYmIFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnTWFwJ1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyYXdWYWx1ZTogSmF2YVNjcmlwdFR5cGUpOiBTYXNzVHlwZSB7XG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ2Jvb2xlYW4nOiB7XG5cdFx0Y29uc3QgYm9vbGVhblZhbHVlID0gcmF3VmFsdWVcblxuXHRcdHJldHVybiBib29sZWFuVmFsdWUgPyBTYXNzVFJVRSA6IFNhc3NGQUxTRVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdudW1iZXInOiB7XG5cdFx0Y29uc3QgbnVtYmVyVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKG51bWJlclZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgWyAndmFsdWUnLCAndW5pdCcgXS5ldmVyeShwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleSBpbiByYXdWYWx1ZSk6IHtcblx0XHRjb25zdCB7IHZhbHVlLCB1bml0IH0gPSByYXdWYWx1ZSBhcyBOdW1iZXJXaXRoVW5pdFxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzTnVtYmVyKHZhbHVlLCB1bml0KVxuXHR9XG5cblx0Y2FzZSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnOiB7XG5cdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlKVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgWyAndmFsdWUnLCAncXVvdGVzJyBdLmV2ZXJ5KHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5IGluIHJhd1ZhbHVlKToge1xuXHRcdGNvbnN0IHsgdmFsdWU6IHN0cmluZ1ZhbHVlLCBxdW90ZXMgfSA9IHJhd1ZhbHVlIGFzIFN0cmluZ1dpdGhRdW90ZXNcblxuXHRcdHJldHVybiBuZXcgU2Fzc1N0cmluZyhzdHJpbmdWYWx1ZSwgeyBxdW90ZXMgfSlcblx0fVxuXG5cdGNhc2UgaXNPYmplY3QocmF3VmFsdWUpICYmICdfcmdiJyBpbiByYXdWYWx1ZToge1xuXHRcdGNvbnN0IFsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgXSA9IHJhd1ZhbHVlLnJnYmEoKSBhcyBudW1iZXJbXVxuXG5cdFx0cmV0dXJuIG5ldyBTYXNzQ29sb3IoeyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9KVxuXHR9XG5cblx0Y2FzZSBBcnJheS5pc0FycmF5KHJhd1ZhbHVlKToge1xuXHRcdHJldHVybiBuZXcgU2Fzc0xpc3QocmF3VmFsdWUubWFwKGphdmFTY3JpcHRUb1Nhc3NUeXBlKSlcblx0fVxuXG5cdGNhc2UgaXNNYXAocmF3VmFsdWUpOiB7XG5cdFx0Y29uc3QgbWFwVmFsdWUgPSByYXdWYWx1ZSBhcyBNYXA8SmF2YVNjcmlwdFR5cGUsIEphdmFTY3JpcHRUeXBlPlxuXG5cdFx0Y29uc3QgaXRlcmFibGUgPSBBcnJheS5mcm9tKG1hcFZhbHVlLmVudHJpZXMoKSlcblx0XHRcdC5tYXAoZW50cnkgPT4gKFxuXHRcdFx0XHRlbnRyeS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpIGFzIFsgU2Fzc1R5cGUsIFNhc3NUeXBlIF1cblx0XHRcdCkpXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NNYXAoSW1tdXRhYmxlLk9yZGVyZWRNYXAoaXRlcmFibGUpKVxuXHR9XG5cblx0ZGVmYXVsdDoge1xuXHRcdHJldHVybiBTYXNzTlVMTFxuXHR9XG5cdH1cbn1cbiIsIi8vIFRoaXJkLXBhcnR5IG1vZHVsZXMuXG5pbXBvcnQgeyBDdXN0b21GdW5jdGlvbiB9IGZyb20gJ3Nhc3MnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQgdHlwZSB7IFNhc3NUeXBlLCBKYXZhU2NyaXB0VHlwZSB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBzYXNzVG9KYXZhU2NyaXB0VHlwZSwgamF2YVNjcmlwdFRvU2Fzc1R5cGUgfSBmcm9tICcuL3R5cGUtY29udmVydGVyJ1xuXG4vLyBUeXBlIGRlZmluaXRpb25zLlxuaW50ZXJmYWNlIENvbnN0cnVjdG9yIHtcblx0bmV3ICguLi5hcmdzOiBhbnlbXSk6IG9iamVjdFxufVxuXG5pbnRlcmZhY2UgQnJpZGdlZEZ1bmN0aW9uIHtcblx0KHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPlxufVxuXG50eXBlIEJyaWRnZWRGdW5jdGlvbk1hcCA9IE1hcDxzdHJpbmcsIEJyaWRnZWRGdW5jdGlvbj5cblxuZXhwb3J0IGZ1bmN0aW9uIHNhc3NGdW5jdGlvbihzaWduYXR1cmU6IHN0cmluZykge1xuXHRyZXR1cm4gZnVuY3Rpb24gZGVjb3JhdGU8VGhpcywgQXJncyBleHRlbmRzIGFueVtdLCBSZXR1cm4gZXh0ZW5kcyBKYXZhU2NyaXB0VHlwZT4oXG5cdFx0dGFyZ2V0OiAodGhpczogVGhpcywgLi4uYXJnczogQXJncykgPT4gUmV0dXJuIHwgUHJvbWlzZTxSZXR1cm4+LFxuXHRcdGNvbnRleHQ6IENsYXNzTWV0aG9kRGVjb3JhdG9yQ29udGV4dDxUaGlzLCAodGhpczogVGhpcywgLi4uYXJnczogQXJncykgPT4gUmV0dXJuIHwgUHJvbWlzZTxSZXR1cm4+Pixcblx0KTogdm9pZCB7XG5cdFx0aWYgKGNvbnRleHQucHJpdmF0ZSkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignTm90IHN1cHBvcnRlZCBvbiBwcml2YXRlIG1ldGhvZHMuJylcblx0XHR9XG5cblx0XHRpZiAoIWNvbnRleHQubWV0YWRhdGEuZnVuY3Rpb25NYXApIHtcblx0XHRcdGNvbnRleHQubWV0YWRhdGEuZnVuY3Rpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgQnJpZGdlZEZ1bmN0aW9uPigpXG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBmdW5jdGlvbk1hcCB9ID0gY29udGV4dC5tZXRhZGF0YSBhcyB7IGZ1bmN0aW9uTWFwOiBCcmlkZ2VkRnVuY3Rpb25NYXAgfVxuXG5cdFx0Y29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiBpbml0aWFsaXplKHRoaXM6IFRoaXMpIHtcblx0XHRcdGNvbnN0IGJyaWRnZWRGdW5jdGlvbjogQnJpZGdlZEZ1bmN0aW9uID0gYXN5bmMgKHJhd0FyZ3M6IFNhc3NUeXBlW10pOiBQcm9taXNlPFNhc3NUeXBlPiA9PiB7XG5cdFx0XHRcdGNvbnN0IGFyZ3MgPSByYXdBcmdzLm1hcChzYXNzVG9KYXZhU2NyaXB0VHlwZSlcblx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFJlZmxlY3QuYXBwbHkodGFyZ2V0LCB0aGlzLCBhcmdzKSkgYXMgSmF2YVNjcmlwdFR5cGVcblxuXHRcdFx0XHRyZXR1cm4gamF2YVNjcmlwdFRvU2Fzc1R5cGUocmVzdWx0KVxuXHRcdFx0fVxuXG5cdFx0XHRmdW5jdGlvbk1hcC5zZXQoc2lnbmF0dXJlLCBicmlkZ2VkRnVuY3Rpb24pXG5cdFx0fSlcblx0fVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RnVuY3Rpb25zKFxuXHQuLi5tb2R1bGVJbXBvcnRzOiBQcm9taXNlPHsgZGVmYXVsdDogQ29uc3RydWN0b3IgfT5bXVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBDdXN0b21GdW5jdGlvbjwnYXN5bmMnPj4+IHtcblx0Y29uc3QgbW9kdWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdG1vZHVsZUltcG9ydHMubWFwKG1vZHVsZSA9PiAoXG5cdFx0XHRtb2R1bGUudGhlbigoeyBkZWZhdWx0OiBNb2R1bGUgfSkgPT4gbmV3IE1vZHVsZSgpKVxuXHRcdCkpLFxuXHQpXG5cblx0Y29uc3QgZW50cmllcyA9IG1vZHVsZXNcblx0XHQubWFwKG1vZHVsZSA9PiAoXG5cdFx0XHRSZWZsZWN0LmdldFByb3RvdHlwZU9mKG1vZHVsZSk/LmNvbnN0cnVjdG9yPy5bU3ltYm9sLm1ldGFkYXRhXT8uZnVuY3Rpb25NYXAgYXMgQnJpZGdlZEZ1bmN0aW9uTWFwXG5cdFx0KSlcblx0XHQuZmlsdGVyKGZ1bmN0aW9uTWFwID0+ICEhZnVuY3Rpb25NYXApXG5cdFx0LmZsYXRNYXAoZnVuY3Rpb25NYXAgPT4gQXJyYXkuZnJvbShmdW5jdGlvbk1hcC5lbnRyaWVzKCkpKVxuXG5cdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZW50cmllcylcbn1cbiJdLCJuYW1lcyI6WyJTYXNzVHlwZXMiLCJfT2JqZWN0JGZyb21FbnRyaWVzIiwiX21hcEluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dCIsIl9maWx0ZXJJbnN0YW5jZVByb3BlcnR5IiwiX2NvbnRleHQyIiwiX2NvbnRleHQzIiwiX2NvbnRleHQ0IiwiX2NvbnRleHQ1IiwiX09iamVjdCRrZXlzIiwic2FzcyIsImNhbGwiLCJwcm9wZXJ0eUtleSIsIl9zdGFydHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsImNvbnN0cnVjdG9yIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiIsIlZhbHVlIiwibmFtZSIsIlNhc3NUUlVFIiwic2Fzc1RydWUiLCJTYXNzRkFMU0UiLCJzYXNzRmFsc2UiLCJTYXNzTlVMTCIsInNhc3NOdWxsIiwiU2Fzc051bWJlciIsIlNhc3NTdHJpbmciLCJTYXNzQ29sb3IiLCJTYXNzTGlzdCIsIlNhc3NNYXAiLCJTYXNzQm9vbGVhbiIsIl9PYmplY3QkZ2V0UHJvdG90eXBlT2YiLCJzYXNzVG9KYXZhU2NyaXB0VHlwZSIsInNhc3NWYWx1ZSIsInZhbHVlIiwidGV4dCIsIm51bWVyYXRvclVuaXRzIiwiZGVub21pbmF0b3JVbml0cyIsInVuaXQiLCJoYXNVbml0cyIsImpvaW4iLCJzaXplIiwic2Fzc0NvbG9yIiwidG9TcGFjZSIsImFscGhhIiwic3BhY2UiLCJjaGFubmVscyIsIl9wdXNoSW5zdGFuY2VQcm9wZXJ0eSIsImNocm9tYSIsImxpc3RWYWx1ZSIsImFzTGlzdCIsImxlbmd0aCIsImFycmF5IiwiX2ZpbGxJbnN0YW5jZVByb3BlcnR5IiwiQXJyYXkiLCJ1bmRlZmluZWQiLCJpbmRleCIsImdldCIsIm1hcFZhbHVlIiwiY29udGVudHMiLCJlbnRyaWVzIiwiX0FycmF5JGZyb20iLCJfZW50cmllc0luc3RhbmNlUHJvcGVydHkiLCJrZXkiLCJfTWFwIiwiaXNPYmplY3QiLCJ0eXBlIiwiaXNNYXAiLCJ1dGlsIiwidHlwZXMiLCJfU3ltYm9sJHRvU3RyaW5nVGFnIiwiamF2YVNjcmlwdFRvU2Fzc1R5cGUiLCJyYXdWYWx1ZSIsImJvb2xlYW5WYWx1ZSIsIm51bWJlclZhbHVlIiwiX2V2ZXJ5SW5zdGFuY2VQcm9wZXJ0eSIsInN0cmluZ1ZhbHVlIiwicXVvdGVzIiwicmVkIiwiZ3JlZW4iLCJibHVlIiwicmdiYSIsIl9BcnJheSRpc0FycmF5IiwiaXRlcmFibGUiLCJlbnRyeSIsIkltbXV0YWJsZSIsIk9yZGVyZWRNYXAiLCJzYXNzRnVuY3Rpb24iLCJzaWduYXR1cmUiLCJkZWNvcmF0ZSIsInRhcmdldCIsImNvbnRleHQiLCJwcml2YXRlIiwiVHlwZUVycm9yIiwibWV0YWRhdGEiLCJmdW5jdGlvbk1hcCIsImFkZEluaXRpYWxpemVyIiwiaW5pdGlhbGl6ZSIsImJyaWRnZWRGdW5jdGlvbiIsInJhd0FyZ3MiLCJhcmdzIiwicmVzdWx0IiwiX1Byb21pc2UiLCJyZXNvbHZlIiwiX1JlZmxlY3QkYXBwbHkiLCJzZXQiLCJnZXRGdW5jdGlvbnMiLCJtb2R1bGVJbXBvcnRzIiwibW9kdWxlcyIsImFsbCIsIm1vZHVsZSIsInRoZW4iLCJkZWZhdWx0IiwiTW9kdWxlIiwiX2ZsYXRNYXBJbnN0YW5jZVByb3BlcnR5IiwiX1JlZmxlY3QkZ2V0UHJvdG90eXBlT2YiLCJfU3ltYm9sJG1ldGFkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWdCQSxNQUFNQSxTQUFTLEdBQUdDLG1CQUFBLENBQ2pCQyxvQkFBQSxDQUFBQyxRQUFBLEdBQUFDLHVCQUFBLENBQUFDLFNBQUEsR0FBQUQsdUJBQUEsQ0FBQUUsU0FBQSxHQUFBSixvQkFBQSxDQUFBSyxTQUFBLEdBQUFILHVCQUFBLENBQUFJLFNBQUEsR0FBQUMsWUFBQSxDQUFZQyxlQUFJLENBQUMsQ0FBQSxDQUFBQyxJQUFBLENBQUFILFNBQUEsRUFDUkksV0FBVyxJQUFJQywyQkFBQSxDQUFBRCxXQUFXLENBQUFELENBQUFBLElBQUEsQ0FBWEMsV0FBVyxFQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQUQsSUFBQSxDQUFBSixTQUFBLEVBQ2pESyxXQUFXLElBQUlGLGVBQUksQ0FBQ0UsV0FBVyxDQUFjLENBQUMsQ0FBQSxDQUFBRCxJQUFBLENBQUFMLFNBQUEsRUFDM0NRLFdBQVcsSUFBSSxPQUFPQSxXQUFXLEtBQUssVUFBVSxDQUFD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
package/dists/index.d.cts CHANGED
@@ -1,12 +1,8 @@
1
1
  import type { Color } from 'chroma-js';
2
2
  import { CustomFunction } from 'sass';
3
3
 
4
- export declare interface BridgedFunction {
5
- execute(): JavaScriptType | Promise<JavaScriptType>;
6
- }
7
-
8
- export declare interface Constructor {
9
- new (...args: any[]): BridgedFunction;
4
+ declare interface Constructor {
5
+ new (...args: any[]): object;
10
6
  }
11
7
 
12
8
  export declare function getFunctions(...moduleImports: Promise<{
@@ -22,7 +18,7 @@ declare type NumberWithUnit = {
22
18
 
23
19
  declare type Primitives = boolean | number | string | null;
24
20
 
25
- export declare function sassFunction(definition: string): ClassDecorator;
21
+ export declare function sassFunction(signature: string): <This, Args extends any[], Return extends JavaScriptType>(target: (this: This, ...args: Args) => Return | Promise<Return>, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Return | Promise<Return>>) => void;
26
22
 
27
23
  declare type StringWithQuotes = {
28
24
  value: string;
package/dists/index.d.ts CHANGED
@@ -1,12 +1,8 @@
1
1
  import type { Color } from 'chroma-js';
2
2
  import { CustomFunction } from 'sass';
3
3
 
4
- export declare interface BridgedFunction {
5
- execute(): JavaScriptType | Promise<JavaScriptType>;
6
- }
7
-
8
- export declare interface Constructor {
9
- new (...args: any[]): BridgedFunction;
4
+ declare interface Constructor {
5
+ new (...args: any[]): object;
10
6
  }
11
7
 
12
8
  export declare function getFunctions(...moduleImports: Promise<{
@@ -22,7 +18,7 @@ declare type NumberWithUnit = {
22
18
 
23
19
  declare type Primitives = boolean | number | string | null;
24
20
 
25
- export declare function sassFunction(definition: string): ClassDecorator;
21
+ export declare function sassFunction(signature: string): <This, Args extends any[], Return extends JavaScriptType>(target: (this: This, ...args: Args) => Return | Promise<Return>, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Return | Promise<Return>>) => void;
26
22
 
27
23
  declare type StringWithQuotes = {
28
24
  value: string;
package/dists/index.js CHANGED
@@ -1,27 +1,27 @@
1
- import _Symbol from 'core-js-pure/features/symbol/index.js';
2
- import _Reflect$defineMetadata from 'core-js-pure/features/reflect/define-metadata.js';
3
- import _Promise from 'core-js-pure/features/promise/index.js';
1
+ import _Map from 'core-js-pure/features/map/index.js';
4
2
  import _mapInstanceProperty from 'core-js-pure/features/instance/map.js';
5
- import _Reflect$getMetadata from 'core-js-pure/features/reflect/get-metadata.js';
6
- import _Reflect$construct from 'core-js-pure/features/reflect/construct.js';
3
+ import _Promise from 'core-js-pure/features/promise/index.js';
4
+ import _Reflect$apply from 'core-js-pure/features/reflect/apply.js';
5
+ import _flatMapInstanceProperty from 'core-js-pure/features/instance/flat-map.js';
6
+ import _filterInstanceProperty from 'core-js-pure/features/instance/filter.js';
7
+ import _Reflect$getPrototypeOf from 'core-js-pure/features/reflect/get-prototype-of.js';
8
+ import _Symbol$metadata from 'core-js-pure/features/symbol/metadata.js';
9
+ import _Array$from from 'core-js-pure/features/array/from.js';
10
+ import _entriesInstanceProperty from 'core-js-pure/features/instance/entries.js';
7
11
  import _Object$fromEntries from 'core-js-pure/features/object/from-entries.js';
8
- import 'reflect-metadata';
9
- import _Symbol$toStringTag from 'core-js-pure/features/symbol/to-string-tag.js';
10
12
  import _pushInstanceProperty from 'core-js-pure/features/instance/push.js';
11
13
  import _fillInstanceProperty from 'core-js-pure/features/instance/fill.js';
12
- import _Array$from from 'core-js-pure/features/array/from.js';
13
- import _entriesInstanceProperty from 'core-js-pure/features/instance/entries.js';
14
- import _Map from 'core-js-pure/features/map/index.js';
15
- import _everyInstanceProperty from 'core-js-pure/features/instance/every.js';
16
- import _Array$isArray from 'core-js-pure/features/array/is-array.js';
17
14
  import chroma from 'chroma-js';
18
- import * as Immutable from 'immutable';
19
- import _filterInstanceProperty from 'core-js-pure/features/instance/filter.js';
20
15
  import _Object$keys from 'core-js-pure/features/object/keys.js';
21
16
  import _startsWithInstanceProperty from 'core-js-pure/features/instance/starts-with.js';
22
17
  import _Object$getPrototypeOf from 'core-js-pure/features/object/get-prototype-of.js';
23
18
  import * as sass from 'sass';
24
19
  import { Value } from 'sass';
20
+ import _Symbol$toStringTag from 'core-js-pure/features/symbol/to-string-tag.js';
21
+ import _everyInstanceProperty from 'core-js-pure/features/instance/every.js';
22
+ import _Array$isArray from 'core-js-pure/features/array/is-array.js';
23
+ import util from 'util';
24
+ import Immutable from 'immutable';
25
25
 
26
26
  var _context, _context2, _context3, _context4, _context5;
27
27
 
@@ -48,14 +48,6 @@ const {
48
48
  } = SassTypes;
49
49
  const SassBoolean = _Object$getPrototypeOf(SassTRUE).constructor;
50
50
 
51
- // Helper functions.
52
- function isObject(value) {
53
- const type = typeof value;
54
- return !!value && (type === 'object' || type === 'function');
55
- }
56
- function isMap(value) {
57
- return isObject(value) && _Symbol$toStringTag in value && value[_Symbol$toStringTag] === 'Map';
58
- }
59
51
  function sassToJavaScriptType(sassValue) {
60
52
  switch (true) {
61
53
  case sassValue instanceof SassBoolean:
@@ -116,8 +108,19 @@ function sassToJavaScriptType(sassValue) {
116
108
  }
117
109
  }
118
110
  }
111
+
112
+ // Helper functions.
113
+ function isObject(value) {
114
+ const type = typeof value;
115
+ return !!value && (type === 'object' || type === 'function');
116
+ }
117
+ function isMap(value) {
118
+ if (value instanceof _Map) return true;
119
+ if (util.types.isMap(value)) return true;
120
+ return isObject(value) && _Symbol$toStringTag in value && value[_Symbol$toStringTag] === 'Map';
121
+ }
119
122
  function javaScriptToSassType(rawValue) {
120
- var _context3, _context4;
123
+ var _context, _context2;
121
124
  switch (true) {
122
125
  case typeof rawValue === 'boolean':
123
126
  {
@@ -129,7 +132,7 @@ function javaScriptToSassType(rawValue) {
129
132
  const numberValue = rawValue;
130
133
  return new SassNumber(numberValue);
131
134
  }
132
- case isObject(rawValue) && _everyInstanceProperty(_context3 = ['value', 'unit']).call(_context3, propertyKey => propertyKey in rawValue):
135
+ case isObject(rawValue) && _everyInstanceProperty(_context = ['value', 'unit']).call(_context, propertyKey => propertyKey in rawValue):
133
136
  {
134
137
  const {
135
138
  value,
@@ -142,7 +145,7 @@ function javaScriptToSassType(rawValue) {
142
145
  const stringValue = rawValue;
143
146
  return new SassString(stringValue);
144
147
  }
145
- case isObject(rawValue) && _everyInstanceProperty(_context4 = ['value', 'quotes']).call(_context4, propertyKey => propertyKey in rawValue):
148
+ case isObject(rawValue) && _everyInstanceProperty(_context2 = ['value', 'quotes']).call(_context2, propertyKey => propertyKey in rawValue):
146
149
  {
147
150
  const {
148
151
  value: stringValue,
@@ -168,9 +171,9 @@ function javaScriptToSassType(rawValue) {
168
171
  }
169
172
  case isMap(rawValue):
170
173
  {
171
- var _context5;
174
+ var _context3;
172
175
  const mapValue = rawValue;
173
- const iterable = _mapInstanceProperty(_context5 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context5, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
176
+ const iterable = _mapInstanceProperty(_context3 = _Array$from(_entriesInstanceProperty(mapValue).call(mapValue))).call(_context3, entry => _mapInstanceProperty(entry).call(entry, javaScriptToSassType));
174
177
  return new SassMap(Immutable.OrderedMap(iterable));
175
178
  }
176
179
  default:
@@ -182,29 +185,35 @@ function javaScriptToSassType(rawValue) {
182
185
 
183
186
  // Type definitions.
184
187
 
185
- // Constants.
186
- const KeyOfSignature = _Symbol('@cichol/sass-bridge::KeyOfSignature');
187
- function sassFunction(definition) {
188
- return target => {
189
- _Reflect$defineMetadata(KeyOfSignature, definition, target);
190
- return target;
188
+ function sassFunction(signature) {
189
+ return function decorate(target, context) {
190
+ if (context.private) {
191
+ throw new TypeError('Not supported on private methods.');
192
+ }
193
+ if (!context.metadata.functionMap) {
194
+ context.metadata.functionMap = new _Map();
195
+ }
196
+ const {
197
+ functionMap
198
+ } = context.metadata;
199
+ context.addInitializer(function initialize() {
200
+ const bridgedFunction = async rawArgs => {
201
+ const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
202
+ const result = await _Promise.resolve(_Reflect$apply(target, this, args));
203
+ return javaScriptToSassType(result);
204
+ };
205
+ functionMap.set(signature, bridgedFunction);
206
+ });
191
207
  };
192
208
  }
193
209
  async function getFunctions(...moduleImports) {
194
- const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => _Promise.resolve(module).then(({
195
- default: Constructor
196
- }) => Constructor)));
197
- const entries = _mapInstanceProperty(modules).call(modules, module => {
198
- const signature = _Reflect$getMetadata(KeyOfSignature, module);
199
- async function customFunction(rawArgs) {
200
- const args = _mapInstanceProperty(rawArgs).call(rawArgs, sassToJavaScriptType);
201
- const result = await _Reflect$construct(module, args).execute();
202
- return javaScriptToSassType(result);
203
- }
204
- return [signature, customFunction];
205
- });
210
+ var _context, _context2;
211
+ const modules = await _Promise.all(_mapInstanceProperty(moduleImports).call(moduleImports, module => module.then(({
212
+ default: Module
213
+ }) => new Module())));
214
+ const entries = _flatMapInstanceProperty(_context = _filterInstanceProperty(_context2 = _mapInstanceProperty(modules).call(modules, module => (_Reflect$getPrototypeOf(module)?.constructor)[_Symbol$metadata]?.functionMap)).call(_context2, functionMap => !!functionMap)).call(_context, functionMap => _Array$from(_entriesInstanceProperty(functionMap).call(functionMap)));
206
215
  return _Object$fromEntries(entries);
207
216
  }
208
217
 
209
218
  export { getFunctions, sassFunction };
210
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvdHlwZXMudHMiLCIuLi9zb3VyY2VzL3R5cGUtY29udmVydGVyLnRzIiwiLi4vc291cmNlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ2Nocm9tYS1qcydcbmltcG9ydCAqIGFzIHNhc3MgZnJvbSAnc2FzcydcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnc2FzcydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZXMgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBOdW1iZXJXaXRoVW5pdCA9IHsgdmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nIH1cblxuZXhwb3J0IHR5cGUgU3RyaW5nV2l0aFF1b3RlcyA9IHsgdmFsdWU6IHN0cmluZywgcXVvdGVzOiBib29sZWFuIH1cblxuZXhwb3J0IHR5cGUgSmF2YVNjcmlwdFR5cGU8QmFzZSA9IFByaW1pdGl2ZXMgfCBDb2xvciB8IE51bWJlcldpdGhVbml0IHwgU3RyaW5nV2l0aFF1b3Rlcz4gPVxuXHR8IEJhc2Vcblx0fCBKYXZhU2NyaXB0VHlwZTxCYXNlPltdXG5cdHwgTWFwPEphdmFTY3JpcHRUeXBlPEJhc2U+LCBKYXZhU2NyaXB0VHlwZTxCYXNlPj5cblxudHlwZSBGaWx0ZXJTYXNzUHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIGBTYXNzJHtpbmZlciBSfWAgPyBSIDogbmV2ZXJcblxudHlwZSBTYXNzVHlwZXMgPSBFeGNsdWRlPGBTYXNzJHtGaWx0ZXJTYXNzUHJlZml4PGtleW9mIHR5cGVvZiBzYXNzPn1gLCBgU2FzcyR7J0Jvb2xlYW4nIHwgJ0NhbGN1bGF0aW9uJ31gPlxuXG5jb25zdCBTYXNzVHlwZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG5cdE9iamVjdC5rZXlzKHNhc3MpXG5cdFx0LmZpbHRlcihwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleS5zdGFydHNXaXRoKCdTYXNzJykpXG5cdFx0Lm1hcChwcm9wZXJ0eUtleSA9PiBzYXNzW3Byb3BlcnR5S2V5IGFzIFNhc3NUeXBlc10pXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiB0eXBlb2YgY29uc3RydWN0b3IgPT09ICdmdW5jdGlvbicpXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChWYWx1ZS5wcm90b3R5cGUsIGNvbnN0cnVjdG9yLnByb3RvdHlwZSkpXG5cdFx0Lm1hcChjb25zdHJ1Y3RvciA9PiBbIGNvbnN0cnVjdG9yLm5hbWUsIGNvbnN0cnVjdG9yIF0gYXMgW1Nhc3NUeXBlcywgKHR5cGVvZiBzYXNzKVtTYXNzVHlwZXNdXSksXG4pIGFzIHsgW1AgaW4gU2Fzc1R5cGVzXTogKHR5cGVvZiBzYXNzKVtQXSB9XG5cbmV4cG9ydCBjb25zdCBTYXNzVFJVRSA9IHNhc3Muc2Fzc1RydWVcbmV4cG9ydCB0eXBlIFNhc3NUUlVFID0gdHlwZW9mIFNhc3NUUlVFXG5cbmV4cG9ydCBjb25zdCBTYXNzRkFMU0UgPSBzYXNzLnNhc3NGYWxzZVxuZXhwb3J0IHR5cGUgU2Fzc0ZBTFNFID0gdHlwZW9mIFNhc3NGQUxTRVxuXG5leHBvcnQgY29uc3QgU2Fzc05VTEwgPSBzYXNzLnNhc3NOdWxsXG5leHBvcnQgdHlwZSBTYXNzTlVMTCA9IHR5cGVvZiBTYXNzTlVMTFxuXG5leHBvcnQgY29uc3QgeyBTYXNzTnVtYmVyIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NOdW1iZXIgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NOdW1iZXI+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NTdHJpbmcgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc1N0cmluZyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1N0cmluZz5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc0NvbG9yIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NDb2xvciA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0NvbG9yPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzTGlzdCB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTGlzdCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0xpc3Q+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NNYXAgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc01hcCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc01hcD5cblxuZXhwb3J0IGNvbnN0IFNhc3NCb29sZWFuID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKFNhc3NUUlVFKS5jb25zdHJ1Y3RvciBhcyB0eXBlb2Ygc2Fzcy5TYXNzQm9vbGVhblxuZXhwb3J0IHR5cGUgU2Fzc0Jvb2xlYW4gPSBzYXNzLlNhc3NCb29sZWFuXG5cbmV4cG9ydCB0eXBlIFNhc3NUeXBlID1cblx0fCBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NUeXBlcyBleHRlbmRzIFJlY29yZDxhbnksIGluZmVyIFI+ID8gUiA6IG5ldmVyPlxuXHR8IFNhc3NCb29sZWFuXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNocm9tYSBmcm9tICdjaHJvbWEtanMnXG5pbXBvcnQgKiBhcyBJbW11dGFibGUgZnJvbSAnaW1tdXRhYmxlJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHtcblx0dHlwZSBTYXNzVHlwZSxcblx0U2Fzc0Jvb2xlYW4sXG5cdFNhc3NOdW1iZXIsXG5cdFNhc3NTdHJpbmcsXG5cdFNhc3NDb2xvcixcblx0U2Fzc0xpc3QsXG5cdFNhc3NNYXAsXG5cdFNhc3NUUlVFLFxuXHRTYXNzRkFMU0UsXG5cdFNhc3NOVUxMLFxuXHR0eXBlIEphdmFTY3JpcHRUeXBlLFxuXHR0eXBlIE51bWJlcldpdGhVbml0LFxuXHR0eXBlIFN0cmluZ1dpdGhRdW90ZXMsXG59IGZyb20gJy4vdHlwZXMnXG5cbi8vIEhlbHBlciBmdW5jdGlvbnMuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuXHRjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlXG5cblx0cmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpXG59XG5cbmZ1bmN0aW9uIGlzTWFwKHZhbHVlPzogdW5rbm93bik6IHZhbHVlIGlzIE1hcDx1bmtub3duLCB1bmtub3duPiB7XG5cdHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZhbHVlICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdNYXAnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzVG9KYXZhU2NyaXB0VHlwZShzYXNzVmFsdWU6IFNhc3NUeXBlKTogSmF2YVNjcmlwdFR5cGUge1xuXHRzd2l0Y2ggKHRydWUpIHtcblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzQm9vbGVhbjoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudmFsdWVcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc1N0cmluZzoge1xuXHRcdHJldHVybiBzYXNzVmFsdWUudGV4dFxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTnVtYmVyOiB7XG5cdFx0Y29uc3QgeyB2YWx1ZSwgbnVtZXJhdG9yVW5pdHMsIGRlbm9taW5hdG9yVW5pdHMgfSA9IHNhc3NWYWx1ZVxuXG5cdFx0Y29uc3QgdW5pdCA9IHNhc3NWYWx1ZS5oYXNVbml0c1xuXHRcdFx0PyBudW1lcmF0b3JVbml0cy5qb2luKCcqJykgKyAoZGVub21pbmF0b3JVbml0cy5zaXplID4gMCA/IGAvJHtkZW5vbWluYXRvclVuaXRzLmpvaW4oJyonKX1gIDogJycpXG5cdFx0XHQ6ICcnXG5cblx0XHRyZXR1cm4gdW5pdCA/IHsgdmFsdWUsIHVuaXQgfSA6IHZhbHVlXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NDb2xvcjoge1xuXHRcdGNvbnN0IHNhc3NDb2xvciA9IHNhc3NWYWx1ZS50b1NwYWNlKCdyZ2InKVxuXHRcdGNvbnN0IHsgYWxwaGEsIHNwYWNlIH0gPSBzYXNzQ29sb3Jcblx0XHRjb25zdCBjaGFubmVscyA9IFsgLi4uc2Fzc0NvbG9yLmNoYW5uZWxzIF0gYXMgWyBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIgXVxuXG5cdFx0aWYgKGFscGhhKSB7XG5cdFx0XHRjaGFubmVscy5wdXNoKGFscGhhKVxuXHRcdH1cblxuXHRcdHJldHVybiBjaHJvbWEoLi4uY2hhbm5lbHMsIHNwYWNlIGFzICdyZ2InKVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTGlzdDoge1xuXHRcdGNvbnN0IGxpc3RWYWx1ZSA9IHNhc3NWYWx1ZS5hc0xpc3Rcblx0XHRjb25zdCBsZW5ndGggPSBsaXN0VmFsdWUuc2l6ZVxuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkobGVuZ3RoKS5maWxsKHVuZGVmaW5lZCkgYXMgU2Fzc1R5cGVbXVxuXG5cdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuXHRcdFx0YXJyYXlbaW5kZXhdID0gbGlzdFZhbHVlLmdldChpbmRleCkgYXMgU2Fzc1R5cGVcblx0XHR9XG5cblx0XHRyZXR1cm4gYXJyYXkubWFwKHZhbHVlID0+IHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSlcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc01hcDoge1xuXHRcdGNvbnN0IG1hcFZhbHVlID0gc2Fzc1ZhbHVlLmNvbnRlbnRzXG5cblx0XHRjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbShtYXBWYWx1ZS5lbnRyaWVzKCkgYXMgSXRlcmFibGVJdGVyYXRvcjxbU2Fzc1R5cGUsIFNhc3NUeXBlXT4pXG5cdFx0XHQubWFwKChbIGtleSwgdmFsdWUgXSkgPT4gWyBzYXNzVG9KYXZhU2NyaXB0VHlwZShrZXkpLCBzYXNzVG9KYXZhU2NyaXB0VHlwZSh2YWx1ZSkgXSlcblxuXHRcdHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0phdmFTY3JpcHRUeXBlLCBKYXZhU2NyaXB0VHlwZV1bXSlcblx0fVxuXG5cdGRlZmF1bHQ6IHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJhd1ZhbHVlOiBKYXZhU2NyaXB0VHlwZSk6IFNhc3NUeXBlIHtcblx0c3dpdGNoICh0cnVlKSB7XG5cdGNhc2UgdHlwZW9mIHJhd1ZhbHVlID09PSAnYm9vbGVhbic6IHtcblx0XHRjb25zdCBib29sZWFuVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIGJvb2xlYW5WYWx1ZSA/IFNhc3NUUlVFIDogU2Fzc0ZBTFNFXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcic6IHtcblx0XHRjb25zdCBudW1iZXJWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIobnVtYmVyVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiBbICd2YWx1ZScsICd1bml0JyBdLmV2ZXJ5KHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5IGluIHJhd1ZhbHVlKToge1xuXHRcdGNvbnN0IHsgdmFsdWUsIHVuaXQgfSA9IHJhd1ZhbHVlIGFzIE51bWJlcldpdGhVbml0XG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIodmFsdWUsIHVuaXQpXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZyc6IHtcblx0XHRjb25zdCBzdHJpbmdWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NTdHJpbmcoc3RyaW5nVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiBbICd2YWx1ZScsICdxdW90ZXMnIF0uZXZlcnkocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkgaW4gcmF3VmFsdWUpOiB7XG5cdFx0Y29uc3QgeyB2YWx1ZTogc3RyaW5nVmFsdWUsIHF1b3RlcyB9ID0gcmF3VmFsdWUgYXMgU3RyaW5nV2l0aFF1b3Rlc1xuXG5cdFx0cmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlLCB7IHF1b3RlcyB9KVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgJ19yZ2InIGluIHJhd1ZhbHVlOiB7XG5cdFx0Y29uc3QgWyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSBdID0gcmF3VmFsdWUucmdiYSgpIGFzIG51bWJlcltdXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NDb2xvcih7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIH0pXG5cdH1cblxuXHRjYXNlIEFycmF5LmlzQXJyYXkocmF3VmFsdWUpOiB7XG5cdFx0cmV0dXJuIG5ldyBTYXNzTGlzdChyYXdWYWx1ZS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpKVxuXHR9XG5cblx0Y2FzZSBpc01hcChyYXdWYWx1ZSk6IHtcblx0XHRjb25zdCBtYXBWYWx1ZSA9IHJhd1ZhbHVlIGFzIE1hcDxKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGU+XG5cblx0XHRjb25zdCBpdGVyYWJsZSA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpKVxuXHRcdFx0Lm1hcChlbnRyeSA9PiAoXG5cdFx0XHRcdGVudHJ5Lm1hcChqYXZhU2NyaXB0VG9TYXNzVHlwZSkgYXMgWyBTYXNzVHlwZSwgU2Fzc1R5cGUgXVxuXHRcdFx0KSlcblxuXHRcdHJldHVybiBuZXcgU2Fzc01hcChJbW11dGFibGUuT3JkZXJlZE1hcChpdGVyYWJsZSkpXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIFNhc3NOVUxMXG5cdH1cblx0fVxufVxuIiwiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJ1xuXG4vLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHsgQ3VzdG9tRnVuY3Rpb24gfSBmcm9tICdzYXNzJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHR5cGUgeyBTYXNzVHlwZSwgSmF2YVNjcmlwdFR5cGUgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2Fzc1RvSmF2YVNjcmlwdFR5cGUsIGphdmFTY3JpcHRUb1Nhc3NUeXBlIH0gZnJvbSAnLi90eXBlLWNvbnZlcnRlcidcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCBpbnRlcmZhY2UgQnJpZGdlZEZ1bmN0aW9uIHtcblx0ZXhlY3V0ZSgpOiBKYXZhU2NyaXB0VHlwZSB8IFByb21pc2U8SmF2YVNjcmlwdFR5cGU+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0b3Ige1xuXHRuZXcgKC4uLmFyZ3M6IGFueVtdKTogQnJpZGdlZEZ1bmN0aW9uXG59XG5cbi8vIENvbnN0YW50cy5cbmNvbnN0IEtleU9mU2lnbmF0dXJlID0gU3ltYm9sKCdAY2ljaG9sL3Nhc3MtYnJpZGdlOjpLZXlPZlNpZ25hdHVyZScpXG5cbmV4cG9ydCBmdW5jdGlvbiBzYXNzRnVuY3Rpb24oZGVmaW5pdGlvbjogc3RyaW5nKTogQ2xhc3NEZWNvcmF0b3Ige1xuXHRyZXR1cm4gKDxUIGV4dGVuZHMgQ29uc3RydWN0b3I+KHRhcmdldDogVCkgPT4ge1xuXHRcdFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoS2V5T2ZTaWduYXR1cmUsIGRlZmluaXRpb24sIHRhcmdldClcblxuXHRcdHJldHVybiB0YXJnZXRcblx0fSkgYXMgQ2xhc3NEZWNvcmF0b3Jcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZ1bmN0aW9ucyhcblx0Li4ubW9kdWxlSW1wb3J0czogUHJvbWlzZTx7IGRlZmF1bHQ6IENvbnN0cnVjdG9yIH0+W11cbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgQ3VzdG9tRnVuY3Rpb248J2FzeW5jJz4+PiB7XG5cdGNvbnN0IG1vZHVsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRtb2R1bGVJbXBvcnRzLm1hcChtb2R1bGUgPT4gKFxuXHRcdFx0UHJvbWlzZS5yZXNvbHZlKG1vZHVsZSlcblx0XHRcdFx0LnRoZW4oKHsgZGVmYXVsdDogQ29uc3RydWN0b3IgfSkgPT4gQ29uc3RydWN0b3IpXG5cdFx0KSksXG5cdClcblxuXHRjb25zdCBlbnRyaWVzID0gbW9kdWxlcy5tYXAobW9kdWxlID0+IHtcblx0XHRjb25zdCBzaWduYXR1cmUgPSBSZWZsZWN0LmdldE1ldGFkYXRhKEtleU9mU2lnbmF0dXJlLCBtb2R1bGUpIGFzIHN0cmluZ1xuXG5cdFx0YXN5bmMgZnVuY3Rpb24gY3VzdG9tRnVuY3Rpb24ocmF3QXJnczogU2Fzc1R5cGVbXSk6IFByb21pc2U8U2Fzc1R5cGU+IHtcblx0XHRcdGNvbnN0IGFyZ3MgPSByYXdBcmdzLm1hcChzYXNzVG9KYXZhU2NyaXB0VHlwZSlcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IFJlZmxlY3QuY29uc3RydWN0KG1vZHVsZSwgYXJncykuZXhlY3V0ZSgpXG5cblx0XHRcdHJldHVybiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyZXN1bHQpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIFsgc2lnbmF0dXJlLCBjdXN0b21GdW5jdGlvbiBdIGFzIGNvbnN0XG5cdH0pXG5cblx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKVxufVxuIl0sIm5hbWVzIjpbIlNhc3NUeXBlcyIsIl9PYmplY3QkZnJvbUVudHJpZXMiLCJfbWFwSW5zdGFuY2VQcm9wZXJ0eSIsIl9jb250ZXh0IiwiX2ZpbHRlckluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJfY29udGV4dDQiLCJfY29udGV4dDUiLCJfT2JqZWN0JGtleXMiLCJzYXNzIiwiY2FsbCIsInByb3BlcnR5S2V5IiwiX3N0YXJ0c1dpdGhJbnN0YW5jZVByb3BlcnR5IiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiVmFsdWUiLCJuYW1lIiwiU2Fzc1RSVUUiLCJzYXNzVHJ1ZSIsIlNhc3NGQUxTRSIsInNhc3NGYWxzZSIsIlNhc3NOVUxMIiwic2Fzc051bGwiLCJTYXNzTnVtYmVyIiwiU2Fzc1N0cmluZyIsIlNhc3NDb2xvciIsIlNhc3NMaXN0IiwiU2Fzc01hcCIsIlNhc3NCb29sZWFuIiwiX09iamVjdCRnZXRQcm90b3R5cGVPZiIsImlzT2JqZWN0IiwidmFsdWUiLCJ0eXBlIiwiaXNNYXAiLCJfU3ltYm9sJHRvU3RyaW5nVGFnIiwic2Fzc1RvSmF2YVNjcmlwdFR5cGUiLCJzYXNzVmFsdWUiLCJ0ZXh0IiwibnVtZXJhdG9yVW5pdHMiLCJkZW5vbWluYXRvclVuaXRzIiwidW5pdCIsImhhc1VuaXRzIiwiam9pbiIsInNpemUiLCJzYXNzQ29sb3IiLCJ0b1NwYWNlIiwiYWxwaGEiLCJzcGFjZSIsImNoYW5uZWxzIiwiX3B1c2hJbnN0YW5jZVByb3BlcnR5IiwiY2hyb21hIiwibGlzdFZhbHVlIiwiYXNMaXN0IiwibGVuZ3RoIiwiYXJyYXkiLCJfZmlsbEluc3RhbmNlUHJvcGVydHkiLCJBcnJheSIsInVuZGVmaW5lZCIsImluZGV4IiwiZ2V0IiwibWFwVmFsdWUiLCJjb250ZW50cyIsImVudHJpZXMiLCJfQXJyYXkkZnJvbSIsIl9lbnRyaWVzSW5zdGFuY2VQcm9wZXJ0eSIsImtleSIsIl9NYXAiLCJqYXZhU2NyaXB0VG9TYXNzVHlwZSIsInJhd1ZhbHVlIiwiYm9vbGVhblZhbHVlIiwibnVtYmVyVmFsdWUiLCJfZXZlcnlJbnN0YW5jZVByb3BlcnR5Iiwic3RyaW5nVmFsdWUiLCJxdW90ZXMiLCJyZWQiLCJncmVlbiIsImJsdWUiLCJyZ2JhIiwiX0FycmF5JGlzQXJyYXkiLCJpdGVyYWJsZSIsImVudHJ5IiwiSW1tdXRhYmxlIiwiT3JkZXJlZE1hcCIsIktleU9mU2lnbmF0dXJlIiwiX1N5bWJvbCIsInNhc3NGdW5jdGlvbiIsImRlZmluaXRpb24iLCJ0YXJnZXQiLCJfUmVmbGVjdCRkZWZpbmVNZXRhZGF0YSIsImdldEZ1bmN0aW9ucyIsIm1vZHVsZUltcG9ydHMiLCJtb2R1bGVzIiwiX1Byb21pc2UiLCJhbGwiLCJtb2R1bGUiLCJyZXNvbHZlIiwidGhlbiIsImRlZmF1bHQiLCJDb25zdHJ1Y3RvciIsInNpZ25hdHVyZSIsIl9SZWZsZWN0JGdldE1ldGFkYXRhIiwiY3VzdG9tRnVuY3Rpb24iLCJyYXdBcmdzIiwiYXJncyIsInJlc3VsdCIsIl9SZWZsZWN0JGNvbnN0cnVjdCIsImV4ZWN1dGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWdCQSxNQUFNQSxTQUFTLEdBQUdDLG1CQUFBLENBQ2pCQyxvQkFBQSxDQUFBQyxRQUFBLEdBQUFDLHVCQUFBLENBQUFDLFNBQUEsR0FBQUQsdUJBQUEsQ0FBQUUsU0FBQSxHQUFBSixvQkFBQSxDQUFBSyxTQUFBLEdBQUFILHVCQUFBLENBQUFJLFNBQUEsR0FBQUMsWUFBQSxDQUFZQyxJQUFJLENBQUMsQ0FBQSxDQUFBQyxJQUFBLENBQUFILFNBQUEsRUFDUkksV0FBVyxJQUFJQywyQkFBQSxDQUFBRCxXQUFXLENBQUFELENBQUFBLElBQUEsQ0FBWEMsV0FBVyxFQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQUQsSUFBQSxDQUFBSixTQUFBLEVBQ2pESyxXQUFXLElBQUlGLElBQUksQ0FBQ0UsV0FBVyxDQUFjLENBQUMsQ0FBQSxDQUFBRCxJQUFBLENBQUFMLFNBQUEsRUFDM0NRLFdBQVcsSUFBSSxPQUFPQSxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUEsQ0FBQUgsSUFBQSxDQUFBTixTQUFBLEVBQ2pEUyxXQUFXLElBQUlDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxhQUFhLENBQUNOLElBQUksQ0FBQ08sS0FBSyxDQUFDRixTQUFTLEVBQUVGLFdBQVcsQ0FBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQUwsQ0FBQUEsSUFBQSxDQUFBUixRQUFBLEVBQzlGVyxXQUFX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
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvdHlwZXMudHMiLCIuLi9zb3VyY2VzL3R5cGUtY29udmVydGVyL3Nhc3MtdG8tamF2YXNjcmlwdC50cyIsIi4uL3NvdXJjZXMvdHlwZS1jb252ZXJ0ZXIvamF2YXNjcmlwdC10by1zYXNzLnRzIiwiLi4vc291cmNlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJ2Nocm9tYS1qcydcbmltcG9ydCAqIGFzIHNhc3MgZnJvbSAnc2FzcydcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnc2FzcydcblxuLy8gVHlwZSBkZWZpbml0aW9ucy5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZXMgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuXG5leHBvcnQgdHlwZSBOdW1iZXJXaXRoVW5pdCA9IHsgdmFsdWU6IG51bWJlciwgdW5pdDogc3RyaW5nIH1cblxuZXhwb3J0IHR5cGUgU3RyaW5nV2l0aFF1b3RlcyA9IHsgdmFsdWU6IHN0cmluZywgcXVvdGVzOiBib29sZWFuIH1cblxuZXhwb3J0IHR5cGUgSmF2YVNjcmlwdFR5cGU8QmFzZSA9IFByaW1pdGl2ZXMgfCBDb2xvciB8IE51bWJlcldpdGhVbml0IHwgU3RyaW5nV2l0aFF1b3Rlcz4gPVxuXHR8IEJhc2Vcblx0fCBKYXZhU2NyaXB0VHlwZTxCYXNlPltdXG5cdHwgTWFwPEphdmFTY3JpcHRUeXBlPEJhc2U+LCBKYXZhU2NyaXB0VHlwZTxCYXNlPj5cblxudHlwZSBGaWx0ZXJTYXNzUHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIGBTYXNzJHtpbmZlciBSfWAgPyBSIDogbmV2ZXJcblxudHlwZSBTYXNzVHlwZXMgPSBFeGNsdWRlPGBTYXNzJHtGaWx0ZXJTYXNzUHJlZml4PGtleW9mIHR5cGVvZiBzYXNzPn1gLCBgU2FzcyR7J0Jvb2xlYW4nIHwgJ0NhbGN1bGF0aW9uJ31gPlxuXG5jb25zdCBTYXNzVHlwZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG5cdE9iamVjdC5rZXlzKHNhc3MpXG5cdFx0LmZpbHRlcihwcm9wZXJ0eUtleSA9PiBwcm9wZXJ0eUtleS5zdGFydHNXaXRoKCdTYXNzJykpXG5cdFx0Lm1hcChwcm9wZXJ0eUtleSA9PiBzYXNzW3Byb3BlcnR5S2V5IGFzIFNhc3NUeXBlc10pXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiB0eXBlb2YgY29uc3RydWN0b3IgPT09ICdmdW5jdGlvbicpXG5cdFx0LmZpbHRlcihjb25zdHJ1Y3RvciA9PiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChWYWx1ZS5wcm90b3R5cGUsIGNvbnN0cnVjdG9yLnByb3RvdHlwZSkpXG5cdFx0Lm1hcChjb25zdHJ1Y3RvciA9PiBbIGNvbnN0cnVjdG9yLm5hbWUsIGNvbnN0cnVjdG9yIF0gYXMgW1Nhc3NUeXBlcywgKHR5cGVvZiBzYXNzKVtTYXNzVHlwZXNdXSksXG4pIGFzIHsgW1AgaW4gU2Fzc1R5cGVzXTogKHR5cGVvZiBzYXNzKVtQXSB9XG5cbmV4cG9ydCBjb25zdCBTYXNzVFJVRSA9IHNhc3Muc2Fzc1RydWVcbmV4cG9ydCB0eXBlIFNhc3NUUlVFID0gdHlwZW9mIFNhc3NUUlVFXG5cbmV4cG9ydCBjb25zdCBTYXNzRkFMU0UgPSBzYXNzLnNhc3NGYWxzZVxuZXhwb3J0IHR5cGUgU2Fzc0ZBTFNFID0gdHlwZW9mIFNhc3NGQUxTRVxuXG5leHBvcnQgY29uc3QgU2Fzc05VTEwgPSBzYXNzLnNhc3NOdWxsXG5leHBvcnQgdHlwZSBTYXNzTlVMTCA9IHR5cGVvZiBTYXNzTlVMTFxuXG5leHBvcnQgY29uc3QgeyBTYXNzTnVtYmVyIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NOdW1iZXIgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NOdW1iZXI+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NTdHJpbmcgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc1N0cmluZyA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc1N0cmluZz5cblxuZXhwb3J0IGNvbnN0IHsgU2Fzc0NvbG9yIH0gPSBTYXNzVHlwZXNcbmV4cG9ydCB0eXBlIFNhc3NDb2xvciA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0NvbG9yPlxuXG5leHBvcnQgY29uc3QgeyBTYXNzTGlzdCB9ID0gU2Fzc1R5cGVzXG5leHBvcnQgdHlwZSBTYXNzTGlzdCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc0xpc3Q+XG5cbmV4cG9ydCBjb25zdCB7IFNhc3NNYXAgfSA9IFNhc3NUeXBlc1xuZXhwb3J0IHR5cGUgU2Fzc01hcCA9IEluc3RhbmNlVHlwZTx0eXBlb2YgU2Fzc01hcD5cblxuZXhwb3J0IGNvbnN0IFNhc3NCb29sZWFuID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKFNhc3NUUlVFKS5jb25zdHJ1Y3RvciBhcyB0eXBlb2Ygc2Fzcy5TYXNzQm9vbGVhblxuZXhwb3J0IHR5cGUgU2Fzc0Jvb2xlYW4gPSBzYXNzLlNhc3NCb29sZWFuXG5cbmV4cG9ydCB0eXBlIFNhc3NUeXBlID1cblx0fCBJbnN0YW5jZVR5cGU8dHlwZW9mIFNhc3NUeXBlcyBleHRlbmRzIFJlY29yZDxhbnksIGluZmVyIFI+ID8gUiA6IG5ldmVyPlxuXHR8IFNhc3NCb29sZWFuXG4iLCIvLyBUaGlyZC1wYXJ0eSBtb2R1bGVzLlxuaW1wb3J0IGNocm9tYSBmcm9tICdjaHJvbWEtanMnXG5cbi8vIExvY2FsIGhlbHBlcnMuXG5pbXBvcnQge1xuXHR0eXBlIEphdmFTY3JpcHRUeXBlLFxuXHR0eXBlIFNhc3NUeXBlLFxuXHRTYXNzQm9vbGVhbixcblx0U2Fzc051bWJlcixcblx0U2Fzc1N0cmluZyxcblx0U2Fzc0NvbG9yLFxuXHRTYXNzTGlzdCxcblx0U2Fzc01hcCxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNhc3NUb0phdmFTY3JpcHRUeXBlKHNhc3NWYWx1ZTogU2Fzc1R5cGUpOiBKYXZhU2NyaXB0VHlwZSB7XG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NCb29sZWFuOiB7XG5cdFx0cmV0dXJuIHNhc3NWYWx1ZS52YWx1ZVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzU3RyaW5nOiB7XG5cdFx0cmV0dXJuIHNhc3NWYWx1ZS50ZXh0XG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NOdW1iZXI6IHtcblx0XHRjb25zdCB7IHZhbHVlLCBudW1lcmF0b3JVbml0cywgZGVub21pbmF0b3JVbml0cyB9ID0gc2Fzc1ZhbHVlXG5cblx0XHRjb25zdCB1bml0ID0gc2Fzc1ZhbHVlLmhhc1VuaXRzXG5cdFx0XHQ/IG51bWVyYXRvclVuaXRzLmpvaW4oJyonKSArIChkZW5vbWluYXRvclVuaXRzLnNpemUgPiAwID8gYC8ke2Rlbm9taW5hdG9yVW5pdHMuam9pbignKicpfWAgOiAnJylcblx0XHRcdDogJydcblxuXHRcdHJldHVybiB1bml0ID8geyB2YWx1ZSwgdW5pdCB9IDogdmFsdWVcblx0fVxuXG5cdGNhc2Ugc2Fzc1ZhbHVlIGluc3RhbmNlb2YgU2Fzc0NvbG9yOiB7XG5cdFx0Y29uc3Qgc2Fzc0NvbG9yID0gc2Fzc1ZhbHVlLnRvU3BhY2UoJ3JnYicpXG5cdFx0Y29uc3QgeyBhbHBoYSwgc3BhY2UgfSA9IHNhc3NDb2xvclxuXHRcdGNvbnN0IGNoYW5uZWxzID0gWyAuLi5zYXNzQ29sb3IuY2hhbm5lbHMgXSBhcyBbIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciBdXG5cblx0XHRpZiAoYWxwaGEpIHtcblx0XHRcdGNoYW5uZWxzLnB1c2goYWxwaGEpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNocm9tYSguLi5jaGFubmVscywgc3BhY2UgYXMgJ3JnYicpXG5cdH1cblxuXHRjYXNlIHNhc3NWYWx1ZSBpbnN0YW5jZW9mIFNhc3NMaXN0OiB7XG5cdFx0Y29uc3QgbGlzdFZhbHVlID0gc2Fzc1ZhbHVlLmFzTGlzdFxuXHRcdGNvbnN0IGxlbmd0aCA9IGxpc3RWYWx1ZS5zaXplXG5cdFx0Y29uc3QgYXJyYXkgPSBBcnJheShsZW5ndGgpLmZpbGwodW5kZWZpbmVkKSBhcyBTYXNzVHlwZVtdXG5cblx0XHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG5cdFx0XHRhcnJheVtpbmRleF0gPSBsaXN0VmFsdWUuZ2V0KGluZGV4KSBhcyBTYXNzVHlwZVxuXHRcdH1cblxuXHRcdHJldHVybiBhcnJheS5tYXAodmFsdWUgPT4gc2Fzc1RvSmF2YVNjcmlwdFR5cGUodmFsdWUpKVxuXHR9XG5cblx0Y2FzZSBzYXNzVmFsdWUgaW5zdGFuY2VvZiBTYXNzTWFwOiB7XG5cdFx0Y29uc3QgbWFwVmFsdWUgPSBzYXNzVmFsdWUuY29udGVudHNcblxuXHRcdGNvbnN0IGVudHJpZXMgPSBBcnJheS5mcm9tKG1hcFZhbHVlLmVudHJpZXMoKSBhcyBJdGVyYWJsZUl0ZXJhdG9yPFtTYXNzVHlwZSwgU2Fzc1R5cGVdPilcblx0XHRcdC5tYXAoKFsga2V5LCB2YWx1ZSBdKSA9PiBbIHNhc3NUb0phdmFTY3JpcHRUeXBlKGtleSksIHNhc3NUb0phdmFTY3JpcHRUeXBlKHZhbHVlKSBdKVxuXG5cdFx0cmV0dXJuIG5ldyBNYXAoZW50cmllcyBhcyBbSmF2YVNjcmlwdFR5cGUsIEphdmFTY3JpcHRUeXBlXVtdKVxuXHR9XG5cblx0ZGVmYXVsdDoge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0fVxufVxuIiwiLy8gTm9kZS5qcyBidWlsdC1pbiBBUElzLlxuaW1wb3J0IHV0aWwgZnJvbSAndXRpbCdcblxuLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCBJbW11dGFibGUgZnJvbSAnaW1tdXRhYmxlJ1xuXG4vLyBMb2NhbCBoZWxwZXJzLlxuaW1wb3J0IHtcblx0dHlwZSBOdW1iZXJXaXRoVW5pdCxcblx0dHlwZSBTdHJpbmdXaXRoUXVvdGVzLFxuXHR0eXBlIEphdmFTY3JpcHRUeXBlLFxuXHR0eXBlIFNhc3NUeXBlLFxuXHRTYXNzTnVtYmVyLFxuXHRTYXNzU3RyaW5nLFxuXHRTYXNzQ29sb3IsXG5cdFNhc3NMaXN0LFxuXHRTYXNzTWFwLFxuXHRTYXNzVFJVRSxcblx0U2Fzc0ZBTFNFLFxuXHRTYXNzTlVMTCxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIEhlbHBlciBmdW5jdGlvbnMuXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZT86IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuXHRjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlXG5cblx0cmV0dXJuICEhdmFsdWUgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpXG59XG5cbmZ1bmN0aW9uIGlzTWFwKHZhbHVlPzogdW5rbm93bik6IHZhbHVlIGlzIE1hcDx1bmtub3duLCB1bmtub3duPiB7XG5cdGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkgcmV0dXJuIHRydWVcblx0aWYgKHV0aWwudHlwZXMuaXNNYXAodmFsdWUpKSByZXR1cm4gdHJ1ZVxuXG5cdHJldHVybiBpc09iamVjdCh2YWx1ZSkgJiYgU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZhbHVlICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdNYXAnXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGphdmFTY3JpcHRUb1Nhc3NUeXBlKHJhd1ZhbHVlOiBKYXZhU2NyaXB0VHlwZSk6IFNhc3NUeXBlIHtcblx0c3dpdGNoICh0cnVlKSB7XG5cdGNhc2UgdHlwZW9mIHJhd1ZhbHVlID09PSAnYm9vbGVhbic6IHtcblx0XHRjb25zdCBib29sZWFuVmFsdWUgPSByYXdWYWx1ZVxuXG5cdFx0cmV0dXJuIGJvb2xlYW5WYWx1ZSA/IFNhc3NUUlVFIDogU2Fzc0ZBTFNFXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ251bWJlcic6IHtcblx0XHRjb25zdCBudW1iZXJWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIobnVtYmVyVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiBbICd2YWx1ZScsICd1bml0JyBdLmV2ZXJ5KHByb3BlcnR5S2V5ID0+IHByb3BlcnR5S2V5IGluIHJhd1ZhbHVlKToge1xuXHRcdGNvbnN0IHsgdmFsdWUsIHVuaXQgfSA9IHJhd1ZhbHVlIGFzIE51bWJlcldpdGhVbml0XG5cblx0XHRyZXR1cm4gbmV3IFNhc3NOdW1iZXIodmFsdWUsIHVuaXQpXG5cdH1cblxuXHRjYXNlIHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZyc6IHtcblx0XHRjb25zdCBzdHJpbmdWYWx1ZSA9IHJhd1ZhbHVlXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NTdHJpbmcoc3RyaW5nVmFsdWUpXG5cdH1cblxuXHRjYXNlIGlzT2JqZWN0KHJhd1ZhbHVlKSAmJiBbICd2YWx1ZScsICdxdW90ZXMnIF0uZXZlcnkocHJvcGVydHlLZXkgPT4gcHJvcGVydHlLZXkgaW4gcmF3VmFsdWUpOiB7XG5cdFx0Y29uc3QgeyB2YWx1ZTogc3RyaW5nVmFsdWUsIHF1b3RlcyB9ID0gcmF3VmFsdWUgYXMgU3RyaW5nV2l0aFF1b3Rlc1xuXG5cdFx0cmV0dXJuIG5ldyBTYXNzU3RyaW5nKHN0cmluZ1ZhbHVlLCB7IHF1b3RlcyB9KVxuXHR9XG5cblx0Y2FzZSBpc09iamVjdChyYXdWYWx1ZSkgJiYgJ19yZ2InIGluIHJhd1ZhbHVlOiB7XG5cdFx0Y29uc3QgWyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSBdID0gcmF3VmFsdWUucmdiYSgpIGFzIG51bWJlcltdXG5cblx0XHRyZXR1cm4gbmV3IFNhc3NDb2xvcih7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIH0pXG5cdH1cblxuXHRjYXNlIEFycmF5LmlzQXJyYXkocmF3VmFsdWUpOiB7XG5cdFx0cmV0dXJuIG5ldyBTYXNzTGlzdChyYXdWYWx1ZS5tYXAoamF2YVNjcmlwdFRvU2Fzc1R5cGUpKVxuXHR9XG5cblx0Y2FzZSBpc01hcChyYXdWYWx1ZSk6IHtcblx0XHRjb25zdCBtYXBWYWx1ZSA9IHJhd1ZhbHVlIGFzIE1hcDxKYXZhU2NyaXB0VHlwZSwgSmF2YVNjcmlwdFR5cGU+XG5cblx0XHRjb25zdCBpdGVyYWJsZSA9IEFycmF5LmZyb20obWFwVmFsdWUuZW50cmllcygpKVxuXHRcdFx0Lm1hcChlbnRyeSA9PiAoXG5cdFx0XHRcdGVudHJ5Lm1hcChqYXZhU2NyaXB0VG9TYXNzVHlwZSkgYXMgWyBTYXNzVHlwZSwgU2Fzc1R5cGUgXVxuXHRcdFx0KSlcblxuXHRcdHJldHVybiBuZXcgU2Fzc01hcChJbW11dGFibGUuT3JkZXJlZE1hcChpdGVyYWJsZSkpXG5cdH1cblxuXHRkZWZhdWx0OiB7XG5cdFx0cmV0dXJuIFNhc3NOVUxMXG5cdH1cblx0fVxufVxuIiwiLy8gVGhpcmQtcGFydHkgbW9kdWxlcy5cbmltcG9ydCB7IEN1c3RvbUZ1bmN0aW9uIH0gZnJvbSAnc2FzcydcblxuLy8gTG9jYWwgaGVscGVycy5cbmltcG9ydCB0eXBlIHsgU2Fzc1R5cGUsIEphdmFTY3JpcHRUeXBlIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNhc3NUb0phdmFTY3JpcHRUeXBlLCBqYXZhU2NyaXB0VG9TYXNzVHlwZSB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXInXG5cbi8vIFR5cGUgZGVmaW5pdGlvbnMuXG5pbnRlcmZhY2UgQ29uc3RydWN0b3Ige1xuXHRuZXcgKC4uLmFyZ3M6IGFueVtdKTogb2JqZWN0XG59XG5cbmludGVyZmFjZSBCcmlkZ2VkRnVuY3Rpb24ge1xuXHQocmF3QXJnczogU2Fzc1R5cGVbXSk6IFByb21pc2U8U2Fzc1R5cGU+XG59XG5cbnR5cGUgQnJpZGdlZEZ1bmN0aW9uTWFwID0gTWFwPHN0cmluZywgQnJpZGdlZEZ1bmN0aW9uPlxuXG5leHBvcnQgZnVuY3Rpb24gc2Fzc0Z1bmN0aW9uKHNpZ25hdHVyZTogc3RyaW5nKSB7XG5cdHJldHVybiBmdW5jdGlvbiBkZWNvcmF0ZTxUaGlzLCBBcmdzIGV4dGVuZHMgYW55W10sIFJldHVybiBleHRlbmRzIEphdmFTY3JpcHRUeXBlPihcblx0XHR0YXJnZXQ6ICh0aGlzOiBUaGlzLCAuLi5hcmdzOiBBcmdzKSA9PiBSZXR1cm4gfCBQcm9taXNlPFJldHVybj4sXG5cdFx0Y29udGV4dDogQ2xhc3NNZXRob2REZWNvcmF0b3JDb250ZXh0PFRoaXMsICh0aGlzOiBUaGlzLCAuLi5hcmdzOiBBcmdzKSA9PiBSZXR1cm4gfCBQcm9taXNlPFJldHVybj4+LFxuXHQpOiB2b2lkIHtcblx0XHRpZiAoY29udGV4dC5wcml2YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdOb3Qgc3VwcG9ydGVkIG9uIHByaXZhdGUgbWV0aG9kcy4nKVxuXHRcdH1cblxuXHRcdGlmICghY29udGV4dC5tZXRhZGF0YS5mdW5jdGlvbk1hcCkge1xuXHRcdFx0Y29udGV4dC5tZXRhZGF0YS5mdW5jdGlvbk1hcCA9IG5ldyBNYXA8c3RyaW5nLCBCcmlkZ2VkRnVuY3Rpb24+KClcblx0XHR9XG5cblx0XHRjb25zdCB7IGZ1bmN0aW9uTWFwIH0gPSBjb250ZXh0Lm1ldGFkYXRhIGFzIHsgZnVuY3Rpb25NYXA6IEJyaWRnZWRGdW5jdGlvbk1hcCB9XG5cblx0XHRjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uIGluaXRpYWxpemUodGhpczogVGhpcykge1xuXHRcdFx0Y29uc3QgYnJpZGdlZEZ1bmN0aW9uOiBCcmlkZ2VkRnVuY3Rpb24gPSBhc3luYyAocmF3QXJnczogU2Fzc1R5cGVbXSk6IFByb21pc2U8U2Fzc1R5cGU+ID0+IHtcblx0XHRcdFx0Y29uc3QgYXJncyA9IHJhd0FyZ3MubWFwKHNhc3NUb0phdmFTY3JpcHRUeXBlKVxuXHRcdFx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLnJlc29sdmUoUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXMsIGFyZ3MpKSBhcyBKYXZhU2NyaXB0VHlwZVxuXG5cdFx0XHRcdHJldHVybiBqYXZhU2NyaXB0VG9TYXNzVHlwZShyZXN1bHQpXG5cdFx0XHR9XG5cblx0XHRcdGZ1bmN0aW9uTWFwLnNldChzaWduYXR1cmUsIGJyaWRnZWRGdW5jdGlvbilcblx0XHR9KVxuXHR9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGdW5jdGlvbnMoXG5cdC4uLm1vZHVsZUltcG9ydHM6IFByb21pc2U8eyBkZWZhdWx0OiBDb25zdHJ1Y3RvciB9PltdXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIEN1c3RvbUZ1bmN0aW9uPCdhc3luYyc+Pj4ge1xuXHRjb25zdCBtb2R1bGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0bW9kdWxlSW1wb3J0cy5tYXAobW9kdWxlID0+IChcblx0XHRcdG1vZHVsZS50aGVuKCh7IGRlZmF1bHQ6IE1vZHVsZSB9KSA9PiBuZXcgTW9kdWxlKCkpXG5cdFx0KSksXG5cdClcblxuXHRjb25zdCBlbnRyaWVzID0gbW9kdWxlc1xuXHRcdC5tYXAobW9kdWxlID0+IChcblx0XHRcdFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YobW9kdWxlKT8uY29uc3RydWN0b3I/LltTeW1ib2wubWV0YWRhdGFdPy5mdW5jdGlvbk1hcCBhcyBCcmlkZ2VkRnVuY3Rpb25NYXBcblx0XHQpKVxuXHRcdC5maWx0ZXIoZnVuY3Rpb25NYXAgPT4gISFmdW5jdGlvbk1hcClcblx0XHQuZmxhdE1hcChmdW5jdGlvbk1hcCA9PiBBcnJheS5mcm9tKGZ1bmN0aW9uTWFwLmVudHJpZXMoKSkpXG5cblx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhlbnRyaWVzKVxufVxuIl0sIm5hbWVzIjpbIlNhc3NUeXBlcyIsIl9PYmplY3QkZnJvbUVudHJpZXMiLCJfbWFwSW5zdGFuY2VQcm9wZXJ0eSIsIl9jb250ZXh0IiwiX2ZpbHRlckluc3RhbmNlUHJvcGVydHkiLCJfY29udGV4dDIiLCJfY29udGV4dDMiLCJfY29udGV4dDQiLCJfY29udGV4dDUiLCJfT2JqZWN0JGtleXMiLCJzYXNzIiwiY2FsbCIsInByb3BlcnR5S2V5IiwiX3N0YXJ0c1dpdGhJbnN0YW5jZVByb3BlcnR5IiwiY29uc3RydWN0b3IiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiVmFsdWUiLCJuYW1lIiwiU2Fzc1RSVUUiLCJzYXNzVHJ1ZSIsIlNhc3NGQUxTRSIsInNhc3NGYWxzZSIsIlNhc3NOVUxMIiwic2Fzc051bGwiLCJTYXNzTnVtYmVyIiwiU2Fzc1N0cmluZyIsIlNhc3NDb2xvciIsIlNhc3NMaXN0IiwiU2Fzc01hcCIsIlNhc3NCb29sZWFuIiwiX09iamVjdCRnZXRQcm90b3R5cGVPZiIsInNhc3NUb0phdmFTY3JpcHRUeXBlIiwic2Fzc1ZhbHVlIiwidmFsdWUiLCJ0ZXh0IiwibnVtZXJhdG9yVW5pdHMiLCJkZW5vbWluYXRvclVuaXRzIiwidW5pdCIsImhhc1VuaXRzIiwiam9pbiIsInNpemUiLCJzYXNzQ29sb3IiLCJ0b1NwYWNlIiwiYWxwaGEiLCJzcGFjZSIsImNoYW5uZWxzIiwiX3B1c2hJbnN0YW5jZVByb3BlcnR5IiwiY2hyb21hIiwibGlzdFZhbHVlIiwiYXNMaXN0IiwibGVuZ3RoIiwiYXJyYXkiLCJfZmlsbEluc3RhbmNlUHJvcGVydHkiLCJBcnJheSIsInVuZGVmaW5lZCIsImluZGV4IiwiZ2V0IiwibWFwVmFsdWUiLCJjb250ZW50cyIsImVudHJpZXMiLCJfQXJyYXkkZnJvbSIsIl9lbnRyaWVzSW5zdGFuY2VQcm9wZXJ0eSIsImtleSIsIl9NYXAiLCJpc09iamVjdCIsInR5cGUiLCJpc01hcCIsInV0aWwiLCJ0eXBlcyIsIl9TeW1ib2wkdG9TdHJpbmdUYWciLCJqYXZhU2NyaXB0VG9TYXNzVHlwZSIsInJhd1ZhbHVlIiwiYm9vbGVhblZhbHVlIiwibnVtYmVyVmFsdWUiLCJfZXZlcnlJbnN0YW5jZVByb3BlcnR5Iiwic3RyaW5nVmFsdWUiLCJxdW90ZXMiLCJyZWQiLCJncmVlbiIsImJsdWUiLCJyZ2JhIiwiX0FycmF5JGlzQXJyYXkiLCJpdGVyYWJsZSIsImVudHJ5IiwiSW1tdXRhYmxlIiwiT3JkZXJlZE1hcCIsInNhc3NGdW5jdGlvbiIsInNpZ25hdHVyZSIsImRlY29yYXRlIiwidGFyZ2V0IiwiY29udGV4dCIsInByaXZhdGUiLCJUeXBlRXJyb3IiLCJtZXRhZGF0YSIsImZ1bmN0aW9uTWFwIiwiYWRkSW5pdGlhbGl6ZXIiLCJpbml0aWFsaXplIiwiYnJpZGdlZEZ1bmN0aW9uIiwicmF3QXJncyIsImFyZ3MiLCJyZXN1bHQiLCJfUHJvbWlzZSIsInJlc29sdmUiLCJfUmVmbGVjdCRhcHBseSIsInNldCIsImdldEZ1bmN0aW9ucyIsIm1vZHVsZUltcG9ydHMiLCJtb2R1bGVzIiwiYWxsIiwibW9kdWxlIiwidGhlbiIsImRlZmF1bHQiLCJNb2R1bGUiLCJfZmxhdE1hcEluc3RhbmNlUHJvcGVydHkiLCJfUmVmbGVjdCRnZXRQcm90b3R5cGVPZiIsIl9TeW1ib2wkbWV0YWRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtBOztBQWdCQSxNQUFNQSxTQUFTLEdBQUdDLG1CQUFBLENBQ2pCQyxvQkFBQSxDQUFBQyxRQUFBLEdBQUFDLHVCQUFBLENBQUFDLFNBQUEsR0FBQUQsdUJBQUEsQ0FBQUUsU0FBQSxHQUFBSixvQkFBQSxDQUFBSyxTQUFBLEdBQUFILHVCQUFBLENBQUFJLFNBQUEsR0FBQUMsWUFBQSxDQUFZQyxJQUFJLENBQUMsQ0FBQSxDQUFBQyxJQUFBLENBQUFILFNBQUEsRUFDUkksV0FBVyxJQUFJQywyQkFBQSxDQUFBRCxXQUFXLENBQUFELENBQUFBLElBQUEsQ0FBWEMsV0FBVyxFQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUEsQ0FBQUQsSUFBQSxDQUFBSixTQUFBLEVBQ2pESyxXQUFXLElBQUlGLElBQUksQ0FBQ0UsV0FBVyxDQUFjLENBQUMsQ0FBQSxDQUFBRCxJQUFBLENBQUFMLFNBQUEsRUFDM0NRLFdBQVcsSUFBSSxPQUFPQSxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUEsQ0FBQUgsSUFBQSxDQUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cichol/sass-bridge",
3
- "version": "4.6.13",
3
+ "version": "5.0.0",
4
4
  "description": "A bridge interface to define Sass custom functions.",
5
5
  "homepage": "https://github.com/morrighan/packages",
6
6
  "bugs": {
@@ -35,17 +35,16 @@
35
35
  "directory": "packages/sass-bridge"
36
36
  },
37
37
  "dependencies": {
38
+ "@babel/runtime-corejs3": "^7.26.9",
38
39
  "chroma-js": "^3.1.2",
39
- "core-js-pure": "^3.40.0",
40
- "immutable": "^5.0.3",
41
- "reflect-metadata": "^0.2.2",
42
- "sass": "npm:sass-embedded@^1.83.4"
40
+ "core-js-pure": "^3.41.0",
41
+ "immutable": "^5.0.3"
43
42
  },
44
- "devDependencies": {
45
- "@cichol/sass-bridge": "file:."
43
+ "peerDependencies": {
44
+ "sass": "npm:sass-embedded@^1.85.1"
46
45
  },
47
46
  "engines": {
48
- "node": "^20.18.2",
47
+ "node": "^20.18.3",
49
48
  "npm": "^11.0.0"
50
49
  },
51
50
  "publishConfig": {