clientnode 4.0.1457 → 4.0.1459

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 (142) hide show
  1. package/dist/Lock.js +83 -69
  2. package/dist/Logger.js +163 -798
  3. package/dist/Semaphore.js +46 -56
  4. package/dist/array.js +337 -668
  5. package/dist/cli.js +37 -45
  6. package/dist/constants.js +110 -198
  7. package/dist/context.js +25 -301
  8. package/dist/cookie.js +48 -302
  9. package/dist/data-transfer.js +166 -817
  10. package/dist/datetime.js +241 -1149
  11. package/dist/domNode.js +277 -532
  12. package/dist/expression/evaluators.js +234 -1231
  13. package/dist/expression/helper.js +82 -102
  14. package/dist/expression/index.js +10 -1383
  15. package/dist/expression/indicator-functions.js +21 -316
  16. package/dist/expression/type.js +5 -1
  17. package/dist/filesystem.js +324 -385
  18. package/dist/function.js +51 -93
  19. package/dist/index.js +27 -3253
  20. package/dist/indicators.js +68 -519
  21. package/dist/module.js +99 -233
  22. package/dist/number.js +25 -498
  23. package/dist/object.js +791 -958
  24. package/dist/process.js +38 -298
  25. package/dist/property-types.js +96 -17
  26. package/dist/scope.js +56 -2134
  27. package/dist/string.js +603 -1033
  28. package/dist/test-helper.js +171 -639
  29. package/dist/type.js +9 -4
  30. package/dist/utility.js +91 -408
  31. package/package.json +2 -2
  32. package/dist/Lock.d.ts +0 -39
  33. package/dist/Logger.d.ts +0 -102
  34. package/dist/Semaphore.d.ts +0 -29
  35. package/dist/array.d.ts +0 -150
  36. package/dist/bundle/Lock.js +0 -86
  37. package/dist/bundle/Logger.js +0 -820
  38. package/dist/bundle/Semaphore.js +0 -75
  39. package/dist/bundle/array.js +0 -783
  40. package/dist/bundle/cli.js +0 -59
  41. package/dist/bundle/constants.js +0 -214
  42. package/dist/bundle/context.js +0 -316
  43. package/dist/bundle/cookie.js +0 -338
  44. package/dist/bundle/data-transfer.js +0 -867
  45. package/dist/bundle/datetime.js +0 -1190
  46. package/dist/bundle/domNode.js +0 -586
  47. package/dist/bundle/expression/evaluators.js +0 -1270
  48. package/dist/bundle/expression/helper.js +0 -117
  49. package/dist/bundle/expression/index.js +0 -1399
  50. package/dist/bundle/expression/indicator-functions.js +0 -332
  51. package/dist/bundle/expression/type.js +0 -16
  52. package/dist/bundle/filesystem.js +0 -472
  53. package/dist/bundle/function.js +0 -117
  54. package/dist/bundle/index.js +0 -3269
  55. package/dist/bundle/indicators.js +0 -572
  56. package/dist/bundle/module.js +0 -250
  57. package/dist/bundle/number.js +0 -534
  58. package/dist/bundle/object.js +0 -1146
  59. package/dist/bundle/process.js +0 -328
  60. package/dist/bundle/property-types.js +0 -36
  61. package/dist/bundle/scope.js +0 -2163
  62. package/dist/bundle/string.js +0 -1255
  63. package/dist/bundle/test-helper.js +0 -808
  64. package/dist/bundle/type.js +0 -16
  65. package/dist/bundle/utility.js +0 -456
  66. package/dist/cli.d.ts +0 -31
  67. package/dist/compatible/Lock.js +0 -86
  68. package/dist/compatible/Logger.js +0 -820
  69. package/dist/compatible/Semaphore.js +0 -75
  70. package/dist/compatible/array.js +0 -783
  71. package/dist/compatible/cli.js +0 -59
  72. package/dist/compatible/constants.js +0 -214
  73. package/dist/compatible/context.js +0 -316
  74. package/dist/compatible/cookie.js +0 -338
  75. package/dist/compatible/data-transfer.js +0 -867
  76. package/dist/compatible/datetime.js +0 -1190
  77. package/dist/compatible/domNode.js +0 -586
  78. package/dist/compatible/expression/evaluators.js +0 -1270
  79. package/dist/compatible/expression/helper.js +0 -117
  80. package/dist/compatible/expression/index.js +0 -1399
  81. package/dist/compatible/expression/indicator-functions.js +0 -332
  82. package/dist/compatible/expression/type.js +0 -16
  83. package/dist/compatible/filesystem.js +0 -472
  84. package/dist/compatible/function.js +0 -117
  85. package/dist/compatible/index.js +0 -3269
  86. package/dist/compatible/indicators.js +0 -572
  87. package/dist/compatible/module.js +0 -250
  88. package/dist/compatible/number.js +0 -534
  89. package/dist/compatible/object.js +0 -1146
  90. package/dist/compatible/process.js +0 -328
  91. package/dist/compatible/property-types.js +0 -36
  92. package/dist/compatible/scope.js +0 -2163
  93. package/dist/compatible/string.js +0 -1255
  94. package/dist/compatible/test-helper.js +0 -808
  95. package/dist/compatible/type.js +0 -16
  96. package/dist/compatible/utility.js +0 -456
  97. package/dist/constants.d.ts +0 -99
  98. package/dist/context.d.ts +0 -8
  99. package/dist/cookie.d.ts +0 -31
  100. package/dist/data-transfer.d.ts +0 -45
  101. package/dist/datetime.d.ts +0 -37
  102. package/dist/domNode.d.ts +0 -82
  103. package/dist/expression/evaluators.d.ts +0 -55
  104. package/dist/expression/helper.d.ts +0 -4
  105. package/dist/expression/index.d.ts +0 -7
  106. package/dist/expression/indicator-functions.d.ts +0 -14
  107. package/dist/expression/type.d.ts +0 -70
  108. package/dist/filesystem.d.ts +0 -143
  109. package/dist/function.d.ts +0 -20
  110. package/dist/index.d.ts +0 -22
  111. package/dist/indicators.d.ts +0 -68
  112. package/dist/module.d.ts +0 -8
  113. package/dist/number.d.ts +0 -35
  114. package/dist/object.d.ts +0 -231
  115. package/dist/process.d.ts +0 -22
  116. package/dist/property-types.d.ts +0 -460
  117. package/dist/scope.d.ts +0 -44
  118. package/dist/string.d.ts +0 -312
  119. package/dist/test/Lock.d.ts +0 -1
  120. package/dist/test/Logger.d.ts +0 -1
  121. package/dist/test/Semaphore.d.ts +0 -1
  122. package/dist/test/array.d.ts +0 -1
  123. package/dist/test/cookie.d.ts +0 -1
  124. package/dist/test/data-transfer.d.ts +0 -1
  125. package/dist/test/datetime.d.ts +0 -1
  126. package/dist/test/domNode.d.ts +0 -1
  127. package/dist/test/expression/evaluators.d.ts +0 -1
  128. package/dist/test/expression/helper.d.ts +0 -1
  129. package/dist/test/expression/indicator-functions.d.ts +0 -1
  130. package/dist/test/filesystem.d.ts +0 -1
  131. package/dist/test/function.d.ts +0 -1
  132. package/dist/test/indicators.d.ts +0 -1
  133. package/dist/test/number.d.ts +0 -1
  134. package/dist/test/object.d.ts +0 -1
  135. package/dist/test/process.d.ts +0 -1
  136. package/dist/test/property-types.d.ts +0 -1
  137. package/dist/test/scope.d.ts +0 -1
  138. package/dist/test/string.d.ts +0 -1
  139. package/dist/test/utility.d.ts +0 -1
  140. package/dist/test-helper.d.ts +0 -143
  141. package/dist/type.d.ts +0 -230
  142. package/dist/utility.d.ts +0 -44
package/dist/Semaphore.js CHANGED
@@ -1,47 +1,9 @@
1
- if(typeof window==='undefined'||window===null)var window=(typeof global==='undefined'||global===null)?{}:global;/******/ // The require scope
2
- /******/ var __webpack_require__ = {};
3
- /******/
4
- /************************************************************************/
5
- /******/ /* webpack/runtime/define property getters */
6
- /******/ !function() {
7
- /******/ // define getter/value functions for harmony exports
8
- /******/ __webpack_require__.d = function(exports, definition) {
9
- /******/ if(Array.isArray(definition)) {
10
- /******/ var i = 0;
11
- /******/ while(i < definition.length) {
12
- /******/ var key = definition[i++];
13
- /******/ var binding = definition[i++];
14
- /******/ if(!__webpack_require__.o(exports, key)) {
15
- /******/ if(binding === 0) {
16
- /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
17
- /******/ } else {
18
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
19
- /******/ }
20
- /******/ } else if(binding === 0) { i++; }
21
- /******/ }
22
- /******/ } else {
23
- /******/ for(var key in definition) {
24
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
25
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
26
- /******/ }
27
- /******/ }
28
- /******/ }
29
- /******/ };
30
- /******/ }();
31
- /******/
32
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
33
- /******/ !function() {
34
- /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
35
- /******/ }();
36
- /******/
37
- /************************************************************************/
38
- var __webpack_exports__ = {};
39
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40
- /* harmony export */ j: function() { return /* binding */ Semaphore; }
41
- /* harmony export */ });
42
1
  // #!/usr/bin/env babel-node
43
2
  // -*- coding: utf-8 -*-
44
- /** @module Semaphore *//* !
3
+ /** @module Semaphore */
4
+ 'use strict';
5
+
6
+ /* !
45
7
  region header
46
8
  [Project page](https://torben.website/clientnode)
47
9
 
@@ -54,22 +16,50 @@ var __webpack_exports__ = {};
54
16
  naming 3.0 unported license.
55
17
  See https://creativecommons.org/licenses/by/3.0/deed.de
56
18
  endregion
57
- */function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/**
19
+ */
20
+ import "core-js/modules/es.array.push.js";
21
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
23
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
+ /**
58
25
  * Represents the semaphore state.
59
26
  * @property queue - List of waiting resource requests.
60
27
  * @property numberOfFreeResources - Number free allowed concurrent resource
61
28
  * uses.
62
29
  * @property numberOfResources - Number of allowed concurrent resource uses.
63
- */var Semaphore=/*#__PURE__*/function(){/**
64
- * Initializes number of resources.
65
- * @param numberOfResources - Number of resources to manage.
66
- */function Semaphore(numberOfResources){if(numberOfResources===void 0){numberOfResources=2}_classCallCheck(this,Semaphore);_defineProperty(this,"queue",[]);_defineProperty(this,"numberOfResources",void 0);_defineProperty(this,"numberOfFreeResources",void 0);this.numberOfResources=numberOfResources;this.numberOfFreeResources=numberOfResources}/**
67
- * Acquires a new resource and runs given callback if available.
68
- * @returns A promise which will be resolved if requested resource is
69
- * available.
70
- */return _createClass(Semaphore,[{key:"acquire",value:function acquire(){var _this=this;return new Promise(function(resolve){if(_this.numberOfFreeResources<=0)_this.queue.push(resolve);else{_this.numberOfFreeResources-=1;resolve(_this.numberOfFreeResources)}})}/**
71
- * Releases a resource and runs a waiting resolver if there exists some.
72
- */},{key:"release",value:function release(){var callback=this.queue.shift();if(callback===undefined)this.numberOfFreeResources+=1;else callback(this.numberOfFreeResources)}}])}();/* harmony default export */ __webpack_exports__.A = (Semaphore);
73
- var __webpack_exports__Semaphore = __webpack_exports__.j;
74
- var __webpack_exports__default = __webpack_exports__.A;
75
- export { __webpack_exports__Semaphore as Semaphore, __webpack_exports__default as default };
30
+ */
31
+ export class Semaphore {
32
+ /**
33
+ * Initializes number of resources.
34
+ * @param numberOfResources - Number of resources to manage.
35
+ */
36
+ constructor(numberOfResources = 2) {
37
+ _defineProperty(this, "queue", []);
38
+ _defineProperty(this, "numberOfResources", void 0);
39
+ _defineProperty(this, "numberOfFreeResources", void 0);
40
+ this.numberOfResources = numberOfResources;
41
+ this.numberOfFreeResources = numberOfResources;
42
+ }
43
+ /**
44
+ * Acquires a new resource and runs given callback if available.
45
+ * @returns A promise which will be resolved if requested resource is
46
+ * available.
47
+ */
48
+ acquire() {
49
+ return new Promise(resolve => {
50
+ if (this.numberOfFreeResources <= 0) this.queue.push(resolve);else {
51
+ this.numberOfFreeResources -= 1;
52
+ resolve(this.numberOfFreeResources);
53
+ }
54
+ });
55
+ }
56
+ /**
57
+ * Releases a resource and runs a waiting resolver if there exists some.
58
+ */
59
+ release() {
60
+ const callback = this.queue.shift();
61
+ if (callback === undefined) this.numberOfFreeResources += 1;else callback(this.numberOfFreeResources);
62
+ }
63
+ }
64
+ export default Semaphore;
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1NlbWFwaG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIS91c3IvYmluL2VudiBiYWJlbC1ub2RlXG4vLyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbi8qKiBAbW9kdWxlIFNlbWFwaG9yZSAqL1xuJ3VzZSBzdHJpY3QnXG4vKiAhXG4gICAgcmVnaW9uIGhlYWRlclxuICAgIFtQcm9qZWN0IHBhZ2VdKGh0dHBzOi8vdG9yYmVuLndlYnNpdGUvY2xpZW50bm9kZSlcblxuICAgIENvcHlyaWdodCBUb3JiZW4gU2lja2VydCAoaW5mb1tcIn5hdH5cIl10b3JiZW4ud2Vic2l0ZSkgMTYuMTIuMjAxMlxuXG4gICAgTGljZW5zZVxuICAgIC0tLS0tLS1cblxuICAgIFRoaXMgbGlicmFyeSB3cml0dGVuIGJ5IFRvcmJlbiBTaWNrZXJ0IHN0YW5kcyB1bmRlciBhIGNyZWF0aXZlIGNvbW1vbnNcbiAgICBuYW1pbmcgMy4wIHVucG9ydGVkIGxpY2Vuc2UuXG4gICAgU2VlIGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS8zLjAvZGVlZC5kZVxuICAgIGVuZHJlZ2lvblxuKi9cbmltcG9ydCB0eXBlIHtBbnlGdW5jdGlvbn0gZnJvbSAnLi90eXBlJ1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNlbWFwaG9yZSBzdGF0ZS5cbiAqIEBwcm9wZXJ0eSBxdWV1ZSAtIExpc3Qgb2Ygd2FpdGluZyByZXNvdXJjZSByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSBudW1iZXJPZkZyZWVSZXNvdXJjZXMgLSBOdW1iZXIgZnJlZSBhbGxvd2VkIGNvbmN1cnJlbnQgcmVzb3VyY2VcbiAqIHVzZXMuXG4gKiBAcHJvcGVydHkgbnVtYmVyT2ZSZXNvdXJjZXMgLSBOdW1iZXIgb2YgYWxsb3dlZCBjb25jdXJyZW50IHJlc291cmNlIHVzZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZW1hcGhvcmUge1xuICAgIHF1ZXVlOiBBcnJheTxBbnlGdW5jdGlvbj4gPSBbXVxuXG4gICAgbnVtYmVyT2ZSZXNvdXJjZXM6IG51bWJlclxuICAgIG51bWJlck9mRnJlZVJlc291cmNlczogbnVtYmVyXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgbnVtYmVyIG9mIHJlc291cmNlcy5cbiAgICAgKiBAcGFyYW0gbnVtYmVyT2ZSZXNvdXJjZXMgLSBOdW1iZXIgb2YgcmVzb3VyY2VzIHRvIG1hbmFnZS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihudW1iZXJPZlJlc291cmNlcyA9IDIpIHtcbiAgICAgICAgdGhpcy5udW1iZXJPZlJlc291cmNlcyA9IG51bWJlck9mUmVzb3VyY2VzXG4gICAgICAgIHRoaXMubnVtYmVyT2ZGcmVlUmVzb3VyY2VzID0gbnVtYmVyT2ZSZXNvdXJjZXNcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWNxdWlyZXMgYSBuZXcgcmVzb3VyY2UgYW5kIHJ1bnMgZ2l2ZW4gY2FsbGJhY2sgaWYgYXZhaWxhYmxlLlxuICAgICAqIEByZXR1cm5zIEEgcHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIGlmIHJlcXVlc3RlZCByZXNvdXJjZSBpc1xuICAgICAqIGF2YWlsYWJsZS5cbiAgICAgKi9cbiAgICBhY3F1aXJlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxudW1iZXI+KChcbiAgICAgICAgICAgIHJlc29sdmU6IChfdmFsdWU6IG51bWJlcikgPT4gdm9pZFxuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcyA8PSAwKVxuICAgICAgICAgICAgICAgIHRoaXMucXVldWUucHVzaChyZXNvbHZlKVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5udW1iZXJPZkZyZWVSZXNvdXJjZXMgLT0gMVxuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVsZWFzZXMgYSByZXNvdXJjZSBhbmQgcnVucyBhIHdhaXRpbmcgcmVzb2x2ZXIgaWYgdGhlcmUgZXhpc3RzIHNvbWUuXG4gICAgICovXG4gICAgcmVsZWFzZSgpIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2s6IEFueUZ1bmN0aW9uIHwgdW5kZWZpbmVkID0gdGhpcy5xdWV1ZS5zaGlmdCgpXG4gICAgICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhpcy5udW1iZXJPZkZyZWVSZXNvdXJjZXMgKz0gMVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBjYWxsYmFjayh0aGlzLm51bWJlck9mRnJlZVJlc291cmNlcylcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlbWFwaG9yZVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxZQUFZOztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFiQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTSxTQUFTLENBQUM7RUFLbkI7QUFDSjtBQUNBO0FBQ0E7RUFDSSxXQUFXLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFO0lBQUEsK0JBUlAsRUFBRTtJQUFBO0lBQUE7SUFTMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQjtJQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsaUJBQWlCO0VBQ2xEO0VBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJLE9BQU8sR0FBb0I7SUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FDZCxPQUFpQyxJQUMxQjtNQUNQLElBQUksSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsRUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQ3ZCO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUM7UUFFL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztNQUN2QztJQUNKLENBQUMsQ0FBQztFQUNOO0VBQ0E7QUFDSjtBQUNBO0VBQ0ksT0FBTyxHQUFHO0lBQ04sTUFBTSxRQUFpQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUN0QixJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxNQUUvQixRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0VBQzVDO0FBQ0o7QUFFQSxlQUFlLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=