Socket
Socket
Sign inDemoInstall

@glimmer/validator

Package Overview
Dependencies
Maintainers
11
Versions
143
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/validator - npm Package Compare versions

Comparing version 0.48.0 to 0.49.0

14

dist/commonjs/es2017/index.js

@@ -60,2 +60,8 @@ "use strict";

});
Object.defineProperty(exports, "CurrentTag", {
enumerable: true,
get: function () {
return _validators.CurrentTag;
}
});
Object.defineProperty(exports, "CURRENT_TAG", {

@@ -109,2 +115,8 @@ enumerable: true,

});
Object.defineProperty(exports, "VolatileTag", {
enumerable: true,
get: function () {
return _validators.VolatileTag;
}
});
Object.defineProperty(exports, "VOLATILE_TAG", {

@@ -202,2 +214,2 @@ enumerable: true,

var _debug = require("./lib/debug");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUErQkE7O0FBRUE7O0FBRUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBTExPV19DWUNMRVMsXG4gIGJ1bXAsXG4gIENvbWJpbmF0b3JUYWcsXG4gIGNvbWJpbmUsXG4gIENPTVBVVEUsXG4gIENPTlNUQU5UX1RBRyxcbiAgQ09OU1RBTlQsXG4gIENvbnN0YW50VGFnLFxuICBjcmVhdGVDb21iaW5hdG9yVGFnLFxuICBjcmVhdGVUYWcsXG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgQ1VSUkVOVF9UQUcsXG4gIGRpcnR5LFxuICBEaXJ0eWFibGVUYWcsXG4gIEVudGl0eVRhZyxcbiAgRW50aXR5VGFnZ2VkLFxuICBJTklUSUFMLFxuICBpc0NvbnN0LFxuICBpc0NvbnN0VGFnLFxuICBSZXZpc2lvbixcbiAgVGFnLFxuICBUYWdnZWQsXG4gIFVwZGF0YWJsZVRhZyxcbiAgdXBkYXRlLFxuICB2YWxpZGF0ZSxcbiAgdmFsdWUsXG4gIFZPTEFUSUxFX1RBRyxcbiAgVk9MQVRJTEUsXG59IGZyb20gJy4vbGliL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgeyBkaXJ0eVRhZ0ZvciwgdGFnRm9yLCBzZXRQcm9wZXJ0eURpZENoYW5nZSB9IGZyb20gJy4vbGliL21ldGEnO1xuXG5leHBvcnQgeyBjb25zdW1lLCBFUE9DSCwgaXNUcmFja2luZywgdHJhY2ssIHRyYWNrZWREYXRhLCB1bnRyYWNrIH0gZnJvbSAnLi9saWIvdHJhY2tpbmcnO1xuXG5leHBvcnQge1xuICBzZXRBdXRvdHJhY2tpbmdUcmFuc2FjdGlvbkVudixcbiAgcnVuSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9saWIvZGVidWcnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFpQ0E7O0FBRUE7O0FBRUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBTExPV19DWUNMRVMsXG4gIGJ1bXAsXG4gIENvbWJpbmF0b3JUYWcsXG4gIGNvbWJpbmUsXG4gIENPTVBVVEUsXG4gIENPTlNUQU5UX1RBRyxcbiAgQ09OU1RBTlQsXG4gIENvbnN0YW50VGFnLFxuICBjcmVhdGVDb21iaW5hdG9yVGFnLFxuICBjcmVhdGVUYWcsXG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgQ3VycmVudFRhZyxcbiAgQ1VSUkVOVF9UQUcsXG4gIGRpcnR5LFxuICBEaXJ0eWFibGVUYWcsXG4gIEVudGl0eVRhZyxcbiAgRW50aXR5VGFnZ2VkLFxuICBJTklUSUFMLFxuICBpc0NvbnN0LFxuICBpc0NvbnN0VGFnLFxuICBSZXZpc2lvbixcbiAgVGFnLFxuICBUYWdnZWQsXG4gIFVwZGF0YWJsZVRhZyxcbiAgdXBkYXRlLFxuICB2YWxpZGF0ZSxcbiAgdmFsdWUsXG4gIFZvbGF0aWxlVGFnLFxuICBWT0xBVElMRV9UQUcsXG4gIFZPTEFUSUxFLFxufSBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgZGlydHlUYWdGb3IsIHRhZ0Zvciwgc2V0UHJvcGVydHlEaWRDaGFuZ2UgfSBmcm9tICcuL2xpYi9tZXRhJztcblxuZXhwb3J0IHsgY29uc3VtZSwgRVBPQ0gsIGlzVHJhY2tpbmcsIHRyYWNrLCB0cmFja2VkRGF0YSwgdW50cmFjayB9IGZyb20gJy4vbGliL3RyYWNraW5nJztcblxuZXhwb3J0IHtcbiAgc2V0QXV0b3RyYWNraW5nVHJhbnNhY3Rpb25FbnYsXG4gIHJ1bkluQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vbGliL2RlYnVnJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

6

dist/commonjs/es2017/lib/validators.js

@@ -15,3 +15,3 @@ "use strict";

exports.createCombinatorTag = createCombinatorTag;
exports.CURRENT_TAG = exports.VOLATILE_TAG = exports.CONSTANT_TAG = exports.update = exports.dirty = exports.ALLOW_CYCLES = exports.COMPUTE = exports.VOLATILE = exports.INITIAL = exports.CONSTANT = void 0;
exports.CURRENT_TAG = exports.CurrentTag = exports.VOLATILE_TAG = exports.VolatileTag = exports.CONSTANT_TAG = exports.update = exports.dirty = exports.ALLOW_CYCLES = exports.COMPUTE = exports.VOLATILE = exports.INITIAL = exports.CONSTANT = void 0;

@@ -247,2 +247,3 @@ var _env = require("@glimmer/env");

exports.VolatileTag = VolatileTag;
const VOLATILE_TAG = new VolatileTag(); //////////

@@ -259,2 +260,3 @@

exports.CurrentTag = CurrentTag;
const CURRENT_TAG = new CurrentTag(); //////////

@@ -292,2 +294,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTU8sTUFBTSxRQUFRLEdBQWQsQ0FBQTs7QUFDQSxNQUFNLE9BQU8sR0FBYixDQUFBOztBQUNBLE1BQU0sUUFBUSxHQUFkLGdCQUFBLEMsQ0FBNkM7OztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBOztBQUVNLFNBQUEsSUFBQSxHQUFjO0FBQ2xCLEVBQUEsU0FBUztFQUdYOzs7QUFFTyxNQUFNLE9BQU8sR0FBa0IsbUJBQS9CLGFBQStCLENBQS9CLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY00sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVTSxTQUFBLFFBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQXRCLE9BQXNCLENBQUgsRUFBbkI7QUFDRDs7QUFpQkQsTUFBTSxJQUFJLEdBQWtCLG1CQUE1QixVQUE0QixDQUE1QjtBQUVPLElBQUEsWUFBQTs7O0FBRVAsSUFBQSxVQUFBLEVBQVc7QUFDVCx5QkFBQSxZQUFZLEdBQUcsSUFBZixPQUFlLEVBQWY7QUFDRDs7QUFxQkQsTUFBQSxrQkFBQSxDQUF3QjtBQWF0QixFQUFBLFdBQUEsQ0FBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FBQSxNQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBS04sU0FBQSxJQUFBLElBQUEsSUFBQTtBQUNEOztBQUVELEdBQUEsT0FBQSxJQUFTO0FBQ1AsUUFBSTtBQUFFLE1BQUE7QUFBRixRQUFKLElBQUE7O0FBRUEsUUFBSSxLQUFBLFVBQUEsS0FBSixJQUFBLEVBQThCO0FBQzVCLFVBQUksY0FBUyxDQUFDLFlBQWEsQ0FBYixHQUFBLENBQWQsSUFBYyxDQUFkLEVBQXVDO0FBQ3JDLGNBQU0sSUFBQSxLQUFBLENBQU4sZ0NBQU0sQ0FBTjtBQUNEOztBQUVELFdBQUEsV0FBQSxHQUFtQixFQUFuQixTQUFBO0FBTEYsS0FBQSxNQU1PLElBQUksV0FBVyxLQUFmLFNBQUEsRUFBK0I7QUFDcEMsV0FBQSxVQUFBLEdBQUEsSUFBQTtBQUNBLFdBQUEsV0FBQSxHQUFBLFNBQUE7O0FBRUEsVUFBSTtBQUNGLFlBQUk7QUFBQSxVQUFBLE9BQUE7QUFBQSxVQUFBLE1BQUE7QUFBQSxVQUFBLGlCQUFBO0FBQUEsVUFBQSxTQUFBO0FBQWlELFVBQUE7QUFBakQsWUFBSixJQUFBOztBQUVBLFlBQUksTUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsY0FBSSxXQUFXLEdBQUcsTUFBTSxDQUF4QixPQUF3QixDQUFOLEVBQWxCOztBQUVBLGNBQUksV0FBVyxLQUFmLGlCQUFBLEVBQXVDO0FBQ3JDLFlBQUEsUUFBUSxHQUFHLElBQUksQ0FBSixHQUFBLENBQUEsUUFBQSxFQUFYLFNBQVcsQ0FBWDtBQURGLFdBQUEsTUFFTztBQUNMO0FBQ0EsaUJBQUEsaUJBQUEsR0FBQSxJQUFBO0FBQ0EsWUFBQSxRQUFRLEdBQUcsSUFBSSxDQUFKLEdBQUEsQ0FBQSxRQUFBLEVBQVgsV0FBVyxDQUFYO0FBQ0Q7QUFDRjs7QUFFRCxZQUFJLE9BQU8sS0FBWCxJQUFBLEVBQXNCO0FBQ3BCLGVBQUssSUFBSSxDQUFDLEdBQVYsQ0FBQSxFQUFnQixDQUFDLEdBQUcsT0FBTyxDQUEzQixNQUFBLEVBQW9DLENBQXBDLEVBQUEsRUFBeUM7QUFDdkMsZ0JBQUksS0FBSyxHQUFHLE9BQU8sQ0FBUCxDQUFPLENBQVAsQ0FBWixPQUFZLEdBQVo7QUFDQSxZQUFBLFFBQVEsR0FBRyxJQUFJLENBQUosR0FBQSxDQUFBLEtBQUEsRUFBWCxRQUFXLENBQVg7QUFDRDtBQUNGOztBQUVELGFBQUEsU0FBQSxHQUFBLFFBQUE7QUF0QkYsT0FBQSxTQXVCVTtBQUNSLGFBQUEsVUFBQSxHQUFBLEtBQUE7QUFDRDtBQUNGOztBQUVELFdBQU8sS0FBUCxTQUFBO0FBQ0Q7O0FBRUQsU0FBQSxNQUFBLENBQUEsSUFBQSxFQUFBLE9BQUEsRUFBOEM7QUFDNUMsUUFBSSxjQUFTLElBQUksQ0FBSixJQUFJLENBQUosS0FBVTtBQUFBO0FBQXZCLE1BQTJEO0FBQ3pELGNBQU0sSUFBQSxLQUFBLENBQU4sa0RBQU0sQ0FBTjtBQUYwQyxPQUFBLENBSzVDOzs7QUFDQSxRQUFJLEdBQUcsR0FBUCxJQUFBO0FBQ0EsUUFBSSxNQUFNLEdBQVYsT0FBQTs7QUFFQSxRQUFJLE1BQU0sS0FBVixZQUFBLEVBQTZCO0FBQzNCLE1BQUEsR0FBRyxDQUFILE1BQUEsR0FBQSxJQUFBO0FBREYsS0FBQSxNQUVPO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBQSxHQUFHLENBQUgsaUJBQUEsR0FBd0IsTUFBTSxDQUE5QixPQUE4QixDQUFOLEVBQXhCO0FBQ0EsTUFBQSxHQUFHLENBQUgsTUFBQSxHQUFBLE1BQUE7QUFDRDtBQUNGOztBQUVELFNBQUEsS0FBQSxDQUFBLEdBQUEsRUFBNkM7QUFDM0MsUUFDRSxjQUNBLEVBQUUsR0FBRyxDQUFILElBQUcsQ0FBSCxLQUFTO0FBQUE7QUFBVCxPQUErQyxHQUFHLENBQUgsSUFBRyxDQUFILEtBQVM7QUFBQTtBQUExRCxLQUZGLEVBR0U7QUFDQSxZQUFNLElBQUEsS0FBQSxDQUFOLGlEQUFNLENBQU47QUFDRDs7QUFFRCxRQUFBLFVBQUEsRUFBVztBQUNUO0FBQ0E7QUFDQSx1Q0FBQSxHQUFBO0FBQ0Q7O0FBRUEsSUFBQSxHQUEwQixDQUExQixRQUFBLEdBQXNDLEVBQXRDLFNBQUE7QUFDRjs7QUEvR3FCOztBQWtIakIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQWhDLEtBQUE7O0FBQ0EsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQWpDLE1BQUEsQyxDQUVQOzs7O0FBRU0sU0FBQSxTQUFBLEdBQW1CO0FBQ3ZCLFNBQU8sSUFBQSxrQkFBQSxDQUFzQjtBQUFBO0FBQXRCLEdBQVA7QUFDRDs7QUFFSyxTQUFBLGtCQUFBLEdBQTRCO0FBQ2hDLFNBQU8sSUFBQSxrQkFBQSxDQUFzQjtBQUFBO0FBQXRCLEdBQVA7RUFHRjs7O0FBRU8sTUFBTSxZQUFZLEdBQUcsSUFBQSxrQkFBQSxDQUFzQjtBQUFBO0FBQXRCLENBQXJCOzs7QUFFRCxTQUFBLE9BQUEsQ0FBa0I7QUFBRSxFQUFBO0FBQUYsQ0FBbEIsRUFBaUM7QUFDckMsU0FBTyxHQUFHLEtBQVYsWUFBQTtBQUNEOztBQUVLLFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBNkI7QUFDakMsU0FBTyxHQUFHLEtBQVYsWUFBQTtFQUdGOzs7QUFFQSxNQUFBLFdBQUEsQ0FBaUI7QUFDZixHQUFBLE9BQUEsSUFBUztBQUNQLFdBQUEsUUFBQTtBQUNEOztBQUhjOztBQU1WLE1BQU0sWUFBWSxHQUFHLElBQXJCLFdBQXFCLEVBQXJCLEMsQ0FFUDs7OztBQUVBLE1BQUEsVUFBQSxDQUFnQjtBQUNkLEdBQUEsT0FBQSxJQUFTO0FBQ1AsV0FBQSxTQUFBO0FBQ0Q7O0FBSGE7O0FBTVQsTUFBTSxXQUFXLEdBQUcsSUFBcEIsVUFBb0IsRUFBcEIsQyxDQUVQOzs7O0FBRU0sU0FBQSxPQUFBLENBQUEsSUFBQSxFQUE2QjtBQUNqQyxNQUFJLFNBQVMsR0FBYixFQUFBOztBQUVBLE9BQUssSUFBSSxDQUFDLEdBQUwsQ0FBQSxFQUFXLENBQUMsR0FBRyxJQUFJLENBQXhCLE1BQUEsRUFBaUMsQ0FBQyxHQUFsQyxDQUFBLEVBQXdDLENBQXhDLEVBQUEsRUFBNkM7QUFDM0MsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFkLENBQWMsQ0FBZDtBQUNBLFFBQUksR0FBRyxLQUFQLFlBQUEsRUFBMEI7QUFDMUIsSUFBQSxTQUFTLENBQVQsSUFBQSxDQUFBLEdBQUE7QUFDRDs7QUFFRCxTQUFPLG1CQUFtQixDQUExQixTQUEwQixDQUExQjtBQUNEOztBQUVLLFNBQUEsbUJBQUEsQ0FBQSxJQUFBLEVBQXlDO0FBQzdDLFVBQVEsSUFBSSxDQUFaLE1BQUE7QUFDRSxTQUFBLENBQUE7QUFDRSxhQUFBLFlBQUE7O0FBQ0YsU0FBQSxDQUFBO0FBQ0UsYUFBTyxJQUFJLENBQVgsQ0FBVyxDQUFYOztBQUNGO0FBQ0UsVUFBSSxHQUFHLEdBQUcsSUFBQSxrQkFBQSxDQUFzQjtBQUFBO0FBQXRCLE9BQVY7QUFDQyxNQUFBLEdBQVcsQ0FBWCxPQUFBLEdBQUEsSUFBQTtBQUNELGFBQUEsR0FBQTtBQVJKO0FBVUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBVbmlvblRvSW50ZXJzZWN0aW9uLCBzeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGFzc2VydFRhZ05vdENvbnN1bWVkIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgUmV2aXNpb24gPSBudW1iZXI7XG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVDogUmV2aXNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IElOSVRJQUw6IFJldmlzaW9uID0gMTtcbmV4cG9ydCBjb25zdCBWT0xBVElMRTogUmV2aXNpb24gPSA5MDA3MTk5MjU0NzQwOTkxOyAvLyBNQVhfSU5UXG5cbmxldCAkUkVWSVNJT04gPSBJTklUSUFMO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVtcCgpIHtcbiAgJFJFVklTSU9OKys7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNvbnN0IENPTVBVVEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19DT01QVVRFJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnPFQ+IHtcbiAgW0NPTVBVVEVdKCk6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIGV4dGVuZHMgRW50aXR5VGFnPFJldmlzaW9uPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVRhZ2dlZDxUPiB7XG4gIHRhZzogRW50aXR5VGFnPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ2dlZCB7XG4gIHRhZzogVGFnO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogYHZhbHVlYCByZWNlaXZlcyBhIHRhZyBhbmQgcmV0dXJucyBhbiBvcGFxdWUgUmV2aXNpb24gYmFzZWQgb24gdGhhdCB0YWcuIFRoaXNcbiAqIHNuYXBzaG90IGNhbiB0aGVuIGxhdGVyIGJlIHBhc3NlZCB0byBgdmFsaWRhdGVgIHdpdGggdGhlIHNhbWUgdGFnIHRvXG4gKiBkZXRlcm1pbmUgaWYgdGhlIHRhZyBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlIHRpbWUgdGhhdCBgdmFsdWVgIHdhc1xuICogY2FsbGVkLlxuICpcbiAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGdsb2JhbCByZXZpc2lvbiBjb3VudCBkaXJlY3RseSBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBhbmQgc2hvdWxkIG5vdCBiZVxuICogcmVsaWVkIG9uIGRpcmVjdGx5IGJ5IHVzZXJzIG9mIHRoZXNlIEFQSXMuIEluc3RlYWQsIFJldmlzaW9ucyBzaG91bGQgYmVcbiAqIHRyZWF0ZWQgYXMgaWYgdGhleSBhcmUgb3BhcXVlL3Vua25vd24sIGFuZCBzaG91bGQgb25seSBiZSBpbnRlcmFjdGVkIHdpdGggdmlhXG4gKiB0aGUgYHZhbHVlYC9gdmFsaWRhdGVgIEFQSS5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZShfdGFnOiBUYWcpOiBSZXZpc2lvbiB7XG4gIHJldHVybiAkUkVWSVNJT047XG59XG5cbi8qKlxuICogYHZhbGlkYXRlYCByZWNlaXZlcyBhIHRhZyBhbmQgYSBzbmFwc2hvdCBmcm9tIGEgcHJldmlvdXMgY2FsbCB0byBgdmFsdWVgIHdpdGhcbiAqIHRoZSBzYW1lIHRhZywgYW5kIGRldGVybWluZXMgaWYgdGhlIHRhZyBpcyBzdGlsbCB2YWxpZCBjb21wYXJlZCB0byB0aGVcbiAqIHNuYXBzaG90LiBJZiB0aGUgdGFnJ3Mgc3RhdGUgaGFzIGNoYW5nZWQgYXQgYWxsIHNpbmNlIHRoZW4sIGB2YWxpZGF0ZWAgd2lsbFxuICogcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgaXQgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhXG4gKiBjYWxjdWxhdGlvbiByZWxhdGVkIHRvIHRoZSB0YWdzIHNob3VsZCBiZSByZXJ1bi5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKiBAcGFyYW0gc25hcHNob3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHRhZzogVGFnLCBzbmFwc2hvdDogUmV2aXNpb24pIHtcbiAgcmV0dXJuIHNuYXBzaG90ID49IHRhZ1tDT01QVVRFXSgpO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgYWxsIG9mIHRoZSBwb3NzaWJsZSB0YWcgdHlwZXMgZm9yIHRoZSBtb25vbW9ycGhpYyB0YWcgY2xhc3MuXG4gKiBPdGhlciBjdXN0b20gdGFnIGNsYXNzZXMgY2FuIGV4aXN0LCBzdWNoIGFzIEN1cnJlbnRUYWcgYW5kIFZvbGF0aWxlVGFnLCBidXQgZm9yXG4gKiBwZXJmb3JtYW5jZSByZWFzb25zLCBhbnkgdHlwZSBvZiB0YWcgdGhhdCBpcyBtZWFudCB0byBiZSB1c2VkIGZyZXF1ZW50bHkgc2hvdWxkXG4gKiBiZSBhZGRlZCB0byB0aGUgbW9ub21vcnBoaWMgdGFnLlxuICovXG5jb25zdCBlbnVtIE1vbm9tb3JwaGljVGFnVHlwZXMge1xuICBEaXJ0eWFibGUsXG4gIFVwZGF0YWJsZSxcbiAgQ29tYmluYXRvcixcbiAgQ29uc3RhbnQsXG59XG5cbmNvbnN0IFRZUEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19UWVBFJyk7XG5cbmV4cG9ydCBsZXQgQUxMT1dfQ1lDTEVTOiBXZWFrTWFwPFRhZywgYm9vbGVhbj4gfCB1bmRlZmluZWQ7XG5cbmlmIChERUJVRykge1xuICBBTExPV19DWUNMRVMgPSBuZXcgV2Vha01hcCgpO1xufVxuXG5pbnRlcmZhY2UgTW9ub21vcnBoaWNUYWdCYXNlPFQgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ1R5cGVzPiBleHRlbmRzIFRhZyB7XG4gIFtUWVBFXTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJ0eWFibGVUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGU+IHt9XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRvclRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3I+IHt9XG5leHBvcnQgaW50ZXJmYWNlIENvbnN0YW50VGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQ+IHt9XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ01hcHBpbmcge1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGVdOiBEaXJ0eWFibGVUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZV06IFVwZGF0YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcl06IENvbWJpbmF0b3JUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50XTogQ29uc3RhbnRUYWc7XG59XG5cbnR5cGUgTW9ub21vcnBoaWNUYWcgPSBVbmlvblRvSW50ZXJzZWN0aW9uPE1vbm9tb3JwaGljVGFnTWFwcGluZ1tNb25vbW9ycGhpY1RhZ1R5cGVzXT47XG50eXBlIE1vbm9tb3JwaGljVGFnVHlwZSA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdUeXBlcz47XG5cbmNsYXNzIE1vbm9tb3JwaGljVGFnSW1wbCBpbXBsZW1lbnRzIE1vbm9tb3JwaGljVGFnIHtcbiAgcHJpdmF0ZSByZXZpc2lvbiA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdENoZWNrZWQgPSBJTklUSUFMO1xuICBwcml2YXRlIGxhc3RWYWx1ZSA9IElOSVRJQUw7XG5cbiAgcHJpdmF0ZSBpc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc3VidGFnczogVGFnW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHN1YnRhZzogVGFnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3VidGFnQnVmZmVyQ2FjaGU6IFJldmlzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgW1RZUEVdOiBNb25vbW9ycGhpY1RhZ1R5cGU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogTW9ub21vcnBoaWNUYWdUeXBlcykge1xuICAgIHRoaXNbVFlQRV0gPSB0eXBlIGFzIE1vbm9tb3JwaGljVGFnVHlwZTtcbiAgfVxuXG4gIFtDT01QVVRFXSgpOiBSZXZpc2lvbiB7XG4gICAgbGV0IHsgbGFzdENoZWNrZWQgfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy5pc1VwZGF0aW5nID09PSB0cnVlKSB7XG4gICAgICBpZiAoREVCVUcgJiYgIUFMTE9XX0NZQ0xFUyEuaGFzKHRoaXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ3ljbGVzIGluIHRhZ3MgYXJlIG5vdCBhbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSArKyRSRVZJU0lPTjtcbiAgICB9IGVsc2UgaWYgKGxhc3RDaGVja2VkICE9PSAkUkVWSVNJT04pIHtcbiAgICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxhc3RDaGVja2VkID0gJFJFVklTSU9OO1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgeyBzdWJ0YWdzLCBzdWJ0YWcsIHN1YnRhZ0J1ZmZlckNhY2hlLCBsYXN0VmFsdWUsIHJldmlzaW9uIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChzdWJ0YWcgIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgc3VidGFnVmFsdWUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcblxuICAgICAgICAgIGlmIChzdWJ0YWdWYWx1ZSA9PT0gc3VidGFnQnVmZmVyQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIGxhc3RWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0ZW1wb3JhcnkgYnVmZmVyIGNhY2hlXG4gICAgICAgICAgICB0aGlzLnN1YnRhZ0J1ZmZlckNhY2hlID0gbnVsbDtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIHN1YnRhZ1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VidGFncyAhPT0gbnVsbCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VidGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gc3VidGFnc1tpXVtDT01QVVRFXSgpO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heCh2YWx1ZSwgcmV2aXNpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gcmV2aXNpb247XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlKF90YWc6IFVwZGF0YWJsZVRhZywgX3N1YnRhZzogVGFnKSB7XG4gICAgaWYgKERFQlVHICYmIF90YWdbVFlQRV0gIT09IE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byB1cGRhdGUgYSB0YWcgdGhhdCB3YXMgbm90IHVwZGF0YWJsZScpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFRTIDMuNyBzaG91bGQgYWxsb3cgdXMgdG8gZG8gdGhpcyB2aWEgYXNzZXJ0aW9uXG4gICAgbGV0IHRhZyA9IF90YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuICAgIGxldCBzdWJ0YWcgPSBfc3VidGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbDtcblxuICAgIGlmIChzdWJ0YWcgPT09IENPTlNUQU5UX1RBRykge1xuICAgICAgdGFnLnN1YnRhZyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgd2hlbiB1cGRhdGluZyBhIHN1YnRhZzpcbiAgICAgIC8vXG4gICAgICAvLyAxLiBzdWJ0YWdbQ09NUFVURV0oKSA8PSB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vIDIuIHN1YnRhZ1tDT01QVVRFXSgpID4gdGFnW0NPTVBVVEVdKCk7XG4gICAgICAvL1xuICAgICAgLy8gVGhlIGZpcnN0IHBvc3NpYmlsaXR5IGlzIGNvbXBsZXRlbHkgZmluZSB3aXRoaW4gb3VyIGNhY2hpbmcgbW9kZWwsIGJ1dFxuICAgICAgLy8gdGhlIHNlY29uZCBwb3NzaWJpbGl0eSBwcmVzZW50cyBhIHByb2JsZW0uIElmIHRoZSBwYXJlbnQgdGFnIGhhc1xuICAgICAgLy8gYWxyZWFkeSBiZWVuIHJlYWQsIHRoZW4gaXQncyB2YWx1ZSBpcyBjYWNoZWQgYW5kIHdpbGwgbm90IHVwZGF0ZSB0b1xuICAgICAgLy8gcmVmbGVjdCB0aGUgc3VidGFnJ3MgZ3JlYXRlciB2YWx1ZS4gTmV4dCB0aW1lIHRoZSBjYWNoZSBpcyBidXN0ZWQsIHRoZVxuICAgICAgLy8gc3VidGFnJ3MgdmFsdWUgX3dpbGxfIGJlIHJlYWQsIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgX2dyZWF0ZXJfIHRoYW5cbiAgICAgIC8vIHRoZSBzYXZlZCBzbmFwc2hvdCBvZiB0aGUgcGFyZW50LCBjYXVzaW5nIHRoZSByZXN1bHRpbmcgY2FsY3VsYXRpb24gdG9cbiAgICAgIC8vIGJlIHJlcnVuIGVycm9uZW91c2x5LlxuICAgICAgLy9cbiAgICAgIC8vIEluIG9yZGVyIHRvIHByZXZlbnQgdGhpcywgd2hlbiB3ZSBmaXJzdCB1cGRhdGUgdG8gYSBuZXcgc3VidGFnIHdlIHN0b3JlXG4gICAgICAvLyBpdHMgY29tcHV0ZWQgdmFsdWUsIGFuZCB0aGVuIGNoZWNrIGFnYWluc3QgdGhhdCBjb21wdXRlZCB2YWx1ZSBvblxuICAgICAgLy8gc3Vic2VxdWVudCB1cGRhdGVzLiBJZiBpdHMgdmFsdWUgaGFzbid0IGNoYW5nZWQsIHRoZW4gd2UgcmV0dXJuIHRoZVxuICAgICAgLy8gcGFyZW50J3MgcHJldmlvdXMgdmFsdWUuIE9uY2UgdGhlIHN1YnRhZyBjaGFuZ2VzIGZvciB0aGUgZmlyc3QgdGltZSxcbiAgICAgIC8vIHdlIGNsZWFyIHRoZSBjYWNoZSBhbmQgZXZlcnl0aGluZyBpcyBmaW5hbGx5IGluIHN5bmMgd2l0aCB0aGUgcGFyZW50LlxuICAgICAgdGFnLnN1YnRhZ0J1ZmZlckNhY2hlID0gc3VidGFnW0NPTVBVVEVdKCk7XG4gICAgICB0YWcuc3VidGFnID0gc3VidGFnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkaXJ0eSh0YWc6IERpcnR5YWJsZVRhZyB8IFVwZGF0YWJsZVRhZykge1xuICAgIGlmIChcbiAgICAgIERFQlVHICYmXG4gICAgICAhKHRhZ1tUWVBFXSA9PT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUgfHwgdGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIGRpcnR5IGEgdGFnIHRoYXQgd2FzIG5vdCBkaXJ0eWFibGUnKTtcbiAgICB9XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIC8vIFVzdWFsbHkgYnkgdGhpcyBwb2ludCwgd2UndmUgYWxyZWFkeSBhc3NlcnRlZCB3aXRoIGJldHRlciBlcnJvciBpbmZvcm1hdGlvbixcbiAgICAgIC8vIGJ1dCB0aGlzIGlzIG91ciBsYXN0IGxpbmUgb2YgZGVmZW5zZS5cbiAgICAgIGFzc2VydFRhZ05vdENvbnN1bWVkISh0YWcpO1xuICAgIH1cblxuICAgICh0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsKS5yZXZpc2lvbiA9ICsrJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkaXJ0eSA9IE1vbm9tb3JwaGljVGFnSW1wbC5kaXJ0eTtcbmV4cG9ydCBjb25zdCB1cGRhdGUgPSBNb25vbW9ycGhpY1RhZ0ltcGwudXBkYXRlO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWcoKTogRGlydHlhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRhYmxlVGFnKCk6IFVwZGF0YWJsZVRhZyB7XG4gIHJldHVybiBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKTtcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09OU1RBTlRfVEFHID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50KSBhcyBDb25zdGFudFRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3QoeyB0YWcgfTogVGFnZ2VkKTogYm9vbGVhbiB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3RUYWcodGFnOiBUYWcpOiB0YWcgaXMgQ29uc3RhbnRUYWcge1xuICByZXR1cm4gdGFnID09PSBDT05TVEFOVF9UQUc7XG59XG5cbi8vLy8vLy8vLy9cblxuY2xhc3MgVm9sYXRpbGVUYWcgaW1wbGVtZW50cyBUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuIFZPTEFUSUxFO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBWT0xBVElMRV9UQUcgPSBuZXcgVm9sYXRpbGVUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5jbGFzcyBDdXJyZW50VGFnIGltcGxlbWVudHMgQ3VycmVudFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1RBRyA9IG5ldyBDdXJyZW50VGFnKCk7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUodGFnczogVGFnW10pOiBUYWcge1xuICBsZXQgb3B0aW1pemVkOiBUYWdbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gdGFncy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBsZXQgdGFnID0gdGFnc1tpXTtcbiAgICBpZiAodGFnID09PSBDT05TVEFOVF9UQUcpIGNvbnRpbnVlO1xuICAgIG9wdGltaXplZC5wdXNoKHRhZyk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlQ29tYmluYXRvclRhZyhvcHRpbWl6ZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tYmluYXRvclRhZyh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIHN3aXRjaCAodGFncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gQ09OU1RBTlRfVEFHO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiB0YWdzWzBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsZXQgdGFnID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3IpIGFzIENvbWJpbmF0b3JUYWc7XG4gICAgICAodGFnIGFzIGFueSkuc3VidGFncyA9IHRhZ3M7XG4gICAgICByZXR1cm4gdGFnO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTU8sTUFBTSxRQUFRLEdBQWQsQ0FBQTs7QUFDQSxNQUFNLE9BQU8sR0FBYixDQUFBOztBQUNBLE1BQU0sUUFBUSxHQUFkLGdCQUFBLEMsQ0FBNkM7OztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBOztBQUVNLFNBQUEsSUFBQSxHQUFjO0FBQ2xCLEVBQUEsU0FBUztFQUdYOzs7QUFFTyxNQUFNLE9BQU8sR0FBa0IsbUJBQS9CLGFBQStCLENBQS9CLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY00sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVTSxTQUFBLFFBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQXRCLE9BQXNCLENBQUgsRUFBbkI7QUFDRDs7QUFpQkQsTUFBTSxJQUFJLEdBQWtCLG1CQUE1QixVQUE0QixDQUE1QjtBQUVPLElBQUEsWUFBQTs7O0FBRVAsSUFBQSxVQUFBLEVBQVc7QUFDVCx5QkFBQSxZQUFZLEdBQUcsSUFBZixPQUFlLEVBQWY7QUFDRDs7QUFxQkQsTUFBQSxrQkFBQSxDQUF3QjtBQWF0QixFQUFBLFdBQUEsQ0FBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FBQSxNQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBS04sU0FBQSxJQUFB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QyxRQUFJLEdBQUcsR0FBRyxJQUFJLENBQWQsQ0FBYyxDQUFkO0FBQ0EsUUFBSSxHQUFHLEtBQVAsWUFBQSxFQUEwQjtBQUMxQixJQUFBLFNBQVMsQ0FBVCxJQUFBLENBQUEsR0FBQTtBQUNEOztBQUVELFNBQU8sbUJBQW1CLENBQTFCLFNBQTBCLENBQTFCO0FBQ0Q7O0FBRUssU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBeUM7QUFDN0MsVUFBUSxJQUFJLENBQVosTUFBQTtBQUNFLFNBQUEsQ0FBQTtBQUNFLGFBQUEsWUFBQTs7QUFDRixTQUFBLENBQUE7QUFDRSxhQUFPLElBQUksQ0FBWCxDQUFXLENBQVg7O0FBQ0Y7QUFDRSxVQUFJLEdBQUcsR0FBRyxJQUFBLGtCQUFBLENBQXNCO0FBQUE7QUFBdEIsT0FBVjtBQUNDLE1BQUEsR0FBVyxDQUFYLE9BQUEsR0FBQSxJQUFBO0FBQ0QsYUFBQSxHQUFBO0FBUko7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IFVuaW9uVG9JbnRlcnNlY3Rpb24sIHN5bWJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgYXNzZXJ0VGFnTm90Q29uc3VtZWQgfSBmcm9tICcuL2RlYnVnJztcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgdHlwZSBSZXZpc2lvbiA9IG51bWJlcjtcblxuZXhwb3J0IGNvbnN0IENPTlNUQU5UOiBSZXZpc2lvbiA9IDA7XG5leHBvcnQgY29uc3QgSU5JVElBTDogUmV2aXNpb24gPSAxO1xuZXhwb3J0IGNvbnN0IFZPTEFUSUxFOiBSZXZpc2lvbiA9IDkwMDcxOTkyNTQ3NDA5OTE7IC8vIE1BWF9JTlRcblxubGV0ICRSRVZJU0lPTiA9IElOSVRJQUw7XG5cbmV4cG9ydCBmdW5jdGlvbiBidW1wKCkge1xuICAkUkVWSVNJT04rKztcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09NUFVURTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX0NPTVBVVEUnKTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUYWc8VD4ge1xuICBbQ09NUFVURV0oKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWcgZXh0ZW5kcyBFbnRpdHlUYWc8UmV2aXNpb24+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnZ2VkPFQ+IHtcbiAgdGFnOiBFbnRpdHlUYWc8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnZ2VkIHtcbiAgdGFnOiBUYWc7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBgdmFsdWVgIHJlY2VpdmVzIGEgdGFnIGFuZCByZXR1cm5zIGFuIG9wYXF1ZSBSZXZpc2lvbiBiYXNlZCBvbiB0aGF0IHRhZy4gVGhpc1xuICogc25hcHNob3QgY2FuIHRoZW4gbGF0ZXIgYmUgcGFzc2VkIHRvIGB2YWxpZGF0ZWAgd2l0aCB0aGUgc2FtZSB0YWcgdG9cbiAqIGRldGVybWluZSBpZiB0aGUgdGFnIGhhcyBjaGFuZ2VkIGF0IGFsbCBzaW5jZSB0aGUgdGltZSB0aGF0IGB2YWx1ZWAgd2FzXG4gKiBjYWxsZWQuXG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgZ2xvYmFsIHJldmlzaW9uIGNvdW50IGRpcmVjdGx5IGZvclxuICogcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGFuZCBzaG91bGQgbm90IGJlXG4gKiByZWxpZWQgb24gZGlyZWN0bHkgYnkgdXNlcnMgb2YgdGhlc2UgQVBJcy4gSW5zdGVhZCwgUmV2aXNpb25zIHNob3VsZCBiZVxuICogdHJlYXRlZCBhcyBpZiB0aGV5IGFyZSBvcGFxdWUvdW5rbm93biwgYW5kIHNob3VsZCBvbmx5IGJlIGludGVyYWN0ZWQgd2l0aCB2aWFcbiAqIHRoZSBgdmFsdWVgL2B2YWxpZGF0ZWAgQVBJLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlKF90YWc6IFRhZyk6IFJldmlzaW9uIHtcbiAgcmV0dXJuICRSRVZJU0lPTjtcbn1cblxuLyoqXG4gKiBgdmFsaWRhdGVgIHJlY2VpdmVzIGEgdGFnIGFuZCBhIHNuYXBzaG90IGZyb20gYSBwcmV2aW91cyBjYWxsIHRvIGB2YWx1ZWAgd2l0aFxuICogdGhlIHNhbWUgdGFnLCBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgdGFnIGlzIHN0aWxsIHZhbGlkIGNvbXBhcmVkIHRvIHRoZVxuICogc25hcHNob3QuIElmIHRoZSB0YWcncyBzdGF0ZSBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlbiwgYHZhbGlkYXRlYCB3aWxsXG4gKiByZXR1cm4gZmFsc2UsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVybiB0cnVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGFcbiAqIGNhbGN1bGF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRhZ3Mgc2hvdWxkIGJlIHJlcnVuLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqIEBwYXJhbSBzbmFwc2hvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodGFnOiBUYWcsIHNuYXBzaG90OiBSZXZpc2lvbikge1xuICByZXR1cm4gc25hcHNob3QgPj0gdGFnW0NPTVBVVEVdKCk7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBUaGlzIGVudW0gcmVwcmVzZW50cyBhbGwgb2YgdGhlIHBvc3NpYmxlIHRhZyB0eXBlcyBmb3IgdGhlIG1vbm9tb3JwaGljIHRhZyBjbGFzcy5cbiAqIE90aGVyIGN1c3RvbSB0YWcgY2xhc3NlcyBjYW4gZXhpc3QsIHN1Y2ggYXMgQ3VycmVudFRhZyBhbmQgVm9sYXRpbGVUYWcsIGJ1dCBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFueSB0eXBlIG9mIHRhZyB0aGF0IGlzIG1lYW50IHRvIGJlIHVzZWQgZnJlcXVlbnRseSBzaG91bGRcbiAqIGJlIGFkZGVkIHRvIHRoZSBtb25vbW9ycGhpYyB0YWcuXG4gKi9cbmNvbnN0IGVudW0gTW9ub21vcnBoaWNUYWdUeXBlcyB7XG4gIERpcnR5YWJsZSxcbiAgVXBkYXRhYmxlLFxuICBDb21iaW5hdG9yLFxuICBDb25zdGFudCxcbn1cblxuY29uc3QgVFlQRTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX1RZUEUnKTtcblxuZXhwb3J0IGxldCBBTExPV19DWUNMRVM6IFdlYWtNYXA8VGFnLCBib29sZWFuPiB8IHVuZGVmaW5lZDtcblxuaWYgKERFQlVHKSB7XG4gIEFMTE9XX0NZQ0xFUyA9IG5ldyBXZWFrTWFwKCk7XG59XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ0Jhc2U8VCBleHRlbmRzIE1vbm9tb3JwaGljVGFnVHlwZXM+IGV4dGVuZHMgVGFnIHtcbiAgW1RZUEVdOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcnR5YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRhYmxlVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlPiB7fVxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5hdG9yVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RhbnRUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5Db25zdGFudD4ge31cblxuaW50ZXJmYWNlIE1vbm9tb3JwaGljVGFnTWFwcGluZyB7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZV06IERpcnR5YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlXTogVXBkYXRhYmxlVGFnO1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yXTogQ29tYmluYXRvclRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnRdOiBDb25zdGFudFRhZztcbn1cblxudHlwZSBNb25vbW9ycGhpY1RhZyA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdNYXBwaW5nW01vbm9tb3JwaGljVGFnVHlwZXNdPjtcbnR5cGUgTW9ub21vcnBoaWNUYWdUeXBlID0gVW5pb25Ub0ludGVyc2VjdGlvbjxNb25vbW9ycGhpY1RhZ1R5cGVzPjtcblxuY2xhc3MgTW9ub21vcnBoaWNUYWdJbXBsIGltcGxlbWVudHMgTW9ub21vcnBoaWNUYWcge1xuICBwcml2YXRlIHJldmlzaW9uID0gSU5JVElBTDtcbiAgcHJpdmF0ZSBsYXN0Q2hlY2tlZCA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdFZhbHVlID0gSU5JVElBTDtcblxuICBwcml2YXRlIGlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJ0YWdzOiBUYWdbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc3VidGFnOiBUYWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdWJ0YWdCdWZmZXJDYWNoZTogUmV2aXNpb24gfCBudWxsID0gbnVsbDtcblxuICBbVFlQRV06IE1vbm9tb3JwaGljVGFnVHlwZTtcblxuICBjb25zdHJ1Y3Rvcih0eXBlOiBNb25vbW9ycGhpY1RhZ1R5cGVzKSB7XG4gICAgdGhpc1tUWVBFXSA9IHR5cGUgYXMgTW9ub21vcnBoaWNUYWdUeXBlO1xuICB9XG5cbiAgW0NPTVBVVEVdKCk6IFJldmlzaW9uIHtcbiAgICBsZXQgeyBsYXN0Q2hlY2tlZCB9ID0gdGhpcztcblxuICAgIGlmICh0aGlzLmlzVXBkYXRpbmcgPT09IHRydWUpIHtcbiAgICAgIGlmIChERUJVRyAmJiAhQUxMT1dfQ1lDTEVTIS5oYXModGhpcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDeWNsZXMgaW4gdGFncyBhcmUgbm90IGFsbG93ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0Q2hlY2tlZCA9ICsrJFJFVklTSU9OO1xuICAgIH0gZWxzZSBpZiAobGFzdENoZWNrZWQgIT09ICRSRVZJU0lPTikge1xuICAgICAgdGhpcy5pc1VwZGF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSAkUkVWSVNJT047XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCB7IHN1YnRhZ3MsIHN1YnRhZywgc3VidGFnQnVmZmVyQ2FjaGUsIGxhc3RWYWx1ZSwgcmV2aXNpb24gfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHN1YnRhZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGxldCBzdWJ0YWdWYWx1ZSA9IHN1YnRhZ1tDT01QVVRFXSgpO1xuXG4gICAgICAgICAgaWYgKHN1YnRhZ1ZhbHVlID09PSBzdWJ0YWdCdWZmZXJDYWNoZSkge1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgbGFzdFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHRlbXBvcmFyeSBidWZmZXIgY2FjaGVcbiAgICAgICAgICAgIHRoaXMuc3VidGFnQnVmZmVyQ2FjaGUgPSBudWxsO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgc3VidGFnVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJ0YWdzICE9PSBudWxsKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJ0YWdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBzdWJ0YWdzW2ldW0NPTVBVVEVdKCk7XG4gICAgICAgICAgICByZXZpc2lvbiA9IE1hdGgubWF4KHZhbHVlLCByZXZpc2lvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSByZXZpc2lvbjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhc3RWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGUoX3RhZzogVXBkYXRhYmxlVGFnLCBfc3VidGFnOiBUYWcpIHtcbiAgICBpZiAoREVCVUcgJiYgX3RhZ1tUWVBFXSAhPT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhIHRhZyB0aGF0IHdhcyBub3QgdXBkYXRhYmxlJyk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVFMgMy43IHNob3VsZCBhbGxvdyB1cyB0byBkbyB0aGlzIHZpYSBhc3NlcnRpb25cbiAgICBsZXQgdGFnID0gX3RhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGw7XG4gICAgbGV0IHN1YnRhZyA9IF9zdWJ0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuXG4gICAgaWYgKHN1YnRhZyA9PT0gQ09OU1RBTlRfVEFHKSB7XG4gICAgICB0YWcuc3VidGFnID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgcG9zc2liaWxpdGllcyB3aGVuIHVwZGF0aW5nIGEgc3VidGFnOlxuICAgICAgLy9cbiAgICAgIC8vIDEuIHN1YnRhZ1tDT01QVVRFXSgpIDw9IHRhZ1tDT01QVVRFXSgpO1xuICAgICAgLy8gMi4gc3VidGFnW0NPTVBVVEVdKCkgPiB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vXG4gICAgICAvLyBUaGUgZmlyc3QgcG9zc2liaWxpdHkgaXMgY29tcGxldGVseSBmaW5lIHdpdGhpbiBvdXIgY2FjaGluZyBtb2RlbCwgYnV0XG4gICAgICAvLyB0aGUgc2Vjb25kIHBvc3NpYmlsaXR5IHByZXNlbnRzIGEgcHJvYmxlbS4gSWYgdGhlIHBhcmVudCB0YWcgaGFzXG4gICAgICAvLyBhbHJlYWR5IGJlZW4gcmVhZCwgdGhlbiBpdCdzIHZhbHVlIGlzIGNhY2hlZCBhbmQgd2lsbCBub3QgdXBkYXRlIHRvXG4gICAgICAvLyByZWZsZWN0IHRoZSBzdWJ0YWcncyBncmVhdGVyIHZhbHVlLiBOZXh0IHRpbWUgdGhlIGNhY2hlIGlzIGJ1c3RlZCwgdGhlXG4gICAgICAvLyBzdWJ0YWcncyB2YWx1ZSBfd2lsbF8gYmUgcmVhZCwgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBfZ3JlYXRlcl8gdGhhblxuICAgICAgLy8gdGhlIHNhdmVkIHNuYXBzaG90IG9mIHRoZSBwYXJlbnQsIGNhdXNpbmcgdGhlIHJlc3VsdGluZyBjYWxjdWxhdGlvbiB0b1xuICAgICAgLy8gYmUgcmVydW4gZXJyb25lb3VzbHkuXG4gICAgICAvL1xuICAgICAgLy8gSW4gb3JkZXIgdG8gcHJldmVudCB0aGlzLCB3aGVuIHdlIGZpcnN0IHVwZGF0ZSB0byBhIG5ldyBzdWJ0YWcgd2Ugc3RvcmVcbiAgICAgIC8vIGl0cyBjb21wdXRlZCB2YWx1ZSwgYW5kIHRoZW4gY2hlY2sgYWdhaW5zdCB0aGF0IGNvbXB1dGVkIHZhbHVlIG9uXG4gICAgICAvLyBzdWJzZXF1ZW50IHVwZGF0ZXMuIElmIGl0cyB2YWx1ZSBoYXNuJ3QgY2hhbmdlZCwgdGhlbiB3ZSByZXR1cm4gdGhlXG4gICAgICAvLyBwYXJlbnQncyBwcmV2aW91cyB2YWx1ZS4gT25jZSB0aGUgc3VidGFnIGNoYW5nZXMgZm9yIHRoZSBmaXJzdCB0aW1lLFxuICAgICAgLy8gd2UgY2xlYXIgdGhlIGNhY2hlIGFuZCBldmVyeXRoaW5nIGlzIGZpbmFsbHkgaW4gc3luYyB3aXRoIHRoZSBwYXJlbnQuXG4gICAgICB0YWcuc3VidGFnQnVmZmVyQ2FjaGUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcbiAgICAgIHRhZy5zdWJ0YWcgPSBzdWJ0YWc7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRpcnR5KHRhZzogRGlydHlhYmxlVGFnIHwgVXBkYXRhYmxlVGFnKSB7XG4gICAgaWYgKFxuICAgICAgREVCVUcgJiZcbiAgICAgICEodGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZSB8fCB0YWdbVFlQRV0gPT09IE1vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gZGlydHkgYSB0YWcgdGhhdCB3YXMgbm90IGRpcnR5YWJsZScpO1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgLy8gVXN1YWxseSBieSB0aGlzIHBvaW50LCB3ZSd2ZSBhbHJlYWR5IGFzc2VydGVkIHdpdGggYmV0dGVyIGVycm9yIGluZm9ybWF0aW9uLFxuICAgICAgLy8gYnV0IHRoaXMgaXMgb3VyIGxhc3QgbGluZSBvZiBkZWZlbnNlLlxuICAgICAgYXNzZXJ0VGFnTm90Q29uc3VtZWQhKHRhZyk7XG4gICAgfVxuXG4gICAgKHRhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGwpLnJldmlzaW9uID0gKyskUkVWSVNJT047XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRpcnR5ID0gTW9ub21vcnBoaWNUYWdJbXBsLmRpcnR5O1xuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IE1vbm9tb3JwaGljVGFnSW1wbC51cGRhdGU7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhZygpOiBEaXJ0eWFibGVUYWcge1xuICByZXR1cm4gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVcGRhdGFibGVUYWcoKTogVXBkYXRhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpO1xufVxuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVF9UQUcgPSBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQpIGFzIENvbnN0YW50VGFnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdCh7IHRhZyB9OiBUYWdnZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRhZyA9PT0gQ09OU1RBTlRfVEFHO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdFRhZyh0YWc6IFRhZyk6IHRhZyBpcyBDb25zdGFudFRhZyB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY2xhc3MgVm9sYXRpbGVUYWcgaW1wbGVtZW50cyBUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuIFZPTEFUSUxFO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBWT0xBVElMRV9UQUcgPSBuZXcgVm9sYXRpbGVUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY2xhc3MgQ3VycmVudFRhZyBpbXBsZW1lbnRzIEN1cnJlbnRUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuICRSRVZJU0lPTjtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ1VSUkVOVF9UQUcgPSBuZXcgQ3VycmVudFRhZygpO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lKHRhZ3M6IFRhZ1tdKTogVGFnIHtcbiAgbGV0IG9wdGltaXplZDogVGFnW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMCwgbCA9IHRhZ3MubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgbGV0IHRhZyA9IHRhZ3NbaV07XG4gICAgaWYgKHRhZyA9PT0gQ09OU1RBTlRfVEFHKSBjb250aW51ZTtcbiAgICBvcHRpbWl6ZWQucHVzaCh0YWcpO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUNvbWJpbmF0b3JUYWcob3B0aW1pemVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbWJpbmF0b3JUYWcodGFnczogVGFnW10pOiBUYWcge1xuICBzd2l0Y2ggKHRhZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuIENPTlNUQU5UX1RBRztcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gdGFnc1swXTtcbiAgICBkZWZhdWx0OlxuICAgICAgbGV0IHRhZyA9IG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yKSBhcyBDb21iaW5hdG9yVGFnO1xuICAgICAgKHRhZyBhcyBhbnkpLnN1YnRhZ3MgPSB0YWdzO1xuICAgICAgcmV0dXJuIHRhZztcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -60,2 +60,8 @@ "use strict";

});
Object.defineProperty(exports, "CurrentTag", {
enumerable: true,
get: function () {
return _validators.CurrentTag;
}
});
Object.defineProperty(exports, "CURRENT_TAG", {

@@ -109,2 +115,8 @@ enumerable: true,

});
Object.defineProperty(exports, "VolatileTag", {
enumerable: true,
get: function () {
return _validators.VolatileTag;
}
});
Object.defineProperty(exports, "VOLATILE_TAG", {

@@ -202,2 +214,2 @@ enumerable: true,

var _debug = require("./lib/debug");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUErQkE7O0FBRUE7O0FBRUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBTExPV19DWUNMRVMsXG4gIGJ1bXAsXG4gIENvbWJpbmF0b3JUYWcsXG4gIGNvbWJpbmUsXG4gIENPTVBVVEUsXG4gIENPTlNUQU5UX1RBRyxcbiAgQ09OU1RBTlQsXG4gIENvbnN0YW50VGFnLFxuICBjcmVhdGVDb21iaW5hdG9yVGFnLFxuICBjcmVhdGVUYWcsXG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgQ1VSUkVOVF9UQUcsXG4gIGRpcnR5LFxuICBEaXJ0eWFibGVUYWcsXG4gIEVudGl0eVRhZyxcbiAgRW50aXR5VGFnZ2VkLFxuICBJTklUSUFMLFxuICBpc0NvbnN0LFxuICBpc0NvbnN0VGFnLFxuICBSZXZpc2lvbixcbiAgVGFnLFxuICBUYWdnZWQsXG4gIFVwZGF0YWJsZVRhZyxcbiAgdXBkYXRlLFxuICB2YWxpZGF0ZSxcbiAgdmFsdWUsXG4gIFZPTEFUSUxFX1RBRyxcbiAgVk9MQVRJTEUsXG59IGZyb20gJy4vbGliL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgeyBkaXJ0eVRhZ0ZvciwgdGFnRm9yLCBzZXRQcm9wZXJ0eURpZENoYW5nZSB9IGZyb20gJy4vbGliL21ldGEnO1xuXG5leHBvcnQgeyBjb25zdW1lLCBFUE9DSCwgaXNUcmFja2luZywgdHJhY2ssIHRyYWNrZWREYXRhLCB1bnRyYWNrIH0gZnJvbSAnLi9saWIvdHJhY2tpbmcnO1xuXG5leHBvcnQge1xuICBzZXRBdXRvdHJhY2tpbmdUcmFuc2FjdGlvbkVudixcbiAgcnVuSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9saWIvZGVidWcnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFpQ0E7O0FBRUE7O0FBRUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBTExPV19DWUNMRVMsXG4gIGJ1bXAsXG4gIENvbWJpbmF0b3JUYWcsXG4gIGNvbWJpbmUsXG4gIENPTVBVVEUsXG4gIENPTlNUQU5UX1RBRyxcbiAgQ09OU1RBTlQsXG4gIENvbnN0YW50VGFnLFxuICBjcmVhdGVDb21iaW5hdG9yVGFnLFxuICBjcmVhdGVUYWcsXG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgQ3VycmVudFRhZyxcbiAgQ1VSUkVOVF9UQUcsXG4gIGRpcnR5LFxuICBEaXJ0eWFibGVUYWcsXG4gIEVudGl0eVRhZyxcbiAgRW50aXR5VGFnZ2VkLFxuICBJTklUSUFMLFxuICBpc0NvbnN0LFxuICBpc0NvbnN0VGFnLFxuICBSZXZpc2lvbixcbiAgVGFnLFxuICBUYWdnZWQsXG4gIFVwZGF0YWJsZVRhZyxcbiAgdXBkYXRlLFxuICB2YWxpZGF0ZSxcbiAgdmFsdWUsXG4gIFZvbGF0aWxlVGFnLFxuICBWT0xBVElMRV9UQUcsXG4gIFZPTEFUSUxFLFxufSBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgZGlydHlUYWdGb3IsIHRhZ0Zvciwgc2V0UHJvcGVydHlEaWRDaGFuZ2UgfSBmcm9tICcuL2xpYi9tZXRhJztcblxuZXhwb3J0IHsgY29uc3VtZSwgRVBPQ0gsIGlzVHJhY2tpbmcsIHRyYWNrLCB0cmFja2VkRGF0YSwgdW50cmFjayB9IGZyb20gJy4vbGliL3RyYWNraW5nJztcblxuZXhwb3J0IHtcbiAgc2V0QXV0b3RyYWNraW5nVHJhbnNhY3Rpb25FbnYsXG4gIHJ1bkluQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vbGliL2RlYnVnJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -15,3 +15,3 @@ "use strict";

exports.createCombinatorTag = createCombinatorTag;
exports.CURRENT_TAG = exports.VOLATILE_TAG = exports.CONSTANT_TAG = exports.update = exports.dirty = exports.ALLOW_CYCLES = exports.COMPUTE = exports.VOLATILE = exports.INITIAL = exports.CONSTANT = void 0;
exports.CURRENT_TAG = exports.CurrentTag = exports.VOLATILE_TAG = exports.VolatileTag = exports.CONSTANT_TAG = exports.update = exports.dirty = exports.ALLOW_CYCLES = exports.COMPUTE = exports.VOLATILE = exports.INITIAL = exports.CONSTANT = void 0;

@@ -255,2 +255,3 @@ var _env = require("@glimmer/env");

exports.VolatileTag = VolatileTag;
var VOLATILE_TAG = new VolatileTag(); //////////

@@ -274,2 +275,3 @@

exports.CurrentTag = CurrentTag;
var CURRENT_TAG = new CurrentTag(); //////////

@@ -307,2 +309,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTU8sSUFBTSxRQUFRLEdBQWQsQ0FBQTs7QUFDQSxJQUFNLE9BQU8sR0FBYixDQUFBOztBQUNBLElBQU0sUUFBUSxHQUFkLGdCQUFBLEMsQ0FBNkM7OztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBOztBQUVNLFNBQUEsSUFBQSxHQUFjO0FBQ2xCLEVBQUEsU0FBUztFQUdYOzs7QUFFTyxJQUFNLE9BQU8sR0FBa0IsbUJBQS9CLGFBQStCLENBQS9CLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY00sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVTSxTQUFBLFFBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQXRCLE9BQXNCLENBQUgsRUFBbkI7QUFDRDs7QUFpQkQsSUFBTSxJQUFJLEdBQWtCLG1CQUE1QixVQUE0QixDQUE1QjtBQUVPLElBQUEsWUFBQTs7O0FBRVAsSUFBQSxVQUFBLEVBQVc7QUFDVCx5QkFBQSxZQUFZLEdBQUcsSUFBZixPQUFlLEVBQWY7QUFDRDs7SUFxQkQsa0I7OztBQWFFLFdBQUEsa0JBQUEsQ0FBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FBQSxNQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBS04sU0FBQSxJQUFBLElBQUEsSUFBQTtB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RUFBNkM7QUFDM0MsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFkLENBQWMsQ0FBZDtBQUNBLFFBQUksR0FBRyxLQUFQLFlBQUEsRUFBMEI7QUFDMUIsSUFBQSxTQUFTLENBQVQsSUFBQSxDQUFBLEdBQUE7QUFDRDs7QUFFRCxTQUFPLG1CQUFtQixDQUExQixTQUEwQixDQUExQjtBQUNEOztBQUVLLFNBQUEsbUJBQUEsQ0FBQSxJQUFBLEVBQXlDO0FBQzdDLFVBQVEsSUFBSSxDQUFaLE1BQUE7QUFDRSxTQUFBLENBQUE7QUFDRSxhQUFBLFlBQUE7O0FBQ0YsU0FBQSxDQUFBO0FBQ0UsYUFBTyxJQUFJLENBQVgsQ0FBVyxDQUFYOztBQUNGO0FBQ0UsVUFBSSxHQUFHLEdBQUcsSUFBQSxrQkFBQSxDQUFzQjtBQUFBO0FBQXRCLE9BQVY7QUFDQyxNQUFBLEdBQVcsQ0FBWCxPQUFBLEdBQUEsSUFBQTtBQUNELGFBQUEsR0FBQTtBQVJKO0FBVUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBVbmlvblRvSW50ZXJzZWN0aW9uLCBzeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGFzc2VydFRhZ05vdENvbnN1bWVkIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgUmV2aXNpb24gPSBudW1iZXI7XG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVDogUmV2aXNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IElOSVRJQUw6IFJldmlzaW9uID0gMTtcbmV4cG9ydCBjb25zdCBWT0xBVElMRTogUmV2aXNpb24gPSA5MDA3MTk5MjU0NzQwOTkxOyAvLyBNQVhfSU5UXG5cbmxldCAkUkVWSVNJT04gPSBJTklUSUFMO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVtcCgpIHtcbiAgJFJFVklTSU9OKys7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNvbnN0IENPTVBVVEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19DT01QVVRFJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnPFQ+IHtcbiAgW0NPTVBVVEVdKCk6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIGV4dGVuZHMgRW50aXR5VGFnPFJldmlzaW9uPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVRhZ2dlZDxUPiB7XG4gIHRhZzogRW50aXR5VGFnPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ2dlZCB7XG4gIHRhZzogVGFnO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogYHZhbHVlYCByZWNlaXZlcyBhIHRhZyBhbmQgcmV0dXJucyBhbiBvcGFxdWUgUmV2aXNpb24gYmFzZWQgb24gdGhhdCB0YWcuIFRoaXNcbiAqIHNuYXBzaG90IGNhbiB0aGVuIGxhdGVyIGJlIHBhc3NlZCB0byBgdmFsaWRhdGVgIHdpdGggdGhlIHNhbWUgdGFnIHRvXG4gKiBkZXRlcm1pbmUgaWYgdGhlIHRhZyBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlIHRpbWUgdGhhdCBgdmFsdWVgIHdhc1xuICogY2FsbGVkLlxuICpcbiAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGdsb2JhbCByZXZpc2lvbiBjb3VudCBkaXJlY3RseSBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBhbmQgc2hvdWxkIG5vdCBiZVxuICogcmVsaWVkIG9uIGRpcmVjdGx5IGJ5IHVzZXJzIG9mIHRoZXNlIEFQSXMuIEluc3RlYWQsIFJldmlzaW9ucyBzaG91bGQgYmVcbiAqIHRyZWF0ZWQgYXMgaWYgdGhleSBhcmUgb3BhcXVlL3Vua25vd24sIGFuZCBzaG91bGQgb25seSBiZSBpbnRlcmFjdGVkIHdpdGggdmlhXG4gKiB0aGUgYHZhbHVlYC9gdmFsaWRhdGVgIEFQSS5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZShfdGFnOiBUYWcpOiBSZXZpc2lvbiB7XG4gIHJldHVybiAkUkVWSVNJT047XG59XG5cbi8qKlxuICogYHZhbGlkYXRlYCByZWNlaXZlcyBhIHRhZyBhbmQgYSBzbmFwc2hvdCBmcm9tIGEgcHJldmlvdXMgY2FsbCB0byBgdmFsdWVgIHdpdGhcbiAqIHRoZSBzYW1lIHRhZywgYW5kIGRldGVybWluZXMgaWYgdGhlIHRhZyBpcyBzdGlsbCB2YWxpZCBjb21wYXJlZCB0byB0aGVcbiAqIHNuYXBzaG90LiBJZiB0aGUgdGFnJ3Mgc3RhdGUgaGFzIGNoYW5nZWQgYXQgYWxsIHNpbmNlIHRoZW4sIGB2YWxpZGF0ZWAgd2lsbFxuICogcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgaXQgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhXG4gKiBjYWxjdWxhdGlvbiByZWxhdGVkIHRvIHRoZSB0YWdzIHNob3VsZCBiZSByZXJ1bi5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKiBAcGFyYW0gc25hcHNob3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHRhZzogVGFnLCBzbmFwc2hvdDogUmV2aXNpb24pIHtcbiAgcmV0dXJuIHNuYXBzaG90ID49IHRhZ1tDT01QVVRFXSgpO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgYWxsIG9mIHRoZSBwb3NzaWJsZSB0YWcgdHlwZXMgZm9yIHRoZSBtb25vbW9ycGhpYyB0YWcgY2xhc3MuXG4gKiBPdGhlciBjdXN0b20gdGFnIGNsYXNzZXMgY2FuIGV4aXN0LCBzdWNoIGFzIEN1cnJlbnRUYWcgYW5kIFZvbGF0aWxlVGFnLCBidXQgZm9yXG4gKiBwZXJmb3JtYW5jZSByZWFzb25zLCBhbnkgdHlwZSBvZiB0YWcgdGhhdCBpcyBtZWFudCB0byBiZSB1c2VkIGZyZXF1ZW50bHkgc2hvdWxkXG4gKiBiZSBhZGRlZCB0byB0aGUgbW9ub21vcnBoaWMgdGFnLlxuICovXG5jb25zdCBlbnVtIE1vbm9tb3JwaGljVGFnVHlwZXMge1xuICBEaXJ0eWFibGUsXG4gIFVwZGF0YWJsZSxcbiAgQ29tYmluYXRvcixcbiAgQ29uc3RhbnQsXG59XG5cbmNvbnN0IFRZUEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19UWVBFJyk7XG5cbmV4cG9ydCBsZXQgQUxMT1dfQ1lDTEVTOiBXZWFrTWFwPFRhZywgYm9vbGVhbj4gfCB1bmRlZmluZWQ7XG5cbmlmIChERUJVRykge1xuICBBTExPV19DWUNMRVMgPSBuZXcgV2Vha01hcCgpO1xufVxuXG5pbnRlcmZhY2UgTW9ub21vcnBoaWNUYWdCYXNlPFQgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ1R5cGVzPiBleHRlbmRzIFRhZyB7XG4gIFtUWVBFXTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJ0eWFibGVUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGU+IHt9XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRvclRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3I+IHt9XG5leHBvcnQgaW50ZXJmYWNlIENvbnN0YW50VGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQ+IHt9XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ01hcHBpbmcge1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGVdOiBEaXJ0eWFibGVUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZV06IFVwZGF0YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcl06IENvbWJpbmF0b3JUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50XTogQ29uc3RhbnRUYWc7XG59XG5cbnR5cGUgTW9ub21vcnBoaWNUYWcgPSBVbmlvblRvSW50ZXJzZWN0aW9uPE1vbm9tb3JwaGljVGFnTWFwcGluZ1tNb25vbW9ycGhpY1RhZ1R5cGVzXT47XG50eXBlIE1vbm9tb3JwaGljVGFnVHlwZSA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdUeXBlcz47XG5cbmNsYXNzIE1vbm9tb3JwaGljVGFnSW1wbCBpbXBsZW1lbnRzIE1vbm9tb3JwaGljVGFnIHtcbiAgcHJpdmF0ZSByZXZpc2lvbiA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdENoZWNrZWQgPSBJTklUSUFMO1xuICBwcml2YXRlIGxhc3RWYWx1ZSA9IElOSVRJQUw7XG5cbiAgcHJpdmF0ZSBpc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc3VidGFnczogVGFnW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHN1YnRhZzogVGFnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3VidGFnQnVmZmVyQ2FjaGU6IFJldmlzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgW1RZUEVdOiBNb25vbW9ycGhpY1RhZ1R5cGU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogTW9ub21vcnBoaWNUYWdUeXBlcykge1xuICAgIHRoaXNbVFlQRV0gPSB0eXBlIGFzIE1vbm9tb3JwaGljVGFnVHlwZTtcbiAgfVxuXG4gIFtDT01QVVRFXSgpOiBSZXZpc2lvbiB7XG4gICAgbGV0IHsgbGFzdENoZWNrZWQgfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy5pc1VwZGF0aW5nID09PSB0cnVlKSB7XG4gICAgICBpZiAoREVCVUcgJiYgIUFMTE9XX0NZQ0xFUyEuaGFzKHRoaXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ3ljbGVzIGluIHRhZ3MgYXJlIG5vdCBhbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSArKyRSRVZJU0lPTjtcbiAgICB9IGVsc2UgaWYgKGxhc3RDaGVja2VkICE9PSAkUkVWSVNJT04pIHtcbiAgICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxhc3RDaGVja2VkID0gJFJFVklTSU9OO1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgeyBzdWJ0YWdzLCBzdWJ0YWcsIHN1YnRhZ0J1ZmZlckNhY2hlLCBsYXN0VmFsdWUsIHJldmlzaW9uIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChzdWJ0YWcgIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgc3VidGFnVmFsdWUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcblxuICAgICAgICAgIGlmIChzdWJ0YWdWYWx1ZSA9PT0gc3VidGFnQnVmZmVyQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIGxhc3RWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0ZW1wb3JhcnkgYnVmZmVyIGNhY2hlXG4gICAgICAgICAgICB0aGlzLnN1YnRhZ0J1ZmZlckNhY2hlID0gbnVsbDtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIHN1YnRhZ1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VidGFncyAhPT0gbnVsbCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VidGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gc3VidGFnc1tpXVtDT01QVVRFXSgpO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heCh2YWx1ZSwgcmV2aXNpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gcmV2aXNpb247XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlKF90YWc6IFVwZGF0YWJsZVRhZywgX3N1YnRhZzogVGFnKSB7XG4gICAgaWYgKERFQlVHICYmIF90YWdbVFlQRV0gIT09IE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byB1cGRhdGUgYSB0YWcgdGhhdCB3YXMgbm90IHVwZGF0YWJsZScpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFRTIDMuNyBzaG91bGQgYWxsb3cgdXMgdG8gZG8gdGhpcyB2aWEgYXNzZXJ0aW9uXG4gICAgbGV0IHRhZyA9IF90YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuICAgIGxldCBzdWJ0YWcgPSBfc3VidGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbDtcblxuICAgIGlmIChzdWJ0YWcgPT09IENPTlNUQU5UX1RBRykge1xuICAgICAgdGFnLnN1YnRhZyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgd2hlbiB1cGRhdGluZyBhIHN1YnRhZzpcbiAgICAgIC8vXG4gICAgICAvLyAxLiBzdWJ0YWdbQ09NUFVURV0oKSA8PSB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vIDIuIHN1YnRhZ1tDT01QVVRFXSgpID4gdGFnW0NPTVBVVEVdKCk7XG4gICAgICAvL1xuICAgICAgLy8gVGhlIGZpcnN0IHBvc3NpYmlsaXR5IGlzIGNvbXBsZXRlbHkgZmluZSB3aXRoaW4gb3VyIGNhY2hpbmcgbW9kZWwsIGJ1dFxuICAgICAgLy8gdGhlIHNlY29uZCBwb3NzaWJpbGl0eSBwcmVzZW50cyBhIHByb2JsZW0uIElmIHRoZSBwYXJlbnQgdGFnIGhhc1xuICAgICAgLy8gYWxyZWFkeSBiZWVuIHJlYWQsIHRoZW4gaXQncyB2YWx1ZSBpcyBjYWNoZWQgYW5kIHdpbGwgbm90IHVwZGF0ZSB0b1xuICAgICAgLy8gcmVmbGVjdCB0aGUgc3VidGFnJ3MgZ3JlYXRlciB2YWx1ZS4gTmV4dCB0aW1lIHRoZSBjYWNoZSBpcyBidXN0ZWQsIHRoZVxuICAgICAgLy8gc3VidGFnJ3MgdmFsdWUgX3dpbGxfIGJlIHJlYWQsIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgX2dyZWF0ZXJfIHRoYW5cbiAgICAgIC8vIHRoZSBzYXZlZCBzbmFwc2hvdCBvZiB0aGUgcGFyZW50LCBjYXVzaW5nIHRoZSByZXN1bHRpbmcgY2FsY3VsYXRpb24gdG9cbiAgICAgIC8vIGJlIHJlcnVuIGVycm9uZW91c2x5LlxuICAgICAgLy9cbiAgICAgIC8vIEluIG9yZGVyIHRvIHByZXZlbnQgdGhpcywgd2hlbiB3ZSBmaXJzdCB1cGRhdGUgdG8gYSBuZXcgc3VidGFnIHdlIHN0b3JlXG4gICAgICAvLyBpdHMgY29tcHV0ZWQgdmFsdWUsIGFuZCB0aGVuIGNoZWNrIGFnYWluc3QgdGhhdCBjb21wdXRlZCB2YWx1ZSBvblxuICAgICAgLy8gc3Vic2VxdWVudCB1cGRhdGVzLiBJZiBpdHMgdmFsdWUgaGFzbid0IGNoYW5nZWQsIHRoZW4gd2UgcmV0dXJuIHRoZVxuICAgICAgLy8gcGFyZW50J3MgcHJldmlvdXMgdmFsdWUuIE9uY2UgdGhlIHN1YnRhZyBjaGFuZ2VzIGZvciB0aGUgZmlyc3QgdGltZSxcbiAgICAgIC8vIHdlIGNsZWFyIHRoZSBjYWNoZSBhbmQgZXZlcnl0aGluZyBpcyBmaW5hbGx5IGluIHN5bmMgd2l0aCB0aGUgcGFyZW50LlxuICAgICAgdGFnLnN1YnRhZ0J1ZmZlckNhY2hlID0gc3VidGFnW0NPTVBVVEVdKCk7XG4gICAgICB0YWcuc3VidGFnID0gc3VidGFnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkaXJ0eSh0YWc6IERpcnR5YWJsZVRhZyB8IFVwZGF0YWJsZVRhZykge1xuICAgIGlmIChcbiAgICAgIERFQlVHICYmXG4gICAgICAhKHRhZ1tUWVBFXSA9PT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUgfHwgdGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIGRpcnR5IGEgdGFnIHRoYXQgd2FzIG5vdCBkaXJ0eWFibGUnKTtcbiAgICB9XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIC8vIFVzdWFsbHkgYnkgdGhpcyBwb2ludCwgd2UndmUgYWxyZWFkeSBhc3NlcnRlZCB3aXRoIGJldHRlciBlcnJvciBpbmZvcm1hdGlvbixcbiAgICAgIC8vIGJ1dCB0aGlzIGlzIG91ciBsYXN0IGxpbmUgb2YgZGVmZW5zZS5cbiAgICAgIGFzc2VydFRhZ05vdENvbnN1bWVkISh0YWcpO1xuICAgIH1cblxuICAgICh0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsKS5yZXZpc2lvbiA9ICsrJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkaXJ0eSA9IE1vbm9tb3JwaGljVGFnSW1wbC5kaXJ0eTtcbmV4cG9ydCBjb25zdCB1cGRhdGUgPSBNb25vbW9ycGhpY1RhZ0ltcGwudXBkYXRlO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWcoKTogRGlydHlhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRhYmxlVGFnKCk6IFVwZGF0YWJsZVRhZyB7XG4gIHJldHVybiBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKTtcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09OU1RBTlRfVEFHID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50KSBhcyBDb25zdGFudFRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3QoeyB0YWcgfTogVGFnZ2VkKTogYm9vbGVhbiB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3RUYWcodGFnOiBUYWcpOiB0YWcgaXMgQ29uc3RhbnRUYWcge1xuICByZXR1cm4gdGFnID09PSBDT05TVEFOVF9UQUc7XG59XG5cbi8vLy8vLy8vLy9cblxuY2xhc3MgVm9sYXRpbGVUYWcgaW1wbGVtZW50cyBUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuIFZPTEFUSUxFO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBWT0xBVElMRV9UQUcgPSBuZXcgVm9sYXRpbGVUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5jbGFzcyBDdXJyZW50VGFnIGltcGxlbWVudHMgQ3VycmVudFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1RBRyA9IG5ldyBDdXJyZW50VGFnKCk7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUodGFnczogVGFnW10pOiBUYWcge1xuICBsZXQgb3B0aW1pemVkOiBUYWdbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gdGFncy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBsZXQgdGFnID0gdGFnc1tpXTtcbiAgICBpZiAodGFnID09PSBDT05TVEFOVF9UQUcpIGNvbnRpbnVlO1xuICAgIG9wdGltaXplZC5wdXNoKHRhZyk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlQ29tYmluYXRvclRhZyhvcHRpbWl6ZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tYmluYXRvclRhZyh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIHN3aXRjaCAodGFncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gQ09OU1RBTlRfVEFHO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiB0YWdzWzBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsZXQgdGFnID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3IpIGFzIENvbWJpbmF0b3JUYWc7XG4gICAgICAodGFnIGFzIGFueSkuc3VidGFncyA9IHRhZ3M7XG4gICAgICByZXR1cm4gdGFnO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBTU8sSUFBTSxRQUFRLEdBQWQsQ0FBQTs7QUFDQSxJQUFNLE9BQU8sR0FBYixDQUFBOztBQUNBLElBQU0sUUFBUSxHQUFkLGdCQUFBLEMsQ0FBNkM7OztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBOztBQUVNLFNBQUEsSUFBQSxHQUFjO0FBQ2xCLEVBQUEsU0FBUztFQUdYOzs7QUFFTyxJQUFNLE9BQU8sR0FBa0IsbUJBQS9CLGFBQStCLENBQS9CLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY00sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7QUFVTSxTQUFBLFFBQUEsQ0FBQSxHQUFBLEVBQUEsUUFBQSxFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQXRCLE9BQXNCLENBQUgsRUFBbkI7QUFDRDs7QUFpQkQsSUFBTSxJQUFJLEdBQWtCLG1CQUE1QixVQUE0QixDQUE1QjtBQUVPLElBQUEsWUFBQTs7O0FBRVAsSUFBQSxVQUFBLEVBQVc7QUFDVCx5QkFBQSxZQUFZLEdBQUcsSUFBZixPQUFlLEVBQWY7QUFDRDs7SUFxQkQsa0I7OztBQWFFLFdBQUEsa0JBQUEsQ0FBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FBQSxNQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBS04sU0FBQSxJQUFBLElBQUEsSUFBQTtB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LENBQUEsR0FDRSxZQUFTO0FBQ1AsV0FBQSxTQUFBO0FBRkosR0FBQTs7QUFBQSxTQUFBLFVBQUE7QUFBQSxDQUFBLEVBQUE7OztBQU1PLElBQU0sV0FBVyxHQUFHLElBQXBCLFVBQW9CLEVBQXBCLEMsQ0FFUDs7OztBQUVNLFNBQUEsT0FBQSxDQUFBLElBQUEsRUFBNkI7QUFDakMsTUFBSSxTQUFTLEdBQWIsRUFBQTs7QUFFQSxPQUFLLElBQUksQ0FBQyxHQUFMLENBQUEsRUFBVyxDQUFDLEdBQUcsSUFBSSxDQUF4QixNQUFBLEVBQWlDLENBQUMsR0FBbEMsQ0FBQSxFQUF3QyxDQUF4QyxFQUFBLEVBQTZDO0FBQzNDLFFBQUksR0FBRyxHQUFHLElBQUksQ0FBZCxDQUFjLENBQWQ7QUFDQSxRQUFJLEdBQUcsS0FBUCxZQUFBLEVBQTBCO0FBQzFCLElBQUEsU0FBUyxDQUFULElBQUEsQ0FBQSxHQUFBO0FBQ0Q7O0FBRUQsU0FBTyxtQkFBbUIsQ0FBMUIsU0FBMEIsQ0FBMUI7QUFDRDs7QUFFSyxTQUFBLG1CQUFBLENBQUEsSUFBQSxFQUF5QztBQUM3QyxVQUFRLElBQUksQ0FBWixNQUFBO0FBQ0UsU0FBQSxDQUFBO0FBQ0UsYUFBQSxZQUFBOztBQUNGLFNBQUEsQ0FBQTtBQUNFLGFBQU8sSUFBSSxDQUFYLENBQVcsQ0FBWDs7QUFDRjtBQUNFLFVBQUksR0FBRyxHQUFHLElBQUEsa0JBQUEsQ0FBc0I7QUFBQTtBQUF0QixPQUFWO0FBQ0MsTUFBQSxHQUFXLENBQVgsT0FBQSxHQUFBLElBQUE7QUFDRCxhQUFBLEdBQUE7QUFSSjtBQVVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgVW5pb25Ub0ludGVyc2VjdGlvbiwgc3ltYm9sIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBhc3NlcnRUYWdOb3RDb25zdW1lZCB9IGZyb20gJy4vZGVidWcnO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCB0eXBlIFJldmlzaW9uID0gbnVtYmVyO1xuXG5leHBvcnQgY29uc3QgQ09OU1RBTlQ6IFJldmlzaW9uID0gMDtcbmV4cG9ydCBjb25zdCBJTklUSUFMOiBSZXZpc2lvbiA9IDE7XG5leHBvcnQgY29uc3QgVk9MQVRJTEU6IFJldmlzaW9uID0gOTAwNzE5OTI1NDc0MDk5MTsgLy8gTUFYX0lOVFxuXG5sZXQgJFJFVklTSU9OID0gSU5JVElBTDtcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1bXAoKSB7XG4gICRSRVZJU0lPTisrO1xufVxuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjb25zdCBDT01QVVRFOiB1bmlxdWUgc3ltYm9sID0gc3ltYm9sKCdUQUdfQ09NUFVURScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVRhZzxUPiB7XG4gIFtDT01QVVRFXSgpOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhZyBleHRlbmRzIEVudGl0eVRhZzxSZXZpc2lvbj4ge31cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUYWdnZWQ8VD4ge1xuICB0YWc6IEVudGl0eVRhZzxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdnZWQge1xuICB0YWc6IFRhZztcbn1cblxuLy8vLy8vLy8vL1xuXG4vKipcbiAqIGB2YWx1ZWAgcmVjZWl2ZXMgYSB0YWcgYW5kIHJldHVybnMgYW4gb3BhcXVlIFJldmlzaW9uIGJhc2VkIG9uIHRoYXQgdGFnLiBUaGlzXG4gKiBzbmFwc2hvdCBjYW4gdGhlbiBsYXRlciBiZSBwYXNzZWQgdG8gYHZhbGlkYXRlYCB3aXRoIHRoZSBzYW1lIHRhZyB0b1xuICogZGV0ZXJtaW5lIGlmIHRoZSB0YWcgaGFzIGNoYW5nZWQgYXQgYWxsIHNpbmNlIHRoZSB0aW1lIHRoYXQgYHZhbHVlYCB3YXNcbiAqIGNhbGxlZC5cbiAqXG4gKiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBnbG9iYWwgcmV2aXNpb24gY291bnQgZGlyZWN0bHkgZm9yXG4gKiBwZXJmb3JtYW5jZSByZWFzb25zLiBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgYW5kIHNob3VsZCBub3QgYmVcbiAqIHJlbGllZCBvbiBkaXJlY3RseSBieSB1c2VycyBvZiB0aGVzZSBBUElzLiBJbnN0ZWFkLCBSZXZpc2lvbnMgc2hvdWxkIGJlXG4gKiB0cmVhdGVkIGFzIGlmIHRoZXkgYXJlIG9wYXF1ZS91bmtub3duLCBhbmQgc2hvdWxkIG9ubHkgYmUgaW50ZXJhY3RlZCB3aXRoIHZpYVxuICogdGhlIGB2YWx1ZWAvYHZhbGlkYXRlYCBBUEkuXG4gKlxuICogQHBhcmFtIHRhZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsdWUoX3RhZzogVGFnKTogUmV2aXNpb24ge1xuICByZXR1cm4gJFJFVklTSU9OO1xufVxuXG4vKipcbiAqIGB2YWxpZGF0ZWAgcmVjZWl2ZXMgYSB0YWcgYW5kIGEgc25hcHNob3QgZnJvbSBhIHByZXZpb3VzIGNhbGwgdG8gYHZhbHVlYCB3aXRoXG4gKiB0aGUgc2FtZSB0YWcsIGFuZCBkZXRlcm1pbmVzIGlmIHRoZSB0YWcgaXMgc3RpbGwgdmFsaWQgY29tcGFyZWQgdG8gdGhlXG4gKiBzbmFwc2hvdC4gSWYgdGhlIHRhZydzIHN0YXRlIGhhcyBjaGFuZ2VkIGF0IGFsbCBzaW5jZSB0aGVuLCBgdmFsaWRhdGVgIHdpbGxcbiAqIHJldHVybiBmYWxzZSwgb3RoZXJ3aXNlIGl0IHdpbGwgcmV0dXJuIHRydWUuIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgYVxuICogY2FsY3VsYXRpb24gcmVsYXRlZCB0byB0aGUgdGFncyBzaG91bGQgYmUgcmVydW4uXG4gKlxuICogQHBhcmFtIHRhZ1xuICogQHBhcmFtIHNuYXBzaG90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh0YWc6IFRhZywgc25hcHNob3Q6IFJldmlzaW9uKSB7XG4gIHJldHVybiBzbmFwc2hvdCA+PSB0YWdbQ09NUFVURV0oKTtcbn1cblxuLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRoaXMgZW51bSByZXByZXNlbnRzIGFsbCBvZiB0aGUgcG9zc2libGUgdGFnIHR5cGVzIGZvciB0aGUgbW9ub21vcnBoaWMgdGFnIGNsYXNzLlxuICogT3RoZXIgY3VzdG9tIHRhZyBjbGFzc2VzIGNhbiBleGlzdCwgc3VjaCBhcyBDdXJyZW50VGFnIGFuZCBWb2xhdGlsZVRhZywgYnV0IGZvclxuICogcGVyZm9ybWFuY2UgcmVhc29ucywgYW55IHR5cGUgb2YgdGFnIHRoYXQgaXMgbWVhbnQgdG8gYmUgdXNlZCBmcmVxdWVudGx5IHNob3VsZFxuICogYmUgYWRkZWQgdG8gdGhlIG1vbm9tb3JwaGljIHRhZy5cbiAqL1xuY29uc3QgZW51bSBNb25vbW9ycGhpY1RhZ1R5cGVzIHtcbiAgRGlydHlhYmxlLFxuICBVcGRhdGFibGUsXG4gIENvbWJpbmF0b3IsXG4gIENvbnN0YW50LFxufVxuXG5jb25zdCBUWVBFOiB1bmlxdWUgc3ltYm9sID0gc3ltYm9sKCdUQUdfVFlQRScpO1xuXG5leHBvcnQgbGV0IEFMTE9XX0NZQ0xFUzogV2Vha01hcDxUYWcsIGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xuXG5pZiAoREVCVUcpIHtcbiAgQUxMT1dfQ1lDTEVTID0gbmV3IFdlYWtNYXAoKTtcbn1cblxuaW50ZXJmYWNlIE1vbm9tb3JwaGljVGFnQmFzZTxUIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdUeXBlcz4gZXh0ZW5kcyBUYWcge1xuICBbVFlQRV06IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlydHlhYmxlVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlPiB7fVxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGFibGVUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGU+IHt9XG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0b3JUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yPiB7fVxuZXhwb3J0IGludGVyZmFjZSBDb25zdGFudFRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50PiB7fVxuXG5pbnRlcmZhY2UgTW9ub21vcnBoaWNUYWdNYXBwaW5nIHtcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlXTogRGlydHlhYmxlVGFnO1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGVdOiBVcGRhdGFibGVUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3JdOiBDb21iaW5hdG9yVGFnO1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5Db25zdGFudF06IENvbnN0YW50VGFnO1xufVxuXG50eXBlIE1vbm9tb3JwaGljVGFnID0gVW5pb25Ub0ludGVyc2VjdGlvbjxNb25vbW9ycGhpY1RhZ01hcHBpbmdbTW9ub21vcnBoaWNUYWdUeXBlc10+O1xudHlwZSBNb25vbW9ycGhpY1RhZ1R5cGUgPSBVbmlvblRvSW50ZXJzZWN0aW9uPE1vbm9tb3JwaGljVGFnVHlwZXM+O1xuXG5jbGFzcyBNb25vbW9ycGhpY1RhZ0ltcGwgaW1wbGVtZW50cyBNb25vbW9ycGhpY1RhZyB7XG4gIHByaXZhdGUgcmV2aXNpb24gPSBJTklUSUFMO1xuICBwcml2YXRlIGxhc3RDaGVja2VkID0gSU5JVElBTDtcbiAgcHJpdmF0ZSBsYXN0VmFsdWUgPSBJTklUSUFMO1xuXG4gIHByaXZhdGUgaXNVcGRhdGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnRhZ3M6IFRhZ1tdIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBzdWJ0YWc6IFRhZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN1YnRhZ0J1ZmZlckNhY2hlOiBSZXZpc2lvbiB8IG51bGwgPSBudWxsO1xuXG4gIFtUWVBFXTogTW9ub21vcnBoaWNUYWdUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IE1vbm9tb3JwaGljVGFnVHlwZXMpIHtcbiAgICB0aGlzW1RZUEVdID0gdHlwZSBhcyBNb25vbW9ycGhpY1RhZ1R5cGU7XG4gIH1cblxuICBbQ09NUFVURV0oKTogUmV2aXNpb24ge1xuICAgIGxldCB7IGxhc3RDaGVja2VkIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMuaXNVcGRhdGluZyA9PT0gdHJ1ZSkge1xuICAgICAgaWYgKERFQlVHICYmICFBTExPV19DWUNMRVMhLmhhcyh0aGlzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0N5Y2xlcyBpbiB0YWdzIGFyZSBub3QgYWxsb3dlZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RDaGVja2VkID0gKyskUkVWSVNJT047XG4gICAgfSBlbHNlIGlmIChsYXN0Q2hlY2tlZCAhPT0gJFJFVklTSU9OKSB7XG4gICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5sYXN0Q2hlY2tlZCA9ICRSRVZJU0lPTjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IHsgc3VidGFncywgc3VidGFnLCBzdWJ0YWdCdWZmZXJDYWNoZSwgbGFzdFZhbHVlLCByZXZpc2lvbiB9ID0gdGhpcztcblxuICAgICAgICBpZiAoc3VidGFnICE9PSBudWxsKSB7XG4gICAgICAgICAgbGV0IHN1YnRhZ1ZhbHVlID0gc3VidGFnW0NPTVBVVEVdKCk7XG5cbiAgICAgICAgICBpZiAoc3VidGFnVmFsdWUgPT09IHN1YnRhZ0J1ZmZlckNhY2hlKSB7XG4gICAgICAgICAgICByZXZpc2lvbiA9IE1hdGgubWF4KHJldmlzaW9uLCBsYXN0VmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgdGVtcG9yYXJ5IGJ1ZmZlciBjYWNoZVxuICAgICAgICAgICAgdGhpcy5zdWJ0YWdCdWZmZXJDYWNoZSA9IG51bGw7XG4gICAgICAgICAgICByZXZpc2lvbiA9IE1hdGgubWF4KHJldmlzaW9uLCBzdWJ0YWdWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnRhZ3MgIT09IG51bGwpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN1YnRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHN1YnRhZ3NbaV1bQ09NUFVURV0oKTtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgodmFsdWUsIHJldmlzaW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IHJldmlzaW9uO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGFzdFZhbHVlO1xuICB9XG5cbiAgc3RhdGljIHVwZGF0ZShfdGFnOiBVcGRhdGFibGVUYWcsIF9zdWJ0YWc6IFRhZykge1xuICAgIGlmIChERUJVRyAmJiBfdGFnW1RZUEVdICE9PSBNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gdXBkYXRlIGEgdGFnIHRoYXQgd2FzIG5vdCB1cGRhdGFibGUnKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBUUyAzLjcgc2hvdWxkIGFsbG93IHVzIHRvIGRvIHRoaXMgdmlhIGFzc2VydGlvblxuICAgIGxldCB0YWcgPSBfdGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbDtcbiAgICBsZXQgc3VidGFnID0gX3N1YnRhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGw7XG5cbiAgICBpZiAoc3VidGFnID09PSBDT05TVEFOVF9UQUcpIHtcbiAgICAgIHRhZy5zdWJ0YWcgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCBwb3NzaWJpbGl0aWVzIHdoZW4gdXBkYXRpbmcgYSBzdWJ0YWc6XG4gICAgICAvL1xuICAgICAgLy8gMS4gc3VidGFnW0NPTVBVVEVdKCkgPD0gdGFnW0NPTVBVVEVdKCk7XG4gICAgICAvLyAyLiBzdWJ0YWdbQ09NUFVURV0oKSA+IHRhZ1tDT01QVVRFXSgpO1xuICAgICAgLy9cbiAgICAgIC8vIFRoZSBmaXJzdCBwb3NzaWJpbGl0eSBpcyBjb21wbGV0ZWx5IGZpbmUgd2l0aGluIG91ciBjYWNoaW5nIG1vZGVsLCBidXRcbiAgICAgIC8vIHRoZSBzZWNvbmQgcG9zc2liaWxpdHkgcHJlc2VudHMgYSBwcm9ibGVtLiBJZiB0aGUgcGFyZW50IHRhZyBoYXNcbiAgICAgIC8vIGFscmVhZHkgYmVlbiByZWFkLCB0aGVuIGl0J3MgdmFsdWUgaXMgY2FjaGVkIGFuZCB3aWxsIG5vdCB1cGRhdGUgdG9cbiAgICAgIC8vIHJlZmxlY3QgdGhlIHN1YnRhZydzIGdyZWF0ZXIgdmFsdWUuIE5leHQgdGltZSB0aGUgY2FjaGUgaXMgYnVzdGVkLCB0aGVcbiAgICAgIC8vIHN1YnRhZydzIHZhbHVlIF93aWxsXyBiZSByZWFkLCBhbmQgaXQncyB2YWx1ZSB3aWxsIGJlIF9ncmVhdGVyXyB0aGFuXG4gICAgICAvLyB0aGUgc2F2ZWQgc25hcHNob3Qgb2YgdGhlIHBhcmVudCwgY2F1c2luZyB0aGUgcmVzdWx0aW5nIGNhbGN1bGF0aW9uIHRvXG4gICAgICAvLyBiZSByZXJ1biBlcnJvbmVvdXNseS5cbiAgICAgIC8vXG4gICAgICAvLyBJbiBvcmRlciB0byBwcmV2ZW50IHRoaXMsIHdoZW4gd2UgZmlyc3QgdXBkYXRlIHRvIGEgbmV3IHN1YnRhZyB3ZSBzdG9yZVxuICAgICAgLy8gaXRzIGNvbXB1dGVkIHZhbHVlLCBhbmQgdGhlbiBjaGVjayBhZ2FpbnN0IHRoYXQgY29tcHV0ZWQgdmFsdWUgb25cbiAgICAgIC8vIHN1YnNlcXVlbnQgdXBkYXRlcy4gSWYgaXRzIHZhbHVlIGhhc24ndCBjaGFuZ2VkLCB0aGVuIHdlIHJldHVybiB0aGVcbiAgICAgIC8vIHBhcmVudCdzIHByZXZpb3VzIHZhbHVlLiBPbmNlIHRoZSBzdWJ0YWcgY2hhbmdlcyBmb3IgdGhlIGZpcnN0IHRpbWUsXG4gICAgICAvLyB3ZSBjbGVhciB0aGUgY2FjaGUgYW5kIGV2ZXJ5dGhpbmcgaXMgZmluYWxseSBpbiBzeW5jIHdpdGggdGhlIHBhcmVudC5cbiAgICAgIHRhZy5zdWJ0YWdCdWZmZXJDYWNoZSA9IHN1YnRhZ1tDT01QVVRFXSgpO1xuICAgICAgdGFnLnN1YnRhZyA9IHN1YnRhZztcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZGlydHkodGFnOiBEaXJ0eWFibGVUYWcgfCBVcGRhdGFibGVUYWcpIHtcbiAgICBpZiAoXG4gICAgICBERUJVRyAmJlxuICAgICAgISh0YWdbVFlQRV0gPT09IE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlIHx8IHRhZ1tUWVBFXSA9PT0gTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGUpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byBkaXJ0eSBhIHRhZyB0aGF0IHdhcyBub3QgZGlydHlhYmxlJyk7XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICAvLyBVc3VhbGx5IGJ5IHRoaXMgcG9pbnQsIHdlJ3ZlIGFscmVhZHkgYXNzZXJ0ZWQgd2l0aCBiZXR0ZXIgZXJyb3IgaW5mb3JtYXRpb24sXG4gICAgICAvLyBidXQgdGhpcyBpcyBvdXIgbGFzdCBsaW5lIG9mIGRlZmVuc2UuXG4gICAgICBhc3NlcnRUYWdOb3RDb25zdW1lZCEodGFnKTtcbiAgICB9XG5cbiAgICAodGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbCkucmV2aXNpb24gPSArKyRSRVZJU0lPTjtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGlydHkgPSBNb25vbW9ycGhpY1RhZ0ltcGwuZGlydHk7XG5leHBvcnQgY29uc3QgdXBkYXRlID0gTW9ub21vcnBoaWNUYWdJbXBsLnVwZGF0ZTtcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFnKCk6IERpcnR5YWJsZVRhZyB7XG4gIHJldHVybiBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwZGF0YWJsZVRhZygpOiBVcGRhdGFibGVUYWcge1xuICByZXR1cm4gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZSk7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNvbnN0IENPTlNUQU5UX1RBRyA9IG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5Db25zdGFudCkgYXMgQ29uc3RhbnRUYWc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnN0KHsgdGFnIH06IFRhZ2dlZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gdGFnID09PSBDT05TVEFOVF9UQUc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnN0VGFnKHRhZzogVGFnKTogdGFnIGlzIENvbnN0YW50VGFnIHtcbiAgcmV0dXJuIHRhZyA9PT0gQ09OU1RBTlRfVEFHO1xufVxuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjbGFzcyBWb2xhdGlsZVRhZyBpbXBsZW1lbnRzIFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gVk9MQVRJTEU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFZPTEFUSUxFX1RBRyA9IG5ldyBWb2xhdGlsZVRhZygpO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjbGFzcyBDdXJyZW50VGFnIGltcGxlbWVudHMgQ3VycmVudFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1RBRyA9IG5ldyBDdXJyZW50VGFnKCk7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUodGFnczogVGFnW10pOiBUYWcge1xuICBsZXQgb3B0aW1pemVkOiBUYWdbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gdGFncy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBsZXQgdGFnID0gdGFnc1tpXTtcbiAgICBpZiAodGFnID09PSBDT05TVEFOVF9UQUcpIGNvbnRpbnVlO1xuICAgIG9wdGltaXplZC5wdXNoKHRhZyk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlQ29tYmluYXRvclRhZyhvcHRpbWl6ZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tYmluYXRvclRhZyh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIHN3aXRjaCAodGFncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gQ09OU1RBTlRfVEFHO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiB0YWdzWzBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsZXQgdGFnID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3IpIGFzIENvbWJpbmF0b3JUYWc7XG4gICAgICAodGFnIGFzIGFueSkuc3VidGFncyA9IHRhZ3M7XG4gICAgICByZXR1cm4gdGFnO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -1,5 +0,5 @@

export { ALLOW_CYCLES, bump, combine, COMPUTE, CONSTANT_TAG, CONSTANT, createCombinatorTag, createTag, createUpdatableTag, CURRENT_TAG, dirty, INITIAL, isConst, isConstTag, update, validate, value, VOLATILE_TAG, VOLATILE } from './lib/validators';
export { ALLOW_CYCLES, bump, combine, COMPUTE, CONSTANT_TAG, CONSTANT, createCombinatorTag, createTag, createUpdatableTag, CurrentTag, CURRENT_TAG, dirty, INITIAL, isConst, isConstTag, update, validate, value, VolatileTag, VOLATILE_TAG, VOLATILE } from './lib/validators';
export { dirtyTagFor, tagFor, setPropertyDidChange } from './lib/meta';
export { consume, EPOCH, isTracking, track, trackedData, untrack } from './lib/tracking';
export { setAutotrackingTransactionEnv, runInAutotrackingTransaction, deprecateMutationsInAutotrackingTransaction } from './lib/debug';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUNFLFlBREYsRUFFRSxJQUZGLEVBSUUsT0FKRixFQUtFLE9BTEYsRUFNRSxZQU5GLEVBT0UsUUFQRixFQVNFLG1CQVRGLEVBVUUsU0FWRixFQVdFLGtCQVhGLEVBWUUsV0FaRixFQWFFLEtBYkYsRUFpQkUsT0FqQkYsRUFrQkUsT0FsQkYsRUFtQkUsVUFuQkYsRUF3QkUsTUF4QkYsRUF5QkUsUUF6QkYsRUEwQkUsS0ExQkYsRUEyQkUsWUEzQkYsRUE0QkUsUUE1QkYsUUE2Qk8sa0JBN0JQO0FBK0JBLFNBQVMsV0FBVCxFQUFzQixNQUF0QixFQUE4QixvQkFBOUIsUUFBMEQsWUFBMUQ7QUFFQSxTQUFTLE9BQVQsRUFBa0IsS0FBbEIsRUFBeUIsVUFBekIsRUFBcUMsS0FBckMsRUFBNEMsV0FBNUMsRUFBeUQsT0FBekQsUUFBd0UsZ0JBQXhFO0FBRUEsU0FDRSw2QkFERixFQUVFLDRCQUZGLEVBR0UsMkNBSEYsUUFJTyxhQUpQIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQUxMT1dfQ1lDTEVTLFxuICBidW1wLFxuICBDb21iaW5hdG9yVGFnLFxuICBjb21iaW5lLFxuICBDT01QVVRFLFxuICBDT05TVEFOVF9UQUcsXG4gIENPTlNUQU5ULFxuICBDb25zdGFudFRhZyxcbiAgY3JlYXRlQ29tYmluYXRvclRhZyxcbiAgY3JlYXRlVGFnLFxuICBjcmVhdGVVcGRhdGFibGVUYWcsXG4gIENVUlJFTlRfVEFHLFxuICBkaXJ0eSxcbiAgRGlydHlhYmxlVGFnLFxuICBFbnRpdHlUYWcsXG4gIEVudGl0eVRhZ2dlZCxcbiAgSU5JVElBTCxcbiAgaXNDb25zdCxcbiAgaXNDb25zdFRhZyxcbiAgUmV2aXNpb24sXG4gIFRhZyxcbiAgVGFnZ2VkLFxuICBVcGRhdGFibGVUYWcsXG4gIHVwZGF0ZSxcbiAgdmFsaWRhdGUsXG4gIHZhbHVlLFxuICBWT0xBVElMRV9UQUcsXG4gIFZPTEFUSUxFLFxufSBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgZGlydHlUYWdGb3IsIHRhZ0Zvciwgc2V0UHJvcGVydHlEaWRDaGFuZ2UgfSBmcm9tICcuL2xpYi9tZXRhJztcblxuZXhwb3J0IHsgY29uc3VtZSwgRVBPQ0gsIGlzVHJhY2tpbmcsIHRyYWNrLCB0cmFja2VkRGF0YSwgdW50cmFjayB9IGZyb20gJy4vbGliL3RyYWNraW5nJztcblxuZXhwb3J0IHtcbiAgc2V0QXV0b3RyYWNraW5nVHJhbnNhY3Rpb25FbnYsXG4gIHJ1bkluQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vbGliL2RlYnVnJztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUNFLFlBREYsRUFFRSxJQUZGLEVBSUUsT0FKRixFQUtFLE9BTEYsRUFNRSxZQU5GLEVBT0UsUUFQRixFQVNFLG1CQVRGLEVBVUUsU0FWRixFQVdFLGtCQVhGLEVBWUUsVUFaRixFQWFFLFdBYkYsRUFjRSxLQWRGLEVBa0JFLE9BbEJGLEVBbUJFLE9BbkJGLEVBb0JFLFVBcEJGLEVBeUJFLE1BekJGLEVBMEJFLFFBMUJGLEVBMkJFLEtBM0JGLEVBNEJFLFdBNUJGLEVBNkJFLFlBN0JGLEVBOEJFLFFBOUJGLFFBK0JPLGtCQS9CUDtBQWlDQSxTQUFTLFdBQVQsRUFBc0IsTUFBdEIsRUFBOEIsb0JBQTlCLFFBQTBELFlBQTFEO0FBRUEsU0FBUyxPQUFULEVBQWtCLEtBQWxCLEVBQXlCLFVBQXpCLEVBQXFDLEtBQXJDLEVBQTRDLFdBQTVDLEVBQXlELE9BQXpELFFBQXdFLGdCQUF4RTtBQUVBLFNBQ0UsNkJBREYsRUFFRSw0QkFGRixFQUdFLDJDQUhGLFFBSU8sYUFKUCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIEFMTE9XX0NZQ0xFUyxcbiAgYnVtcCxcbiAgQ29tYmluYXRvclRhZyxcbiAgY29tYmluZSxcbiAgQ09NUFVURSxcbiAgQ09OU1RBTlRfVEFHLFxuICBDT05TVEFOVCxcbiAgQ29uc3RhbnRUYWcsXG4gIGNyZWF0ZUNvbWJpbmF0b3JUYWcsXG4gIGNyZWF0ZVRhZyxcbiAgY3JlYXRlVXBkYXRhYmxlVGFnLFxuICBDdXJyZW50VGFnLFxuICBDVVJSRU5UX1RBRyxcbiAgZGlydHksXG4gIERpcnR5YWJsZVRhZyxcbiAgRW50aXR5VGFnLFxuICBFbnRpdHlUYWdnZWQsXG4gIElOSVRJQUwsXG4gIGlzQ29uc3QsXG4gIGlzQ29uc3RUYWcsXG4gIFJldmlzaW9uLFxuICBUYWcsXG4gIFRhZ2dlZCxcbiAgVXBkYXRhYmxlVGFnLFxuICB1cGRhdGUsXG4gIHZhbGlkYXRlLFxuICB2YWx1ZSxcbiAgVm9sYXRpbGVUYWcsXG4gIFZPTEFUSUxFX1RBRyxcbiAgVk9MQVRJTEUsXG59IGZyb20gJy4vbGliL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgeyBkaXJ0eVRhZ0ZvciwgdGFnRm9yLCBzZXRQcm9wZXJ0eURpZENoYW5nZSB9IGZyb20gJy4vbGliL21ldGEnO1xuXG5leHBvcnQgeyBjb25zdW1lLCBFUE9DSCwgaXNUcmFja2luZywgdHJhY2ssIHRyYWNrZWREYXRhLCB1bnRyYWNrIH0gZnJvbSAnLi9saWIvdHJhY2tpbmcnO1xuXG5leHBvcnQge1xuICBzZXRBdXRvdHJhY2tpbmdUcmFuc2FjdGlvbkVudixcbiAgcnVuSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5BdXRvdHJhY2tpbmdUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9saWIvZGVidWcnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -201,3 +201,3 @@ import { DEBUG } from '@glimmer/env';

class VolatileTag {
export class VolatileTag {
[COMPUTE]() {

@@ -208,6 +208,5 @@ return VOLATILE;

}
export const VOLATILE_TAG = new VolatileTag(); //////////
class CurrentTag {
export class CurrentTag {
[COMPUTE]() {

@@ -218,3 +217,2 @@ return $REVISION;

}
export const CURRENT_TAG = new CurrentTag(); //////////

@@ -249,2 +247,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFDQSxTQUE4QixNQUE5QixRQUE0QyxTQUE1QztBQUNBLFNBQVMsb0JBQVQsUUFBcUMsU0FBckM7QUFNQSxPQUFPLE1BQU0sUUFBUSxHQUFhLENBQTNCO0FBQ1AsT0FBTyxNQUFNLE9BQU8sR0FBYSxDQUExQjtBQUNQLE9BQU8sTUFBTSxRQUFRLEdBQWEsZ0JBQTNCLEMsQ0FBNkM7O0FBRXBELElBQUksU0FBUyxHQUFHLE9BQWhCO0FBRUEsT0FBTSxTQUFVLElBQVYsR0FBYztBQUNsQixFQUFBLFNBQVM7QUFDVixDLENBRUQ7O0FBRUEsT0FBTyxNQUFNLE9BQU8sR0FBa0IsTUFBTSxDQUFDLGFBQUQsQ0FBckMsQyxDQWdCUDs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsT0FBTSxTQUFVLEtBQVYsQ0FBZ0IsSUFBaEIsRUFBeUI7QUFDN0IsU0FBTyxTQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7QUFVQSxPQUFNLFNBQVUsUUFBVixDQUFtQixHQUFuQixFQUE2QixRQUE3QixFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBRCxDQUFILEVBQW5CO0FBQ0Q7QUFpQkQsTUFBTSxJQUFJLEdBQWtCLE1BQU0sQ0FBQyxVQUFELENBQWxDO0FBRUEsT0FBTyxJQUFJLFlBQUo7O0FBRVAsSUFBSSxLQUFKLEVBQVc7QUFDVCxFQUFBLFlBQVksR0FBRyxJQUFJLE9BQUosRUFBZjtBQUNEOztBQXFCRCxNQUFNLGtCQUFOLENBQXdCO0FBYXRCLEVBQUEsV0FBQSxDQUFZLElBQVosRUFBcUM7QUFaN0IsU0FBQSxRQUFBLEdBQVcsT0FBWDtBQUNBLFNBQUEsV0FBQSxHQUFjLE9BQWQ7QUFDQSxTQUFBLFNBQUEsR0FBWSxPQUFaO0FBRUEsU0FBQSxVQUFBLEdBQWEsS0FBYjtBQUNBLFNBQUEsT0FBQSxHQUF3QixJQUF4QjtBQUVBLFNBQUEsTUFBQSxHQUFxQixJQUFyQjtBQUNBLFNBQUEsaUJBQUEsR0FBcUMsSUFBckM7QUFLTixTQUFLLElBQUwsSUFBYSxJQUFiO0FBQ0Q7O0FBRUQsR0FBQyxPQUFELElBQVM7QUFDUCxRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQWtCLElBQXRCOztBQUVBLFFBQUksS0FBSyxVQUFMLEtBQW9CLElBQXhCLEVBQThCO0FBQzVCLFVBQUksS0FBSyxJQUFJLENBQUMsWUFBYSxDQUFDLEdBQWQsQ0FBa0IsSUFBbEIsQ0FBZCxFQUF1QztBQUNyQyxjQUFNLElBQUksS0FBSixDQUFVLGdDQUFWLENBQU47QUFDRDs7QUFFRCxXQUFLLFdBQUwsR0FBbUIsRUFBRSxTQUFyQjtBQUNELEtBTkQsTUFNTyxJQUFJLFdBQVcsS0FBSyxTQUFwQixFQUErQjtBQUNwQyxXQUFLLFVBQUwsR0FBa0IsSUFBbEI7QUFDQSxXQUFLLFdBQUwsR0FBbUIsU0FBbkI7O0FBRUEsVUFBSTtBQUNGLFlBQUk7QUFBRSxVQUFBLE9BQUY7QUFBVyxVQUFBLE1BQVg7QUFBbUIsVUFBQSxpQkFBbkI7QUFBc0MsVUFBQSxTQUF0QztBQUFpRCxVQUFBO0FBQWpELFlBQThELElBQWxFOztBQUVBLFlBQUksTUFBTSxLQUFLLElBQWYsRUFBcUI7QUFDbkIsY0FBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQUQsQ0FBTixFQUFsQjs7QUFFQSxjQUFJLFdBQVcsS0FBSyxpQkFBcEIsRUFBdUM7QUFDckMsWUFBQSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUwsQ0FBUyxRQUFULEVBQW1CLFNBQW5CLENBQVg7QUFDRCxXQUZELE1BRU87QUFDTDtBQUNBLGlCQUFLLGlCQUFMLEdBQXlCLElBQXpCO0FBQ0EsWUFBQSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUwsQ0FBUyxRQUFULEVBQW1CLFdBQW5CLENBQVg7QUFDRDtBQUNGOztBQUVELFlBQUksT0FBTyxLQUFLLElBQWhCLEVBQXNCO0FBQ3BCLGVBQUssSUFBSSxDQUFDLEdBQUcsQ0FBYixFQUFnQixDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQTVCLEVBQW9DLENBQUMsRUFBckMsRUFBeUM7QUFDdkMsZ0JBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFELENBQVAsQ0FBVyxPQUFYLEdBQVo7QUFDQSxZQUFBLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBTCxDQUFTLEtBQVQsRUFBZ0IsUUFBaEIsQ0FBWDtBQUNEO0FBQ0Y7O0FBRUQsYUFBSyxTQUFMLEdBQWlCLFFBQWpCO0FBQ0QsT0F2QkQsU0F1QlU7QUFDUixhQUFLLFVBQUwsR0FBa0IsS0FBbEI7QUFDRDtBQUNGOztBQUVELFdBQU8sS0FBSyxTQUFaO0FBQ0Q7O0FBRUQsU0FBTyxNQUFQLENBQWMsSUFBZCxFQUFrQyxPQUFsQyxFQUE4QztBQUM1QyxRQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBRCxDQUFKLEtBQVU7QUFBQTtBQUF2QixNQUEyRDtBQUN6RCxjQUFNLElBQUksS0FBSixDQUFVLGtEQUFWLENBQU47QUFDRCxPQUgyQyxDQUs1Qzs7O0FBQ0EsUUFBSSxHQUFHLEdBQUcsSUFBVjtBQUNBLFFBQUksTUFBTSxHQUFHLE9BQWI7O0FBRUEsUUFBSSxNQUFNLEtBQUssWUFBZixFQUE2QjtBQUMzQixNQUFBLEdBQUcsQ0FBQyxNQUFKLEdBQWEsSUFBYjtBQUNELEtBRkQsTUFFTztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUEsR0FBRyxDQUFDLGlCQUFKLEdBQXdCLE1BQU0sQ0FBQyxPQUFELENBQU4sRUFBeEI7QUFDQSxNQUFBLEdBQUcsQ0FBQyxNQUFKLEdBQWEsTUFBYjtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxLQUFQLENBQWEsR0FBYixFQUE2QztBQUMzQyxRQUNFLEtBQUssSUFDTCxFQUFFLEdBQUcsQ0FBQyxJQUFELENBQUgsS0FBUztBQUFBO0FBQVQsT0FBK0MsR0FBRyxDQUFDLElBQUQsQ0FBSCxLQUFTO0FBQUE7QUFBMUQsS0FGRixFQUdFO0FBQ0EsWUFBTSxJQUFJLEtBQUosQ0FBVSxpREFBVixDQUFOO0FBQ0Q7O0FBRUQsUUFBSSxLQUFKLEVBQVc7QUFDVDtBQUNBO0FBQ0EsTUFBQSxvQkFBcUIsQ0FBQyxHQUFELENBQXJCO0FBQ0Q7O0FBRUEsSUFBQSxHQUEwQixDQUFDLFFBQTNCLEdBQXNDLEVBQUUsU0FBeEM7QUFDRjs7QUEvR3FCOztBQWtIeEIsT0FBTyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFqQztBQUNQLE9BQU8sTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsTUFBbEMsQyxDQUVQOztBQUVBLE9BQU0sU0FBVSxTQUFWLEdBQW1CO0FBQ3ZCLFNBQU8sSUFBSSxrQkFBSixDQUFzQjtBQUFBO0FBQXRCLEdBQVA7QUFDRDtBQUVELE9BQU0sU0FBVSxrQkFBVixHQUE0QjtBQUNoQyxTQUFPLElBQUksa0JBQUosQ0FBc0I7QUFBQTtBQUF0QixHQUFQO0FBQ0QsQyxDQUVEOztBQUVBLE9BQU8sTUFBTSxZQUFZLEdBQUcsSUFBSSxrQkFBSixDQUFzQjtBQUFBO0FBQXRCLENBQXJCO0FBRVAsT0FBTSxTQUFVLE9BQVYsQ0FBa0I7QUFBRSxFQUFBO0FBQUYsQ0FBbEIsRUFBaUM7QUFDckMsU0FBTyxHQUFHLEtBQUssWUFBZjtBQUNEO0FBRUQsT0FBTSxTQUFVLFVBQVYsQ0FBcUIsR0FBckIsRUFBNkI7QUFDakMsU0FBTyxHQUFHLEtBQUssWUFBZjtBQUNELEMsQ0FFRDs7QUFFQSxNQUFNLFdBQU4sQ0FBaUI7QUFDZixHQUFDLE9BQUQsSUFBUztBQUNQLFdBQU8sUUFBUDtBQUNEOztBQUhjOztBQU1qQixPQUFPLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBSixFQUFyQixDLENBRVA7O0FBRUEsTUFBTSxVQUFOLENBQWdCO0FBQ2QsR0FBQyxPQUFELElBQVM7QUFDUCxXQUFPLFNBQVA7QUFDRDs7QUFIYTs7QUFNaEIsT0FBTyxNQUFNLFdBQVcsR0FBRyxJQUFJLFVBQUosRUFBcEIsQyxDQUVQOztBQUVBLE9BQU0sU0FBVSxPQUFWLENBQWtCLElBQWxCLEVBQTZCO0FBQ2pDLE1BQUksU0FBUyxHQUFVLEVBQXZCOztBQUVBLE9BQUssSUFBSSxDQUFDLEdBQUcsQ0FBUixFQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBekIsRUFBaUMsQ0FBQyxHQUFHLENBQXJDLEVBQXdDLENBQUMsRUFBekMsRUFBNkM7QUFDM0MsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBZDtBQUNBLFFBQUksR0FBRyxLQUFLLFlBQVosRUFBMEI7QUFDMUIsSUFBQSxTQUFTLENBQUMsSUFBVixDQUFlLEdBQWY7QUFDRDs7QUFFRCxTQUFPLG1CQUFtQixDQUFDLFNBQUQsQ0FBMUI7QUFDRDtBQUVELE9BQU0sU0FBVSxtQkFBVixDQUE4QixJQUE5QixFQUF5QztBQUM3QyxVQUFRLElBQUksQ0FBQyxNQUFiO0FBQ0UsU0FBSyxDQUFMO0FBQ0UsYUFBTyxZQUFQOztBQUNGLFNBQUssQ0FBTDtBQUNFLGFBQU8sSUFBSSxDQUFDLENBQUQsQ0FBWDs7QUFDRjtBQUNFLFVBQUksR0FBRyxHQUFHLElBQUksa0JBQUosQ0FBc0I7QUFBQTtBQUF0QixPQUFWO0FBQ0MsTUFBQSxHQUFXLENBQUMsT0FBWixHQUFzQixJQUF0QjtBQUNELGFBQU8sR0FBUDtBQVJKO0FBVUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBVbmlvblRvSW50ZXJzZWN0aW9uLCBzeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGFzc2VydFRhZ05vdENvbnN1bWVkIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgUmV2aXNpb24gPSBudW1iZXI7XG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVDogUmV2aXNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IElOSVRJQUw6IFJldmlzaW9uID0gMTtcbmV4cG9ydCBjb25zdCBWT0xBVElMRTogUmV2aXNpb24gPSA5MDA3MTk5MjU0NzQwOTkxOyAvLyBNQVhfSU5UXG5cbmxldCAkUkVWSVNJT04gPSBJTklUSUFMO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVtcCgpIHtcbiAgJFJFVklTSU9OKys7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNvbnN0IENPTVBVVEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19DT01QVVRFJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnPFQ+IHtcbiAgW0NPTVBVVEVdKCk6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIGV4dGVuZHMgRW50aXR5VGFnPFJldmlzaW9uPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVRhZ2dlZDxUPiB7XG4gIHRhZzogRW50aXR5VGFnPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ2dlZCB7XG4gIHRhZzogVGFnO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogYHZhbHVlYCByZWNlaXZlcyBhIHRhZyBhbmQgcmV0dXJucyBhbiBvcGFxdWUgUmV2aXNpb24gYmFzZWQgb24gdGhhdCB0YWcuIFRoaXNcbiAqIHNuYXBzaG90IGNhbiB0aGVuIGxhdGVyIGJlIHBhc3NlZCB0byBgdmFsaWRhdGVgIHdpdGggdGhlIHNhbWUgdGFnIHRvXG4gKiBkZXRlcm1pbmUgaWYgdGhlIHRhZyBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlIHRpbWUgdGhhdCBgdmFsdWVgIHdhc1xuICogY2FsbGVkLlxuICpcbiAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGdsb2JhbCByZXZpc2lvbiBjb3VudCBkaXJlY3RseSBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBhbmQgc2hvdWxkIG5vdCBiZVxuICogcmVsaWVkIG9uIGRpcmVjdGx5IGJ5IHVzZXJzIG9mIHRoZXNlIEFQSXMuIEluc3RlYWQsIFJldmlzaW9ucyBzaG91bGQgYmVcbiAqIHRyZWF0ZWQgYXMgaWYgdGhleSBhcmUgb3BhcXVlL3Vua25vd24sIGFuZCBzaG91bGQgb25seSBiZSBpbnRlcmFjdGVkIHdpdGggdmlhXG4gKiB0aGUgYHZhbHVlYC9gdmFsaWRhdGVgIEFQSS5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZShfdGFnOiBUYWcpOiBSZXZpc2lvbiB7XG4gIHJldHVybiAkUkVWSVNJT047XG59XG5cbi8qKlxuICogYHZhbGlkYXRlYCByZWNlaXZlcyBhIHRhZyBhbmQgYSBzbmFwc2hvdCBmcm9tIGEgcHJldmlvdXMgY2FsbCB0byBgdmFsdWVgIHdpdGhcbiAqIHRoZSBzYW1lIHRhZywgYW5kIGRldGVybWluZXMgaWYgdGhlIHRhZyBpcyBzdGlsbCB2YWxpZCBjb21wYXJlZCB0byB0aGVcbiAqIHNuYXBzaG90LiBJZiB0aGUgdGFnJ3Mgc3RhdGUgaGFzIGNoYW5nZWQgYXQgYWxsIHNpbmNlIHRoZW4sIGB2YWxpZGF0ZWAgd2lsbFxuICogcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgaXQgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhXG4gKiBjYWxjdWxhdGlvbiByZWxhdGVkIHRvIHRoZSB0YWdzIHNob3VsZCBiZSByZXJ1bi5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKiBAcGFyYW0gc25hcHNob3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHRhZzogVGFnLCBzbmFwc2hvdDogUmV2aXNpb24pIHtcbiAgcmV0dXJuIHNuYXBzaG90ID49IHRhZ1tDT01QVVRFXSgpO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgYWxsIG9mIHRoZSBwb3NzaWJsZSB0YWcgdHlwZXMgZm9yIHRoZSBtb25vbW9ycGhpYyB0YWcgY2xhc3MuXG4gKiBPdGhlciBjdXN0b20gdGFnIGNsYXNzZXMgY2FuIGV4aXN0LCBzdWNoIGFzIEN1cnJlbnRUYWcgYW5kIFZvbGF0aWxlVGFnLCBidXQgZm9yXG4gKiBwZXJmb3JtYW5jZSByZWFzb25zLCBhbnkgdHlwZSBvZiB0YWcgdGhhdCBpcyBtZWFudCB0byBiZSB1c2VkIGZyZXF1ZW50bHkgc2hvdWxkXG4gKiBiZSBhZGRlZCB0byB0aGUgbW9ub21vcnBoaWMgdGFnLlxuICovXG5jb25zdCBlbnVtIE1vbm9tb3JwaGljVGFnVHlwZXMge1xuICBEaXJ0eWFibGUsXG4gIFVwZGF0YWJsZSxcbiAgQ29tYmluYXRvcixcbiAgQ29uc3RhbnQsXG59XG5cbmNvbnN0IFRZUEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19UWVBFJyk7XG5cbmV4cG9ydCBsZXQgQUxMT1dfQ1lDTEVTOiBXZWFrTWFwPFRhZywgYm9vbGVhbj4gfCB1bmRlZmluZWQ7XG5cbmlmIChERUJVRykge1xuICBBTExPV19DWUNMRVMgPSBuZXcgV2Vha01hcCgpO1xufVxuXG5pbnRlcmZhY2UgTW9ub21vcnBoaWNUYWdCYXNlPFQgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ1R5cGVzPiBleHRlbmRzIFRhZyB7XG4gIFtUWVBFXTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJ0eWFibGVUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGU+IHt9XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRvclRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3I+IHt9XG5leHBvcnQgaW50ZXJmYWNlIENvbnN0YW50VGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQ+IHt9XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ01hcHBpbmcge1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGVdOiBEaXJ0eWFibGVUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZV06IFVwZGF0YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcl06IENvbWJpbmF0b3JUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50XTogQ29uc3RhbnRUYWc7XG59XG5cbnR5cGUgTW9ub21vcnBoaWNUYWcgPSBVbmlvblRvSW50ZXJzZWN0aW9uPE1vbm9tb3JwaGljVGFnTWFwcGluZ1tNb25vbW9ycGhpY1RhZ1R5cGVzXT47XG50eXBlIE1vbm9tb3JwaGljVGFnVHlwZSA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdUeXBlcz47XG5cbmNsYXNzIE1vbm9tb3JwaGljVGFnSW1wbCBpbXBsZW1lbnRzIE1vbm9tb3JwaGljVGFnIHtcbiAgcHJpdmF0ZSByZXZpc2lvbiA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdENoZWNrZWQgPSBJTklUSUFMO1xuICBwcml2YXRlIGxhc3RWYWx1ZSA9IElOSVRJQUw7XG5cbiAgcHJpdmF0ZSBpc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc3VidGFnczogVGFnW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHN1YnRhZzogVGFnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3VidGFnQnVmZmVyQ2FjaGU6IFJldmlzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgW1RZUEVdOiBNb25vbW9ycGhpY1RhZ1R5cGU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogTW9ub21vcnBoaWNUYWdUeXBlcykge1xuICAgIHRoaXNbVFlQRV0gPSB0eXBlIGFzIE1vbm9tb3JwaGljVGFnVHlwZTtcbiAgfVxuXG4gIFtDT01QVVRFXSgpOiBSZXZpc2lvbiB7XG4gICAgbGV0IHsgbGFzdENoZWNrZWQgfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy5pc1VwZGF0aW5nID09PSB0cnVlKSB7XG4gICAgICBpZiAoREVCVUcgJiYgIUFMTE9XX0NZQ0xFUyEuaGFzKHRoaXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ3ljbGVzIGluIHRhZ3MgYXJlIG5vdCBhbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSArKyRSRVZJU0lPTjtcbiAgICB9IGVsc2UgaWYgKGxhc3RDaGVja2VkICE9PSAkUkVWSVNJT04pIHtcbiAgICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxhc3RDaGVja2VkID0gJFJFVklTSU9OO1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgeyBzdWJ0YWdzLCBzdWJ0YWcsIHN1YnRhZ0J1ZmZlckNhY2hlLCBsYXN0VmFsdWUsIHJldmlzaW9uIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChzdWJ0YWcgIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgc3VidGFnVmFsdWUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcblxuICAgICAgICAgIGlmIChzdWJ0YWdWYWx1ZSA9PT0gc3VidGFnQnVmZmVyQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIGxhc3RWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0ZW1wb3JhcnkgYnVmZmVyIGNhY2hlXG4gICAgICAgICAgICB0aGlzLnN1YnRhZ0J1ZmZlckNhY2hlID0gbnVsbDtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIHN1YnRhZ1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VidGFncyAhPT0gbnVsbCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VidGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gc3VidGFnc1tpXVtDT01QVVRFXSgpO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heCh2YWx1ZSwgcmV2aXNpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gcmV2aXNpb247XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlKF90YWc6IFVwZGF0YWJsZVRhZywgX3N1YnRhZzogVGFnKSB7XG4gICAgaWYgKERFQlVHICYmIF90YWdbVFlQRV0gIT09IE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byB1cGRhdGUgYSB0YWcgdGhhdCB3YXMgbm90IHVwZGF0YWJsZScpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFRTIDMuNyBzaG91bGQgYWxsb3cgdXMgdG8gZG8gdGhpcyB2aWEgYXNzZXJ0aW9uXG4gICAgbGV0IHRhZyA9IF90YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuICAgIGxldCBzdWJ0YWcgPSBfc3VidGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbDtcblxuICAgIGlmIChzdWJ0YWcgPT09IENPTlNUQU5UX1RBRykge1xuICAgICAgdGFnLnN1YnRhZyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgd2hlbiB1cGRhdGluZyBhIHN1YnRhZzpcbiAgICAgIC8vXG4gICAgICAvLyAxLiBzdWJ0YWdbQ09NUFVURV0oKSA8PSB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vIDIuIHN1YnRhZ1tDT01QVVRFXSgpID4gdGFnW0NPTVBVVEVdKCk7XG4gICAgICAvL1xuICAgICAgLy8gVGhlIGZpcnN0IHBvc3NpYmlsaXR5IGlzIGNvbXBsZXRlbHkgZmluZSB3aXRoaW4gb3VyIGNhY2hpbmcgbW9kZWwsIGJ1dFxuICAgICAgLy8gdGhlIHNlY29uZCBwb3NzaWJpbGl0eSBwcmVzZW50cyBhIHByb2JsZW0uIElmIHRoZSBwYXJlbnQgdGFnIGhhc1xuICAgICAgLy8gYWxyZWFkeSBiZWVuIHJlYWQsIHRoZW4gaXQncyB2YWx1ZSBpcyBjYWNoZWQgYW5kIHdpbGwgbm90IHVwZGF0ZSB0b1xuICAgICAgLy8gcmVmbGVjdCB0aGUgc3VidGFnJ3MgZ3JlYXRlciB2YWx1ZS4gTmV4dCB0aW1lIHRoZSBjYWNoZSBpcyBidXN0ZWQsIHRoZVxuICAgICAgLy8gc3VidGFnJ3MgdmFsdWUgX3dpbGxfIGJlIHJlYWQsIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgX2dyZWF0ZXJfIHRoYW5cbiAgICAgIC8vIHRoZSBzYXZlZCBzbmFwc2hvdCBvZiB0aGUgcGFyZW50LCBjYXVzaW5nIHRoZSByZXN1bHRpbmcgY2FsY3VsYXRpb24gdG9cbiAgICAgIC8vIGJlIHJlcnVuIGVycm9uZW91c2x5LlxuICAgICAgLy9cbiAgICAgIC8vIEluIG9yZGVyIHRvIHByZXZlbnQgdGhpcywgd2hlbiB3ZSBmaXJzdCB1cGRhdGUgdG8gYSBuZXcgc3VidGFnIHdlIHN0b3JlXG4gICAgICAvLyBpdHMgY29tcHV0ZWQgdmFsdWUsIGFuZCB0aGVuIGNoZWNrIGFnYWluc3QgdGhhdCBjb21wdXRlZCB2YWx1ZSBvblxuICAgICAgLy8gc3Vic2VxdWVudCB1cGRhdGVzLiBJZiBpdHMgdmFsdWUgaGFzbid0IGNoYW5nZWQsIHRoZW4gd2UgcmV0dXJuIHRoZVxuICAgICAgLy8gcGFyZW50J3MgcHJldmlvdXMgdmFsdWUuIE9uY2UgdGhlIHN1YnRhZyBjaGFuZ2VzIGZvciB0aGUgZmlyc3QgdGltZSxcbiAgICAgIC8vIHdlIGNsZWFyIHRoZSBjYWNoZSBhbmQgZXZlcnl0aGluZyBpcyBmaW5hbGx5IGluIHN5bmMgd2l0aCB0aGUgcGFyZW50LlxuICAgICAgdGFnLnN1YnRhZ0J1ZmZlckNhY2hlID0gc3VidGFnW0NPTVBVVEVdKCk7XG4gICAgICB0YWcuc3VidGFnID0gc3VidGFnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkaXJ0eSh0YWc6IERpcnR5YWJsZVRhZyB8IFVwZGF0YWJsZVRhZykge1xuICAgIGlmIChcbiAgICAgIERFQlVHICYmXG4gICAgICAhKHRhZ1tUWVBFXSA9PT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUgfHwgdGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIGRpcnR5IGEgdGFnIHRoYXQgd2FzIG5vdCBkaXJ0eWFibGUnKTtcbiAgICB9XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIC8vIFVzdWFsbHkgYnkgdGhpcyBwb2ludCwgd2UndmUgYWxyZWFkeSBhc3NlcnRlZCB3aXRoIGJldHRlciBlcnJvciBpbmZvcm1hdGlvbixcbiAgICAgIC8vIGJ1dCB0aGlzIGlzIG91ciBsYXN0IGxpbmUgb2YgZGVmZW5zZS5cbiAgICAgIGFzc2VydFRhZ05vdENvbnN1bWVkISh0YWcpO1xuICAgIH1cblxuICAgICh0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsKS5yZXZpc2lvbiA9ICsrJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkaXJ0eSA9IE1vbm9tb3JwaGljVGFnSW1wbC5kaXJ0eTtcbmV4cG9ydCBjb25zdCB1cGRhdGUgPSBNb25vbW9ycGhpY1RhZ0ltcGwudXBkYXRlO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWcoKTogRGlydHlhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRhYmxlVGFnKCk6IFVwZGF0YWJsZVRhZyB7XG4gIHJldHVybiBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKTtcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09OU1RBTlRfVEFHID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50KSBhcyBDb25zdGFudFRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3QoeyB0YWcgfTogVGFnZ2VkKTogYm9vbGVhbiB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3RUYWcodGFnOiBUYWcpOiB0YWcgaXMgQ29uc3RhbnRUYWcge1xuICByZXR1cm4gdGFnID09PSBDT05TVEFOVF9UQUc7XG59XG5cbi8vLy8vLy8vLy9cblxuY2xhc3MgVm9sYXRpbGVUYWcgaW1wbGVtZW50cyBUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuIFZPTEFUSUxFO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBWT0xBVElMRV9UQUcgPSBuZXcgVm9sYXRpbGVUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5jbGFzcyBDdXJyZW50VGFnIGltcGxlbWVudHMgQ3VycmVudFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDVVJSRU5UX1RBRyA9IG5ldyBDdXJyZW50VGFnKCk7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUodGFnczogVGFnW10pOiBUYWcge1xuICBsZXQgb3B0aW1pemVkOiBUYWdbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0gdGFncy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBsZXQgdGFnID0gdGFnc1tpXTtcbiAgICBpZiAodGFnID09PSBDT05TVEFOVF9UQUcpIGNvbnRpbnVlO1xuICAgIG9wdGltaXplZC5wdXNoKHRhZyk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlQ29tYmluYXRvclRhZyhvcHRpbWl6ZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tYmluYXRvclRhZyh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIHN3aXRjaCAodGFncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gQ09OU1RBTlRfVEFHO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiB0YWdzWzBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsZXQgdGFnID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3IpIGFzIENvbWJpbmF0b3JUYWc7XG4gICAgICAodGFnIGFzIGFueSkuc3VidGFncyA9IHRhZ3M7XG4gICAgICByZXR1cm4gdGFnO1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFDQSxTQUE4QixNQUE5QixRQUE0QyxTQUE1QztBQUNBLFNBQVMsb0JBQVQsUUFBcUMsU0FBckM7QUFNQSxPQUFPLE1BQU0sUUFBUSxHQUFhLENBQTNCO0FBQ1AsT0FBTyxNQUFNLE9BQU8sR0FBYSxDQUExQjtBQUNQLE9BQU8sTUFBTSxRQUFRLEdBQWEsZ0JBQTNCLEMsQ0FBNkM7O0FBRXBELElBQUksU0FBUyxHQUFHLE9BQWhCO0FBRUEsT0FBTSxTQUFVLElBQVYsR0FBYztBQUNsQixFQUFBLFNBQVM7QUFDVixDLENBRUQ7O0FBRUEsT0FBTyxNQUFNLE9BQU8sR0FBa0IsTUFBTSxDQUFDLGFBQUQsQ0FBckMsQyxDQWdCUDs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsT0FBTSxTQUFVLEtBQVYsQ0FBZ0IsSUFBaEIsRUFBeUI7QUFDN0IsU0FBTyxTQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7Ozs7QUFVQSxPQUFNLFNBQVUsUUFBVixDQUFtQixHQUFuQixFQUE2QixRQUE3QixFQUErQztBQUNuRCxTQUFPLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBRCxDQUFILEVBQW5CO0FBQ0Q7QUFpQkQsTUFBTSxJQUFJLEdBQWtCLE1BQU0sQ0FBQyxVQUFELENBQWxDO0FBRUEsT0FBTyxJQUFJLFlBQUo7O0FBRVAsSUFBSSxLQUFKLEVBQVc7QUFDVCxFQUFBLFlBQVksR0FBRyxJQUFJLE9BQUosRUFBZjtBQUNEOztBQXFCRCxNQUFNLGtCQUFOLENBQXdCO0FBYXRCLEVBQUEsV0FBQSxDQUFZLElBQVosRUFBcUM7QUFaN0IsU0FBQSxRQUFBLEdBQVcsT0FBWDtBQUNBLFNBQUEsV0FBQSxHQUFjLE9BQWQ7QUFDQSxTQUFBLFNBQUEsR0FBWSxPQUFaO0FBRUEsU0FBQSxVQUFBLEdB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dkIsT0FBTyxNQUFNLFdBQVcsR0FBRyxJQUFJLFVBQUosRUFBcEIsQyxDQUVQOztBQUVBLE9BQU0sU0FBVSxPQUFWLENBQWtCLElBQWxCLEVBQTZCO0FBQ2pDLE1BQUksU0FBUyxHQUFVLEVBQXZCOztBQUVBLE9BQUssSUFBSSxDQUFDLEdBQUcsQ0FBUixFQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBekIsRUFBaUMsQ0FBQyxHQUFHLENBQXJDLEVBQXdDLENBQUMsRUFBekMsRUFBNkM7QUFDM0MsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBZDtBQUNBLFFBQUksR0FBRyxLQUFLLFlBQVosRUFBMEI7QUFDMUIsSUFBQSxTQUFTLENBQUMsSUFBVixDQUFlLEdBQWY7QUFDRDs7QUFFRCxTQUFPLG1CQUFtQixDQUFDLFNBQUQsQ0FBMUI7QUFDRDtBQUVELE9BQU0sU0FBVSxtQkFBVixDQUE4QixJQUE5QixFQUF5QztBQUM3QyxVQUFRLElBQUksQ0FBQyxNQUFiO0FBQ0UsU0FBSyxDQUFMO0FBQ0UsYUFBTyxZQUFQOztBQUNGLFNBQUssQ0FBTDtBQUNFLGFBQU8sSUFBSSxDQUFDLENBQUQsQ0FBWDs7QUFDRjtBQUNFLFVBQUksR0FBRyxHQUFHLElBQUksa0JBQUosQ0FBc0I7QUFBQTtBQUF0QixPQUFWO0FBQ0MsTUFBQSxHQUFXLENBQUMsT0FBWixHQUFzQixJQUF0QjtBQUNELGFBQU8sR0FBUDtBQVJKO0FBVUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBVbmlvblRvSW50ZXJzZWN0aW9uLCBzeW1ib2wgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGFzc2VydFRhZ05vdENvbnN1bWVkIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgUmV2aXNpb24gPSBudW1iZXI7XG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVDogUmV2aXNpb24gPSAwO1xuZXhwb3J0IGNvbnN0IElOSVRJQUw6IFJldmlzaW9uID0gMTtcbmV4cG9ydCBjb25zdCBWT0xBVElMRTogUmV2aXNpb24gPSA5MDA3MTk5MjU0NzQwOTkxOyAvLyBNQVhfSU5UXG5cbmxldCAkUkVWSVNJT04gPSBJTklUSUFMO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVtcCgpIHtcbiAgJFJFVklTSU9OKys7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNvbnN0IENPTVBVVEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19DT01QVVRFJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnPFQ+IHtcbiAgW0NPTVBVVEVdKCk6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIGV4dGVuZHMgRW50aXR5VGFnPFJldmlzaW9uPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVRhZ2dlZDxUPiB7XG4gIHRhZzogRW50aXR5VGFnPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ2dlZCB7XG4gIHRhZzogVGFnO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogYHZhbHVlYCByZWNlaXZlcyBhIHRhZyBhbmQgcmV0dXJucyBhbiBvcGFxdWUgUmV2aXNpb24gYmFzZWQgb24gdGhhdCB0YWcuIFRoaXNcbiAqIHNuYXBzaG90IGNhbiB0aGVuIGxhdGVyIGJlIHBhc3NlZCB0byBgdmFsaWRhdGVgIHdpdGggdGhlIHNhbWUgdGFnIHRvXG4gKiBkZXRlcm1pbmUgaWYgdGhlIHRhZyBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlIHRpbWUgdGhhdCBgdmFsdWVgIHdhc1xuICogY2FsbGVkLlxuICpcbiAqIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGdsb2JhbCByZXZpc2lvbiBjb3VudCBkaXJlY3RseSBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBhbmQgc2hvdWxkIG5vdCBiZVxuICogcmVsaWVkIG9uIGRpcmVjdGx5IGJ5IHVzZXJzIG9mIHRoZXNlIEFQSXMuIEluc3RlYWQsIFJldmlzaW9ucyBzaG91bGQgYmVcbiAqIHRyZWF0ZWQgYXMgaWYgdGhleSBhcmUgb3BhcXVlL3Vua25vd24sIGFuZCBzaG91bGQgb25seSBiZSBpbnRlcmFjdGVkIHdpdGggdmlhXG4gKiB0aGUgYHZhbHVlYC9gdmFsaWRhdGVgIEFQSS5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZShfdGFnOiBUYWcpOiBSZXZpc2lvbiB7XG4gIHJldHVybiAkUkVWSVNJT047XG59XG5cbi8qKlxuICogYHZhbGlkYXRlYCByZWNlaXZlcyBhIHRhZyBhbmQgYSBzbmFwc2hvdCBmcm9tIGEgcHJldmlvdXMgY2FsbCB0byBgdmFsdWVgIHdpdGhcbiAqIHRoZSBzYW1lIHRhZywgYW5kIGRldGVybWluZXMgaWYgdGhlIHRhZyBpcyBzdGlsbCB2YWxpZCBjb21wYXJlZCB0byB0aGVcbiAqIHNuYXBzaG90LiBJZiB0aGUgdGFnJ3Mgc3RhdGUgaGFzIGNoYW5nZWQgYXQgYWxsIHNpbmNlIHRoZW4sIGB2YWxpZGF0ZWAgd2lsbFxuICogcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgaXQgd2lsbCByZXR1cm4gdHJ1ZS4gVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhXG4gKiBjYWxjdWxhdGlvbiByZWxhdGVkIHRvIHRoZSB0YWdzIHNob3VsZCBiZSByZXJ1bi5cbiAqXG4gKiBAcGFyYW0gdGFnXG4gKiBAcGFyYW0gc25hcHNob3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHRhZzogVGFnLCBzbmFwc2hvdDogUmV2aXNpb24pIHtcbiAgcmV0dXJuIHNuYXBzaG90ID49IHRhZ1tDT01QVVRFXSgpO1xufVxuXG4vLy8vLy8vLy8vXG5cbi8qKlxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgYWxsIG9mIHRoZSBwb3NzaWJsZSB0YWcgdHlwZXMgZm9yIHRoZSBtb25vbW9ycGhpYyB0YWcgY2xhc3MuXG4gKiBPdGhlciBjdXN0b20gdGFnIGNsYXNzZXMgY2FuIGV4aXN0LCBzdWNoIGFzIEN1cnJlbnRUYWcgYW5kIFZvbGF0aWxlVGFnLCBidXQgZm9yXG4gKiBwZXJmb3JtYW5jZSByZWFzb25zLCBhbnkgdHlwZSBvZiB0YWcgdGhhdCBpcyBtZWFudCB0byBiZSB1c2VkIGZyZXF1ZW50bHkgc2hvdWxkXG4gKiBiZSBhZGRlZCB0byB0aGUgbW9ub21vcnBoaWMgdGFnLlxuICovXG5jb25zdCBlbnVtIE1vbm9tb3JwaGljVGFnVHlwZXMge1xuICBEaXJ0eWFibGUsXG4gIFVwZGF0YWJsZSxcbiAgQ29tYmluYXRvcixcbiAgQ29uc3RhbnQsXG59XG5cbmNvbnN0IFRZUEU6IHVuaXF1ZSBzeW1ib2wgPSBzeW1ib2woJ1RBR19UWVBFJyk7XG5cbmV4cG9ydCBsZXQgQUxMT1dfQ1lDTEVTOiBXZWFrTWFwPFRhZywgYm9vbGVhbj4gfCB1bmRlZmluZWQ7XG5cbmlmIChERUJVRykge1xuICBBTExPV19DWUNMRVMgPSBuZXcgV2Vha01hcCgpO1xufVxuXG5pbnRlcmZhY2UgTW9ub21vcnBoaWNUYWdCYXNlPFQgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ1R5cGVzPiBleHRlbmRzIFRhZyB7XG4gIFtUWVBFXTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJ0eWFibGVUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGU+IHt9XG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRvclRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbWJpbmF0b3I+IHt9XG5leHBvcnQgaW50ZXJmYWNlIENvbnN0YW50VGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQ+IHt9XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ01hcHBpbmcge1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGVdOiBEaXJ0eWFibGVUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZV06IFVwZGF0YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcl06IENvbWJpbmF0b3JUYWc7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50XTogQ29uc3RhbnRUYWc7XG59XG5cbnR5cGUgTW9ub21vcnBoaWNUYWcgPSBVbmlvblRvSW50ZXJzZWN0aW9uPE1vbm9tb3JwaGljVGFnTWFwcGluZ1tNb25vbW9ycGhpY1RhZ1R5cGVzXT47XG50eXBlIE1vbm9tb3JwaGljVGFnVHlwZSA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdUeXBlcz47XG5cbmNsYXNzIE1vbm9tb3JwaGljVGFnSW1wbCBpbXBsZW1lbnRzIE1vbm9tb3JwaGljVGFnIHtcbiAgcHJpdmF0ZSByZXZpc2lvbiA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdENoZWNrZWQgPSBJTklUSUFMO1xuICBwcml2YXRlIGxhc3RWYWx1ZSA9IElOSVRJQUw7XG5cbiAgcHJpdmF0ZSBpc1VwZGF0aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc3VidGFnczogVGFnW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHN1YnRhZzogVGFnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3VidGFnQnVmZmVyQ2FjaGU6IFJldmlzaW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgW1RZUEVdOiBNb25vbW9ycGhpY1RhZ1R5cGU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogTW9ub21vcnBoaWNUYWdUeXBlcykge1xuICAgIHRoaXNbVFlQRV0gPSB0eXBlIGFzIE1vbm9tb3JwaGljVGFnVHlwZTtcbiAgfVxuXG4gIFtDT01QVVRFXSgpOiBSZXZpc2lvbiB7XG4gICAgbGV0IHsgbGFzdENoZWNrZWQgfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy5pc1VwZGF0aW5nID09PSB0cnVlKSB7XG4gICAgICBpZiAoREVCVUcgJiYgIUFMTE9XX0NZQ0xFUyEuaGFzKHRoaXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ3ljbGVzIGluIHRhZ3MgYXJlIG5vdCBhbGxvd2VkJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSArKyRSRVZJU0lPTjtcbiAgICB9IGVsc2UgaWYgKGxhc3RDaGVja2VkICE9PSAkUkVWSVNJT04pIHtcbiAgICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxhc3RDaGVja2VkID0gJFJFVklTSU9OO1xuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgeyBzdWJ0YWdzLCBzdWJ0YWcsIHN1YnRhZ0J1ZmZlckNhY2hlLCBsYXN0VmFsdWUsIHJldmlzaW9uIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmIChzdWJ0YWcgIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgc3VidGFnVmFsdWUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcblxuICAgICAgICAgIGlmIChzdWJ0YWdWYWx1ZSA9PT0gc3VidGFnQnVmZmVyQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIGxhc3RWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSB0ZW1wb3JhcnkgYnVmZmVyIGNhY2hlXG4gICAgICAgICAgICB0aGlzLnN1YnRhZ0J1ZmZlckNhY2hlID0gbnVsbDtcbiAgICAgICAgICAgIHJldmlzaW9uID0gTWF0aC5tYXgocmV2aXNpb24sIHN1YnRhZ1ZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VidGFncyAhPT0gbnVsbCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3VidGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gc3VidGFnc1tpXVtDT01QVVRFXSgpO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heCh2YWx1ZSwgcmV2aXNpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gcmV2aXNpb247XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gIH1cblxuICBzdGF0aWMgdXBkYXRlKF90YWc6IFVwZGF0YWJsZVRhZywgX3N1YnRhZzogVGFnKSB7XG4gICAgaWYgKERFQlVHICYmIF90YWdbVFlQRV0gIT09IE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byB1cGRhdGUgYSB0YWcgdGhhdCB3YXMgbm90IHVwZGF0YWJsZScpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFRTIDMuNyBzaG91bGQgYWxsb3cgdXMgdG8gZG8gdGhpcyB2aWEgYXNzZXJ0aW9uXG4gICAgbGV0IHRhZyA9IF90YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuICAgIGxldCBzdWJ0YWcgPSBfc3VidGFnIGFzIE1vbm9tb3JwaGljVGFnSW1wbDtcblxuICAgIGlmIChzdWJ0YWcgPT09IENPTlNUQU5UX1RBRykge1xuICAgICAgdGFnLnN1YnRhZyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgd2hlbiB1cGRhdGluZyBhIHN1YnRhZzpcbiAgICAgIC8vXG4gICAgICAvLyAxLiBzdWJ0YWdbQ09NUFVURV0oKSA8PSB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vIDIuIHN1YnRhZ1tDT01QVVRFXSgpID4gdGFnW0NPTVBVVEVdKCk7XG4gICAgICAvL1xuICAgICAgLy8gVGhlIGZpcnN0IHBvc3NpYmlsaXR5IGlzIGNvbXBsZXRlbHkgZmluZSB3aXRoaW4gb3VyIGNhY2hpbmcgbW9kZWwsIGJ1dFxuICAgICAgLy8gdGhlIHNlY29uZCBwb3NzaWJpbGl0eSBwcmVzZW50cyBhIHByb2JsZW0uIElmIHRoZSBwYXJlbnQgdGFnIGhhc1xuICAgICAgLy8gYWxyZWFkeSBiZWVuIHJlYWQsIHRoZW4gaXQncyB2YWx1ZSBpcyBjYWNoZWQgYW5kIHdpbGwgbm90IHVwZGF0ZSB0b1xuICAgICAgLy8gcmVmbGVjdCB0aGUgc3VidGFnJ3MgZ3JlYXRlciB2YWx1ZS4gTmV4dCB0aW1lIHRoZSBjYWNoZSBpcyBidXN0ZWQsIHRoZVxuICAgICAgLy8gc3VidGFnJ3MgdmFsdWUgX3dpbGxfIGJlIHJlYWQsIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgX2dyZWF0ZXJfIHRoYW5cbiAgICAgIC8vIHRoZSBzYXZlZCBzbmFwc2hvdCBvZiB0aGUgcGFyZW50LCBjYXVzaW5nIHRoZSByZXN1bHRpbmcgY2FsY3VsYXRpb24gdG9cbiAgICAgIC8vIGJlIHJlcnVuIGVycm9uZW91c2x5LlxuICAgICAgLy9cbiAgICAgIC8vIEluIG9yZGVyIHRvIHByZXZlbnQgdGhpcywgd2hlbiB3ZSBmaXJzdCB1cGRhdGUgdG8gYSBuZXcgc3VidGFnIHdlIHN0b3JlXG4gICAgICAvLyBpdHMgY29tcHV0ZWQgdmFsdWUsIGFuZCB0aGVuIGNoZWNrIGFnYWluc3QgdGhhdCBjb21wdXRlZCB2YWx1ZSBvblxuICAgICAgLy8gc3Vic2VxdWVudCB1cGRhdGVzLiBJZiBpdHMgdmFsdWUgaGFzbid0IGNoYW5nZWQsIHRoZW4gd2UgcmV0dXJuIHRoZVxuICAgICAgLy8gcGFyZW50J3MgcHJldmlvdXMgdmFsdWUuIE9uY2UgdGhlIHN1YnRhZyBjaGFuZ2VzIGZvciB0aGUgZmlyc3QgdGltZSxcbiAgICAgIC8vIHdlIGNsZWFyIHRoZSBjYWNoZSBhbmQgZXZlcnl0aGluZyBpcyBmaW5hbGx5IGluIHN5bmMgd2l0aCB0aGUgcGFyZW50LlxuICAgICAgdGFnLnN1YnRhZ0J1ZmZlckNhY2hlID0gc3VidGFnW0NPTVBVVEVdKCk7XG4gICAgICB0YWcuc3VidGFnID0gc3VidGFnO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBkaXJ0eSh0YWc6IERpcnR5YWJsZVRhZyB8IFVwZGF0YWJsZVRhZykge1xuICAgIGlmIChcbiAgICAgIERFQlVHICYmXG4gICAgICAhKHRhZ1tUWVBFXSA9PT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUgfHwgdGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIGRpcnR5IGEgdGFnIHRoYXQgd2FzIG5vdCBkaXJ0eWFibGUnKTtcbiAgICB9XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIC8vIFVzdWFsbHkgYnkgdGhpcyBwb2ludCwgd2UndmUgYWxyZWFkeSBhc3NlcnRlZCB3aXRoIGJldHRlciBlcnJvciBpbmZvcm1hdGlvbixcbiAgICAgIC8vIGJ1dCB0aGlzIGlzIG91ciBsYXN0IGxpbmUgb2YgZGVmZW5zZS5cbiAgICAgIGFzc2VydFRhZ05vdENvbnN1bWVkISh0YWcpO1xuICAgIH1cblxuICAgICh0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsKS5yZXZpc2lvbiA9ICsrJFJFVklTSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkaXJ0eSA9IE1vbm9tb3JwaGljVGFnSW1wbC5kaXJ0eTtcbmV4cG9ydCBjb25zdCB1cGRhdGUgPSBNb25vbW9ycGhpY1RhZ0ltcGwudXBkYXRlO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUYWcoKTogRGlydHlhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5EaXJ0eWFibGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRhYmxlVGFnKCk6IFVwZGF0YWJsZVRhZyB7XG4gIHJldHVybiBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlKTtcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09OU1RBTlRfVEFHID0gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkNvbnN0YW50KSBhcyBDb25zdGFudFRhZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3QoeyB0YWcgfTogVGFnZ2VkKTogYm9vbGVhbiB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uc3RUYWcodGFnOiBUYWcpOiB0YWcgaXMgQ29uc3RhbnRUYWcge1xuICByZXR1cm4gdGFnID09PSBDT05TVEFOVF9UQUc7XG59XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIFZvbGF0aWxlVGFnIGltcGxlbWVudHMgVGFnIHtcbiAgW0NPTVBVVEVdKCkge1xuICAgIHJldHVybiBWT0xBVElMRTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgVk9MQVRJTEVfVEFHID0gbmV3IFZvbGF0aWxlVGFnKCk7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1cnJlbnRUYWcgaW1wbGVtZW50cyBDdXJyZW50VGFnIHtcbiAgW0NPTVBVVEVdKCkge1xuICAgIHJldHVybiAkUkVWSVNJT047XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENVUlJFTlRfVEFHID0gbmV3IEN1cnJlbnRUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZSh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIGxldCBvcHRpbWl6ZWQ6IFRhZ1tdID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSB0YWdzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCB0YWcgPSB0YWdzW2ldO1xuICAgIGlmICh0YWcgPT09IENPTlNUQU5UX1RBRykgY29udGludWU7XG4gICAgb3B0aW1pemVkLnB1c2godGFnKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVDb21iaW5hdG9yVGFnKG9wdGltaXplZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21iaW5hdG9yVGFnKHRhZ3M6IFRhZ1tdKTogVGFnIHtcbiAgc3dpdGNoICh0YWdzLmxlbmd0aCkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJldHVybiBDT05TVEFOVF9UQUc7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIHRhZ3NbMF07XG4gICAgZGVmYXVsdDpcbiAgICAgIGxldCB0YWcgPSBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcikgYXMgQ29tYmluYXRvclRhZztcbiAgICAgICh0YWcgYXMgYW55KS5zdWJ0YWdzID0gdGFncztcbiAgICAgIHJldHVybiB0YWc7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -1,5 +0,5 @@

export { ALLOW_CYCLES, bump, combine, COMPUTE, CONSTANT_TAG, CONSTANT, createCombinatorTag, createTag, createUpdatableTag, CURRENT_TAG, dirty, INITIAL, isConst, isConstTag, update, validate, value, VOLATILE_TAG, VOLATILE } from './lib/validators';
export { ALLOW_CYCLES, bump, combine, COMPUTE, CONSTANT_TAG, CONSTANT, createCombinatorTag, createTag, createUpdatableTag, CurrentTag, CURRENT_TAG, dirty, INITIAL, isConst, isConstTag, update, validate, value, VolatileTag, VOLATILE_TAG, VOLATILE } from './lib/validators';
export { dirtyTagFor, tagFor, setPropertyDidChange } from './lib/meta';
export { consume, EPOCH, isTracking, track, trackedData, untrack } from './lib/tracking';
export { setAutotrackingTransactionEnv, runInAutotrackingTransaction, deprecateMutationsInAutotrackingTransaction } from './lib/debug';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLFlBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxFQUFBLG1CQUFBLEVBQUEsU0FBQSxFQUFBLGtCQUFBLEVBQUEsV0FBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLFVBQUEsRUFBQSxNQUFBLEVBQUEsUUFBQSxFQUFBLEtBQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxRQUFBLGtCQUFBO0FBK0JBLFNBQUEsV0FBQSxFQUFBLE1BQUEsRUFBQSxvQkFBQSxRQUFBLFlBQUE7QUFFQSxTQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFBLEtBQUEsRUFBQSxXQUFBLEVBQUEsT0FBQSxRQUFBLGdCQUFBO0FBRUEsU0FBQSw2QkFBQSxFQUFBLDRCQUFBLEVBQUEsMkNBQUEsUUFBQSxhQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQUxMT1dfQ1lDTEVTLFxuICBidW1wLFxuICBDb21iaW5hdG9yVGFnLFxuICBjb21iaW5lLFxuICBDT01QVVRFLFxuICBDT05TVEFOVF9UQUcsXG4gIENPTlNUQU5ULFxuICBDb25zdGFudFRhZyxcbiAgY3JlYXRlQ29tYmluYXRvclRhZyxcbiAgY3JlYXRlVGFnLFxuICBjcmVhdGVVcGRhdGFibGVUYWcsXG4gIENVUlJFTlRfVEFHLFxuICBkaXJ0eSxcbiAgRGlydHlhYmxlVGFnLFxuICBFbnRpdHlUYWcsXG4gIEVudGl0eVRhZ2dlZCxcbiAgSU5JVElBTCxcbiAgaXNDb25zdCxcbiAgaXNDb25zdFRhZyxcbiAgUmV2aXNpb24sXG4gIFRhZyxcbiAgVGFnZ2VkLFxuICBVcGRhdGFibGVUYWcsXG4gIHVwZGF0ZSxcbiAgdmFsaWRhdGUsXG4gIHZhbHVlLFxuICBWT0xBVElMRV9UQUcsXG4gIFZPTEFUSUxFLFxufSBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgZGlydHlUYWdGb3IsIHRhZ0Zvciwgc2V0UHJvcGVydHlEaWRDaGFuZ2UgfSBmcm9tICcuL2xpYi9tZXRhJztcblxuZXhwb3J0IHsgY29uc3VtZSwgRVBPQ0gsIGlzVHJhY2tpbmcsIHRyYWNrLCB0cmFja2VkRGF0YSwgdW50cmFjayB9IGZyb20gJy4vbGliL3RyYWNraW5nJztcblxuZXhwb3J0IHtcbiAgc2V0QXV0b3RyYWNraW5nVHJhbnNhY3Rpb25FbnYsXG4gIHJ1bkluQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vbGliL2RlYnVnJztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLFlBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxFQUFBLG1CQUFBLEVBQUEsU0FBQSxFQUFBLGtCQUFBLEVBQUEsVUFBQSxFQUFBLFdBQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxVQUFBLEVBQUEsTUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxRQUFBLFFBQUEsa0JBQUE7QUFpQ0EsU0FBQSxXQUFBLEVBQUEsTUFBQSxFQUFBLG9CQUFBLFFBQUEsWUFBQTtBQUVBLFNBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLFFBQUEsZ0JBQUE7QUFFQSxTQUFBLDZCQUFBLEVBQUEsNEJBQUEsRUFBQSwyQ0FBQSxRQUFBLGFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBBTExPV19DWUNMRVMsXG4gIGJ1bXAsXG4gIENvbWJpbmF0b3JUYWcsXG4gIGNvbWJpbmUsXG4gIENPTVBVVEUsXG4gIENPTlNUQU5UX1RBRyxcbiAgQ09OU1RBTlQsXG4gIENvbnN0YW50VGFnLFxuICBjcmVhdGVDb21iaW5hdG9yVGFnLFxuICBjcmVhdGVUYWcsXG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgQ3VycmVudFRhZyxcbiAgQ1VSUkVOVF9UQUcsXG4gIGRpcnR5LFxuICBEaXJ0eWFibGVUYWcsXG4gIEVudGl0eVRhZyxcbiAgRW50aXR5VGFnZ2VkLFxuICBJTklUSUFMLFxuICBpc0NvbnN0LFxuICBpc0NvbnN0VGFnLFxuICBSZXZpc2lvbixcbiAgVGFnLFxuICBUYWdnZWQsXG4gIFVwZGF0YWJsZVRhZyxcbiAgdXBkYXRlLFxuICB2YWxpZGF0ZSxcbiAgdmFsdWUsXG4gIFZvbGF0aWxlVGFnLFxuICBWT0xBVElMRV9UQUcsXG4gIFZPTEFUSUxFLFxufSBmcm9tICcuL2xpYi92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgZGlydHlUYWdGb3IsIHRhZ0Zvciwgc2V0UHJvcGVydHlEaWRDaGFuZ2UgfSBmcm9tICcuL2xpYi9tZXRhJztcblxuZXhwb3J0IHsgY29uc3VtZSwgRVBPQ0gsIGlzVHJhY2tpbmcsIHRyYWNrLCB0cmFja2VkRGF0YSwgdW50cmFjayB9IGZyb20gJy4vbGliL3RyYWNraW5nJztcblxuZXhwb3J0IHtcbiAgc2V0QXV0b3RyYWNraW5nVHJhbnNhY3Rpb25FbnYsXG4gIHJ1bkluQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luQXV0b3RyYWNraW5nVHJhbnNhY3Rpb24sXG59IGZyb20gJy4vbGliL2RlYnVnJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -202,3 +202,3 @@ import { DEBUG } from '@glimmer/env';

var VolatileTag =
export var VolatileTag =
/*#__PURE__*/

@@ -216,6 +216,5 @@ function () {

}();
export var VOLATILE_TAG = new VolatileTag(); //////////
var CurrentTag =
export var CurrentTag =
/*#__PURE__*/

@@ -233,3 +232,2 @@ function () {

}();
export var CURRENT_TAG = new CurrentTag(); //////////

@@ -264,2 +262,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBQ0EsU0FBQSxNQUFBLFFBQUEsU0FBQTtBQUNBLFNBQUEsb0JBQUEsUUFBQSxTQUFBO0FBTUEsT0FBTyxJQUFNLFFBQVEsR0FBZCxDQUFBO0FBQ1AsT0FBTyxJQUFNLE9BQU8sR0FBYixDQUFBO0FBQ1AsT0FBTyxJQUFNLFFBQVEsR0FBZCxnQkFBQSxDLENBQTZDOztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBO0FBRUEsT0FBTSxTQUFBLElBQUEsR0FBYztBQUNsQixFQUFBLFNBQVM7RUFHWDs7QUFFQSxPQUFPLElBQU0sT0FBTyxHQUFrQixNQUFNLENBQXJDLGFBQXFDLENBQXJDLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7OztBQWNBLE9BQU0sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7OztBQVVBLE9BQU0sU0FBQSxRQUFBLENBQUEsR0FBQSxFQUFBLFFBQUEsRUFBK0M7QUFDbkQsU0FBTyxRQUFRLElBQUksR0FBRyxDQUF0QixPQUFzQixDQUFILEVBQW5CO0FBQ0Q7QUFpQkQsSUFBTSxJQUFJLEdBQWtCLE1BQU0sQ0FBbEMsVUFBa0MsQ0FBbEM7QUFFQSxPQUFPLElBQUEsWUFBQTs7QUFFUCxJQUFBLEtBQUEsRUFBVztBQUNULEVBQUEsWUFBWSxHQUFHLElBQWYsT0FBZSxFQUFmO0FBQ0Q7O0lBcUJELGtCOzs7QUFhRSw4QkFBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FB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QUFFQSxPQUFNLFNBQUEsT0FBQSxDQUFBLElBQUEsRUFBNkI7QUFDakMsTUFBSSxTQUFTLEdBQWIsRUFBQTs7QUFFQSxPQUFLLElBQUksQ0FBQyxHQUFMLENBQUEsRUFBVyxDQUFDLEdBQUcsSUFBSSxDQUF4QixNQUFBLEVBQWlDLENBQUMsR0FBbEMsQ0FBQSxFQUF3QyxDQUF4QyxFQUFBLEVBQTZDO0FBQzNDLFFBQUksR0FBRyxHQUFHLElBQUksQ0FBZCxDQUFjLENBQWQ7QUFDQSxRQUFJLEdBQUcsS0FBUCxZQUFBLEVBQTBCO0FBQzFCLElBQUEsU0FBUyxDQUFULElBQUEsQ0FBQSxHQUFBO0FBQ0Q7O0FBRUQsU0FBTyxtQkFBbUIsQ0FBMUIsU0FBMEIsQ0FBMUI7QUFDRDtBQUVELE9BQU0sU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBeUM7QUFDN0MsVUFBUSxJQUFJLENBQVosTUFBQTtBQUNFLFNBQUEsQ0FBQTtBQUNFLGFBQUEsWUFBQTs7QUFDRixTQUFBLENBQUE7QUFDRSxhQUFPLElBQUksQ0FBWCxDQUFXLENBQVg7O0FBQ0Y7QUFDRSxVQUFJLEdBQUcsR0FBRyxJQUFBLGtCQUFBLENBQXNCO0FBQUE7QUFBdEIsT0FBVjtBQUNDLE1BQUEsR0FBVyxDQUFYLE9BQUEsR0FBQSxJQUFBO0FBQ0QsYUFBQSxHQUFBO0FBUko7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IFVuaW9uVG9JbnRlcnNlY3Rpb24sIHN5bWJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgYXNzZXJ0VGFnTm90Q29uc3VtZWQgfSBmcm9tICcuL2RlYnVnJztcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgdHlwZSBSZXZpc2lvbiA9IG51bWJlcjtcblxuZXhwb3J0IGNvbnN0IENPTlNUQU5UOiBSZXZpc2lvbiA9IDA7XG5leHBvcnQgY29uc3QgSU5JVElBTDogUmV2aXNpb24gPSAxO1xuZXhwb3J0IGNvbnN0IFZPTEFUSUxFOiBSZXZpc2lvbiA9IDkwMDcxOTkyNTQ3NDA5OTE7IC8vIE1BWF9JTlRcblxubGV0ICRSRVZJU0lPTiA9IElOSVRJQUw7XG5cbmV4cG9ydCBmdW5jdGlvbiBidW1wKCkge1xuICAkUkVWSVNJT04rKztcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09NUFVURTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX0NPTVBVVEUnKTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUYWc8VD4ge1xuICBbQ09NUFVURV0oKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWcgZXh0ZW5kcyBFbnRpdHlUYWc8UmV2aXNpb24+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnZ2VkPFQ+IHtcbiAgdGFnOiBFbnRpdHlUYWc8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnZ2VkIHtcbiAgdGFnOiBUYWc7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBgdmFsdWVgIHJlY2VpdmVzIGEgdGFnIGFuZCByZXR1cm5zIGFuIG9wYXF1ZSBSZXZpc2lvbiBiYXNlZCBvbiB0aGF0IHRhZy4gVGhpc1xuICogc25hcHNob3QgY2FuIHRoZW4gbGF0ZXIgYmUgcGFzc2VkIHRvIGB2YWxpZGF0ZWAgd2l0aCB0aGUgc2FtZSB0YWcgdG9cbiAqIGRldGVybWluZSBpZiB0aGUgdGFnIGhhcyBjaGFuZ2VkIGF0IGFsbCBzaW5jZSB0aGUgdGltZSB0aGF0IGB2YWx1ZWAgd2FzXG4gKiBjYWxsZWQuXG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgZ2xvYmFsIHJldmlzaW9uIGNvdW50IGRpcmVjdGx5IGZvclxuICogcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGFuZCBzaG91bGQgbm90IGJlXG4gKiByZWxpZWQgb24gZGlyZWN0bHkgYnkgdXNlcnMgb2YgdGhlc2UgQVBJcy4gSW5zdGVhZCwgUmV2aXNpb25zIHNob3VsZCBiZVxuICogdHJlYXRlZCBhcyBpZiB0aGV5IGFyZSBvcGFxdWUvdW5rbm93biwgYW5kIHNob3VsZCBvbmx5IGJlIGludGVyYWN0ZWQgd2l0aCB2aWFcbiAqIHRoZSBgdmFsdWVgL2B2YWxpZGF0ZWAgQVBJLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlKF90YWc6IFRhZyk6IFJldmlzaW9uIHtcbiAgcmV0dXJuICRSRVZJU0lPTjtcbn1cblxuLyoqXG4gKiBgdmFsaWRhdGVgIHJlY2VpdmVzIGEgdGFnIGFuZCBhIHNuYXBzaG90IGZyb20gYSBwcmV2aW91cyBjYWxsIHRvIGB2YWx1ZWAgd2l0aFxuICogdGhlIHNhbWUgdGFnLCBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgdGFnIGlzIHN0aWxsIHZhbGlkIGNvbXBhcmVkIHRvIHRoZVxuICogc25hcHNob3QuIElmIHRoZSB0YWcncyBzdGF0ZSBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlbiwgYHZhbGlkYXRlYCB3aWxsXG4gKiByZXR1cm4gZmFsc2UsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVybiB0cnVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGFcbiAqIGNhbGN1bGF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRhZ3Mgc2hvdWxkIGJlIHJlcnVuLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqIEBwYXJhbSBzbmFwc2hvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodGFnOiBUYWcsIHNuYXBzaG90OiBSZXZpc2lvbikge1xuICByZXR1cm4gc25hcHNob3QgPj0gdGFnW0NPTVBVVEVdKCk7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBUaGlzIGVudW0gcmVwcmVzZW50cyBhbGwgb2YgdGhlIHBvc3NpYmxlIHRhZyB0eXBlcyBmb3IgdGhlIG1vbm9tb3JwaGljIHRhZyBjbGFzcy5cbiAqIE90aGVyIGN1c3RvbSB0YWcgY2xhc3NlcyBjYW4gZXhpc3QsIHN1Y2ggYXMgQ3VycmVudFRhZyBhbmQgVm9sYXRpbGVUYWcsIGJ1dCBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFueSB0eXBlIG9mIHRhZyB0aGF0IGlzIG1lYW50IHRvIGJlIHVzZWQgZnJlcXVlbnRseSBzaG91bGRcbiAqIGJlIGFkZGVkIHRvIHRoZSBtb25vbW9ycGhpYyB0YWcuXG4gKi9cbmNvbnN0IGVudW0gTW9ub21vcnBoaWNUYWdUeXBlcyB7XG4gIERpcnR5YWJsZSxcbiAgVXBkYXRhYmxlLFxuICBDb21iaW5hdG9yLFxuICBDb25zdGFudCxcbn1cblxuY29uc3QgVFlQRTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX1RZUEUnKTtcblxuZXhwb3J0IGxldCBBTExPV19DWUNMRVM6IFdlYWtNYXA8VGFnLCBib29sZWFuPiB8IHVuZGVmaW5lZDtcblxuaWYgKERFQlVHKSB7XG4gIEFMTE9XX0NZQ0xFUyA9IG5ldyBXZWFrTWFwKCk7XG59XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ0Jhc2U8VCBleHRlbmRzIE1vbm9tb3JwaGljVGFnVHlwZXM+IGV4dGVuZHMgVGFnIHtcbiAgW1RZUEVdOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcnR5YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRhYmxlVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlPiB7fVxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5hdG9yVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RhbnRUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5Db25zdGFudD4ge31cblxuaW50ZXJmYWNlIE1vbm9tb3JwaGljVGFnTWFwcGluZyB7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZV06IERpcnR5YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlXTogVXBkYXRhYmxlVGFnO1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yXTogQ29tYmluYXRvclRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnRdOiBDb25zdGFudFRhZztcbn1cblxudHlwZSBNb25vbW9ycGhpY1RhZyA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdNYXBwaW5nW01vbm9tb3JwaGljVGFnVHlwZXNdPjtcbnR5cGUgTW9ub21vcnBoaWNUYWdUeXBlID0gVW5pb25Ub0ludGVyc2VjdGlvbjxNb25vbW9ycGhpY1RhZ1R5cGVzPjtcblxuY2xhc3MgTW9ub21vcnBoaWNUYWdJbXBsIGltcGxlbWVudHMgTW9ub21vcnBoaWNUYWcge1xuICBwcml2YXRlIHJldmlzaW9uID0gSU5JVElBTDtcbiAgcHJpdmF0ZSBsYXN0Q2hlY2tlZCA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdFZhbHVlID0gSU5JVElBTDtcblxuICBwcml2YXRlIGlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJ0YWdzOiBUYWdbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc3VidGFnOiBUYWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdWJ0YWdCdWZmZXJDYWNoZTogUmV2aXNpb24gfCBudWxsID0gbnVsbDtcblxuICBbVFlQRV06IE1vbm9tb3JwaGljVGFnVHlwZTtcblxuICBjb25zdHJ1Y3Rvcih0eXBlOiBNb25vbW9ycGhpY1RhZ1R5cGVzKSB7XG4gICAgdGhpc1tUWVBFXSA9IHR5cGUgYXMgTW9ub21vcnBoaWNUYWdUeXBlO1xuICB9XG5cbiAgW0NPTVBVVEVdKCk6IFJldmlzaW9uIHtcbiAgICBsZXQgeyBsYXN0Q2hlY2tlZCB9ID0gdGhpcztcblxuICAgIGlmICh0aGlzLmlzVXBkYXRpbmcgPT09IHRydWUpIHtcbiAgICAgIGlmIChERUJVRyAmJiAhQUxMT1dfQ1lDTEVTIS5oYXModGhpcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDeWNsZXMgaW4gdGFncyBhcmUgbm90IGFsbG93ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0Q2hlY2tlZCA9ICsrJFJFVklTSU9OO1xuICAgIH0gZWxzZSBpZiAobGFzdENoZWNrZWQgIT09ICRSRVZJU0lPTikge1xuICAgICAgdGhpcy5pc1VwZGF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSAkUkVWSVNJT047XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCB7IHN1YnRhZ3MsIHN1YnRhZywgc3VidGFnQnVmZmVyQ2FjaGUsIGxhc3RWYWx1ZSwgcmV2aXNpb24gfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHN1YnRhZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGxldCBzdWJ0YWdWYWx1ZSA9IHN1YnRhZ1tDT01QVVRFXSgpO1xuXG4gICAgICAgICAgaWYgKHN1YnRhZ1ZhbHVlID09PSBzdWJ0YWdCdWZmZXJDYWNoZSkge1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgbGFzdFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHRlbXBvcmFyeSBidWZmZXIgY2FjaGVcbiAgICAgICAgICAgIHRoaXMuc3VidGFnQnVmZmVyQ2FjaGUgPSBudWxsO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgc3VidGFnVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJ0YWdzICE9PSBudWxsKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJ0YWdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBzdWJ0YWdzW2ldW0NPTVBVVEVdKCk7XG4gICAgICAgICAgICByZXZpc2lvbiA9IE1hdGgubWF4KHZhbHVlLCByZXZpc2lvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSByZXZpc2lvbjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhc3RWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGUoX3RhZzogVXBkYXRhYmxlVGFnLCBfc3VidGFnOiBUYWcpIHtcbiAgICBpZiAoREVCVUcgJiYgX3RhZ1tUWVBFXSAhPT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhIHRhZyB0aGF0IHdhcyBub3QgdXBkYXRhYmxlJyk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVFMgMy43IHNob3VsZCBhbGxvdyB1cyB0byBkbyB0aGlzIHZpYSBhc3NlcnRpb25cbiAgICBsZXQgdGFnID0gX3RhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGw7XG4gICAgbGV0IHN1YnRhZyA9IF9zdWJ0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuXG4gICAgaWYgKHN1YnRhZyA9PT0gQ09OU1RBTlRfVEFHKSB7XG4gICAgICB0YWcuc3VidGFnID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgcG9zc2liaWxpdGllcyB3aGVuIHVwZGF0aW5nIGEgc3VidGFnOlxuICAgICAgLy9cbiAgICAgIC8vIDEuIHN1YnRhZ1tDT01QVVRFXSgpIDw9IHRhZ1tDT01QVVRFXSgpO1xuICAgICAgLy8gMi4gc3VidGFnW0NPTVBVVEVdKCkgPiB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vXG4gICAgICAvLyBUaGUgZmlyc3QgcG9zc2liaWxpdHkgaXMgY29tcGxldGVseSBmaW5lIHdpdGhpbiBvdXIgY2FjaGluZyBtb2RlbCwgYnV0XG4gICAgICAvLyB0aGUgc2Vjb25kIHBvc3NpYmlsaXR5IHByZXNlbnRzIGEgcHJvYmxlbS4gSWYgdGhlIHBhcmVudCB0YWcgaGFzXG4gICAgICAvLyBhbHJlYWR5IGJlZW4gcmVhZCwgdGhlbiBpdCdzIHZhbHVlIGlzIGNhY2hlZCBhbmQgd2lsbCBub3QgdXBkYXRlIHRvXG4gICAgICAvLyByZWZsZWN0IHRoZSBzdWJ0YWcncyBncmVhdGVyIHZhbHVlLiBOZXh0IHRpbWUgdGhlIGNhY2hlIGlzIGJ1c3RlZCwgdGhlXG4gICAgICAvLyBzdWJ0YWcncyB2YWx1ZSBfd2lsbF8gYmUgcmVhZCwgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBfZ3JlYXRlcl8gdGhhblxuICAgICAgLy8gdGhlIHNhdmVkIHNuYXBzaG90IG9mIHRoZSBwYXJlbnQsIGNhdXNpbmcgdGhlIHJlc3VsdGluZyBjYWxjdWxhdGlvbiB0b1xuICAgICAgLy8gYmUgcmVydW4gZXJyb25lb3VzbHkuXG4gICAgICAvL1xuICAgICAgLy8gSW4gb3JkZXIgdG8gcHJldmVudCB0aGlzLCB3aGVuIHdlIGZpcnN0IHVwZGF0ZSB0byBhIG5ldyBzdWJ0YWcgd2Ugc3RvcmVcbiAgICAgIC8vIGl0cyBjb21wdXRlZCB2YWx1ZSwgYW5kIHRoZW4gY2hlY2sgYWdhaW5zdCB0aGF0IGNvbXB1dGVkIHZhbHVlIG9uXG4gICAgICAvLyBzdWJzZXF1ZW50IHVwZGF0ZXMuIElmIGl0cyB2YWx1ZSBoYXNuJ3QgY2hhbmdlZCwgdGhlbiB3ZSByZXR1cm4gdGhlXG4gICAgICAvLyBwYXJlbnQncyBwcmV2aW91cyB2YWx1ZS4gT25jZSB0aGUgc3VidGFnIGNoYW5nZXMgZm9yIHRoZSBmaXJzdCB0aW1lLFxuICAgICAgLy8gd2UgY2xlYXIgdGhlIGNhY2hlIGFuZCBldmVyeXRoaW5nIGlzIGZpbmFsbHkgaW4gc3luYyB3aXRoIHRoZSBwYXJlbnQuXG4gICAgICB0YWcuc3VidGFnQnVmZmVyQ2FjaGUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcbiAgICAgIHRhZy5zdWJ0YWcgPSBzdWJ0YWc7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRpcnR5KHRhZzogRGlydHlhYmxlVGFnIHwgVXBkYXRhYmxlVGFnKSB7XG4gICAgaWYgKFxuICAgICAgREVCVUcgJiZcbiAgICAgICEodGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZSB8fCB0YWdbVFlQRV0gPT09IE1vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gZGlydHkgYSB0YWcgdGhhdCB3YXMgbm90IGRpcnR5YWJsZScpO1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgLy8gVXN1YWxseSBieSB0aGlzIHBvaW50LCB3ZSd2ZSBhbHJlYWR5IGFzc2VydGVkIHdpdGggYmV0dGVyIGVycm9yIGluZm9ybWF0aW9uLFxuICAgICAgLy8gYnV0IHRoaXMgaXMgb3VyIGxhc3QgbGluZSBvZiBkZWZlbnNlLlxuICAgICAgYXNzZXJ0VGFnTm90Q29uc3VtZWQhKHRhZyk7XG4gICAgfVxuXG4gICAgKHRhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGwpLnJldmlzaW9uID0gKyskUkVWSVNJT047XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRpcnR5ID0gTW9ub21vcnBoaWNUYWdJbXBsLmRpcnR5O1xuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IE1vbm9tb3JwaGljVGFnSW1wbC51cGRhdGU7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhZygpOiBEaXJ0eWFibGVUYWcge1xuICByZXR1cm4gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVcGRhdGFibGVUYWcoKTogVXBkYXRhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpO1xufVxuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVF9UQUcgPSBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQpIGFzIENvbnN0YW50VGFnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdCh7IHRhZyB9OiBUYWdnZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRhZyA9PT0gQ09OU1RBTlRfVEFHO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdFRhZyh0YWc6IFRhZyk6IHRhZyBpcyBDb25zdGFudFRhZyB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuLy8vLy8vLy8vL1xuXG5jbGFzcyBWb2xhdGlsZVRhZyBpbXBsZW1lbnRzIFRhZyB7XG4gIFtDT01QVVRFXSgpIHtcbiAgICByZXR1cm4gVk9MQVRJTEU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFZPTEFUSUxFX1RBRyA9IG5ldyBWb2xhdGlsZVRhZygpO1xuXG4vLy8vLy8vLy8vXG5cbmNsYXNzIEN1cnJlbnRUYWcgaW1wbGVtZW50cyBDdXJyZW50VGFnIHtcbiAgW0NPTVBVVEVdKCkge1xuICAgIHJldHVybiAkUkVWSVNJT047XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IENVUlJFTlRfVEFHID0gbmV3IEN1cnJlbnRUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZSh0YWdzOiBUYWdbXSk6IFRhZyB7XG4gIGxldCBvcHRpbWl6ZWQ6IFRhZ1tdID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSB0YWdzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGxldCB0YWcgPSB0YWdzW2ldO1xuICAgIGlmICh0YWcgPT09IENPTlNUQU5UX1RBRykgY29udGludWU7XG4gICAgb3B0aW1pemVkLnB1c2godGFnKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVDb21iaW5hdG9yVGFnKG9wdGltaXplZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21iaW5hdG9yVGFnKHRhZ3M6IFRhZ1tdKTogVGFnIHtcbiAgc3dpdGNoICh0YWdzLmxlbmd0aCkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJldHVybiBDT05TVEFOVF9UQUc7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIHRhZ3NbMF07XG4gICAgZGVmYXVsdDpcbiAgICAgIGxldCB0YWcgPSBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcikgYXMgQ29tYmluYXRvclRhZztcbiAgICAgICh0YWcgYXMgYW55KS5zdWJ0YWdzID0gdGFncztcbiAgICAgIHJldHVybiB0YWc7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZhbGlkYXRvci9saWIvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBQ0EsU0FBQSxNQUFBLFFBQUEsU0FBQTtBQUNBLFNBQUEsb0JBQUEsUUFBQSxTQUFBO0FBTUEsT0FBTyxJQUFNLFFBQVEsR0FBZCxDQUFBO0FBQ1AsT0FBTyxJQUFNLE9BQU8sR0FBYixDQUFBO0FBQ1AsT0FBTyxJQUFNLFFBQVEsR0FBZCxnQkFBQSxDLENBQTZDOztBQUVwRCxJQUFJLFNBQVMsR0FBYixPQUFBO0FBRUEsT0FBTSxTQUFBLElBQUEsR0FBYztBQUNsQixFQUFBLFNBQVM7RUFHWDs7QUFFQSxPQUFPLElBQU0sT0FBTyxHQUFrQixNQUFNLENBQXJDLGFBQXFDLENBQXJDLEMsQ0FnQlA7O0FBRUE7Ozs7Ozs7Ozs7Ozs7OztBQWNBLE9BQU0sU0FBQSxLQUFBLENBQUEsSUFBQSxFQUF5QjtBQUM3QixTQUFBLFNBQUE7QUFDRDtBQUVEOzs7Ozs7Ozs7OztBQVVBLE9BQU0sU0FBQSxRQUFBLENBQUEsR0FBQSxFQUFBLFFBQUEsRUFBK0M7QUFDbkQsU0FBTyxRQUFRLElBQUksR0FBRyxDQUF0QixPQUFzQixDQUFILEVBQW5CO0FBQ0Q7QUFpQkQsSUFBTSxJQUFJLEdBQWtCLE1BQU0sQ0FBbEMsVUFBa0MsQ0FBbEM7QUFFQSxPQUFPLElBQUEsWUFBQTs7QUFFUCxJQUFBLEtBQUEsRUFBVztBQUNULEVBQUEsWUFBWSxHQUFHLElBQWYsT0FBZSxFQUFmO0FBQ0Q7O0lBcUJELGtCOzs7QUFhRSw4QkFBQSxJQUFBLEVBQXFDO0FBWjdCLFNBQUEsUUFBQSxHQUFBLE9BQUE7QUFDQSxTQUFBLFdBQUEsR0FBQSxPQUFBO0FBQ0EsU0FBQSxTQUFBLEdBQUEsT0FBQTtBQUVBLFNBQUEsVUFBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxJQUFBO0FBRUEsU0FB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UCxXQUFBLFNBQUE7QUFDRCxHQUhIOztBQUFBO0FBQUE7QUFNQSxPQUFPLElBQU0sV0FBVyxHQUFHLElBQXBCLFVBQW9CLEVBQXBCLEMsQ0FFUDs7QUFFQSxPQUFNLFNBQUEsT0FBQSxDQUFBLElBQUEsRUFBNkI7QUFDakMsTUFBSSxTQUFTLEdBQWIsRUFBQTs7QUFFQSxPQUFLLElBQUksQ0FBQyxHQUFMLENBQUEsRUFBVyxDQUFDLEdBQUcsSUFBSSxDQUF4QixNQUFBLEVBQWlDLENBQUMsR0FBbEMsQ0FBQSxFQUF3QyxDQUF4QyxFQUFBLEVBQTZDO0FBQzNDLFFBQUksR0FBRyxHQUFHLElBQUksQ0FBZCxDQUFjLENBQWQ7QUFDQSxRQUFJLEdBQUcsS0FBUCxZQUFBLEVBQTBCO0FBQzFCLElBQUEsU0FBUyxDQUFULElBQUEsQ0FBQSxHQUFBO0FBQ0Q7O0FBRUQsU0FBTyxtQkFBbUIsQ0FBMUIsU0FBMEIsQ0FBMUI7QUFDRDtBQUVELE9BQU0sU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBeUM7QUFDN0MsVUFBUSxJQUFJLENBQVosTUFBQTtBQUNFLFNBQUEsQ0FBQTtBQUNFLGFBQUEsWUFBQTs7QUFDRixTQUFBLENBQUE7QUFDRSxhQUFPLElBQUksQ0FBWCxDQUFXLENBQVg7O0FBQ0Y7QUFDRSxVQUFJLEdBQUcsR0FBRyxJQUFBLGtCQUFBLENBQXNCO0FBQUE7QUFBdEIsT0FBVjtBQUNDLE1BQUEsR0FBVyxDQUFYLE9BQUEsR0FBQSxJQUFBO0FBQ0QsYUFBQSxHQUFBO0FBUko7QUFVRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IFVuaW9uVG9JbnRlcnNlY3Rpb24sIHN5bWJvbCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgYXNzZXJ0VGFnTm90Q29uc3VtZWQgfSBmcm9tICcuL2RlYnVnJztcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgdHlwZSBSZXZpc2lvbiA9IG51bWJlcjtcblxuZXhwb3J0IGNvbnN0IENPTlNUQU5UOiBSZXZpc2lvbiA9IDA7XG5leHBvcnQgY29uc3QgSU5JVElBTDogUmV2aXNpb24gPSAxO1xuZXhwb3J0IGNvbnN0IFZPTEFUSUxFOiBSZXZpc2lvbiA9IDkwMDcxOTkyNTQ3NDA5OTE7IC8vIE1BWF9JTlRcblxubGV0ICRSRVZJU0lPTiA9IElOSVRJQUw7XG5cbmV4cG9ydCBmdW5jdGlvbiBidW1wKCkge1xuICAkUkVWSVNJT04rKztcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY29uc3QgQ09NUFVURTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX0NPTVBVVEUnKTtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlUYWc8VD4ge1xuICBbQ09NUFVURV0oKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWcgZXh0ZW5kcyBFbnRpdHlUYWc8UmV2aXNpb24+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5VGFnZ2VkPFQ+IHtcbiAgdGFnOiBFbnRpdHlUYWc8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnZ2VkIHtcbiAgdGFnOiBUYWc7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBgdmFsdWVgIHJlY2VpdmVzIGEgdGFnIGFuZCByZXR1cm5zIGFuIG9wYXF1ZSBSZXZpc2lvbiBiYXNlZCBvbiB0aGF0IHRhZy4gVGhpc1xuICogc25hcHNob3QgY2FuIHRoZW4gbGF0ZXIgYmUgcGFzc2VkIHRvIGB2YWxpZGF0ZWAgd2l0aCB0aGUgc2FtZSB0YWcgdG9cbiAqIGRldGVybWluZSBpZiB0aGUgdGFnIGhhcyBjaGFuZ2VkIGF0IGFsbCBzaW5jZSB0aGUgdGltZSB0aGF0IGB2YWx1ZWAgd2FzXG4gKiBjYWxsZWQuXG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0aGUgZ2xvYmFsIHJldmlzaW9uIGNvdW50IGRpcmVjdGx5IGZvclxuICogcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGFuZCBzaG91bGQgbm90IGJlXG4gKiByZWxpZWQgb24gZGlyZWN0bHkgYnkgdXNlcnMgb2YgdGhlc2UgQVBJcy4gSW5zdGVhZCwgUmV2aXNpb25zIHNob3VsZCBiZVxuICogdHJlYXRlZCBhcyBpZiB0aGV5IGFyZSBvcGFxdWUvdW5rbm93biwgYW5kIHNob3VsZCBvbmx5IGJlIGludGVyYWN0ZWQgd2l0aCB2aWFcbiAqIHRoZSBgdmFsdWVgL2B2YWxpZGF0ZWAgQVBJLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlKF90YWc6IFRhZyk6IFJldmlzaW9uIHtcbiAgcmV0dXJuICRSRVZJU0lPTjtcbn1cblxuLyoqXG4gKiBgdmFsaWRhdGVgIHJlY2VpdmVzIGEgdGFnIGFuZCBhIHNuYXBzaG90IGZyb20gYSBwcmV2aW91cyBjYWxsIHRvIGB2YWx1ZWAgd2l0aFxuICogdGhlIHNhbWUgdGFnLCBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgdGFnIGlzIHN0aWxsIHZhbGlkIGNvbXBhcmVkIHRvIHRoZVxuICogc25hcHNob3QuIElmIHRoZSB0YWcncyBzdGF0ZSBoYXMgY2hhbmdlZCBhdCBhbGwgc2luY2UgdGhlbiwgYHZhbGlkYXRlYCB3aWxsXG4gKiByZXR1cm4gZmFsc2UsIG90aGVyd2lzZSBpdCB3aWxsIHJldHVybiB0cnVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGFcbiAqIGNhbGN1bGF0aW9uIHJlbGF0ZWQgdG8gdGhlIHRhZ3Mgc2hvdWxkIGJlIHJlcnVuLlxuICpcbiAqIEBwYXJhbSB0YWdcbiAqIEBwYXJhbSBzbmFwc2hvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodGFnOiBUYWcsIHNuYXBzaG90OiBSZXZpc2lvbikge1xuICByZXR1cm4gc25hcHNob3QgPj0gdGFnW0NPTVBVVEVdKCk7XG59XG5cbi8vLy8vLy8vLy9cblxuLyoqXG4gKiBUaGlzIGVudW0gcmVwcmVzZW50cyBhbGwgb2YgdGhlIHBvc3NpYmxlIHRhZyB0eXBlcyBmb3IgdGhlIG1vbm9tb3JwaGljIHRhZyBjbGFzcy5cbiAqIE90aGVyIGN1c3RvbSB0YWcgY2xhc3NlcyBjYW4gZXhpc3QsIHN1Y2ggYXMgQ3VycmVudFRhZyBhbmQgVm9sYXRpbGVUYWcsIGJ1dCBmb3JcbiAqIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFueSB0eXBlIG9mIHRhZyB0aGF0IGlzIG1lYW50IHRvIGJlIHVzZWQgZnJlcXVlbnRseSBzaG91bGRcbiAqIGJlIGFkZGVkIHRvIHRoZSBtb25vbW9ycGhpYyB0YWcuXG4gKi9cbmNvbnN0IGVudW0gTW9ub21vcnBoaWNUYWdUeXBlcyB7XG4gIERpcnR5YWJsZSxcbiAgVXBkYXRhYmxlLFxuICBDb21iaW5hdG9yLFxuICBDb25zdGFudCxcbn1cblxuY29uc3QgVFlQRTogdW5pcXVlIHN5bWJvbCA9IHN5bWJvbCgnVEFHX1RZUEUnKTtcblxuZXhwb3J0IGxldCBBTExPV19DWUNMRVM6IFdlYWtNYXA8VGFnLCBib29sZWFuPiB8IHVuZGVmaW5lZDtcblxuaWYgKERFQlVHKSB7XG4gIEFMTE9XX0NZQ0xFUyA9IG5ldyBXZWFrTWFwKCk7XG59XG5cbmludGVyZmFjZSBNb25vbW9ycGhpY1RhZ0Jhc2U8VCBleHRlbmRzIE1vbm9tb3JwaGljVGFnVHlwZXM+IGV4dGVuZHMgVGFnIHtcbiAgW1RZUEVdOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcnR5YWJsZVRhZyBleHRlbmRzIE1vbm9tb3JwaGljVGFnQmFzZTxNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRhYmxlVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlPiB7fVxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5hdG9yVGFnIGV4dGVuZHMgTW9ub21vcnBoaWNUYWdCYXNlPE1vbm9tb3JwaGljVGFnVHlwZXMuQ29tYmluYXRvcj4ge31cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RhbnRUYWcgZXh0ZW5kcyBNb25vbW9ycGhpY1RhZ0Jhc2U8TW9ub21vcnBoaWNUYWdUeXBlcy5Db25zdGFudD4ge31cblxuaW50ZXJmYWNlIE1vbm9tb3JwaGljVGFnTWFwcGluZyB7XG4gIFtNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZV06IERpcnR5YWJsZVRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuVXBkYXRhYmxlXTogVXBkYXRhYmxlVGFnO1xuICBbTW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yXTogQ29tYmluYXRvclRhZztcbiAgW01vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnRdOiBDb25zdGFudFRhZztcbn1cblxudHlwZSBNb25vbW9ycGhpY1RhZyA9IFVuaW9uVG9JbnRlcnNlY3Rpb248TW9ub21vcnBoaWNUYWdNYXBwaW5nW01vbm9tb3JwaGljVGFnVHlwZXNdPjtcbnR5cGUgTW9ub21vcnBoaWNUYWdUeXBlID0gVW5pb25Ub0ludGVyc2VjdGlvbjxNb25vbW9ycGhpY1RhZ1R5cGVzPjtcblxuY2xhc3MgTW9ub21vcnBoaWNUYWdJbXBsIGltcGxlbWVudHMgTW9ub21vcnBoaWNUYWcge1xuICBwcml2YXRlIHJldmlzaW9uID0gSU5JVElBTDtcbiAgcHJpdmF0ZSBsYXN0Q2hlY2tlZCA9IElOSVRJQUw7XG4gIHByaXZhdGUgbGFzdFZhbHVlID0gSU5JVElBTDtcblxuICBwcml2YXRlIGlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJ0YWdzOiBUYWdbXSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc3VidGFnOiBUYWcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdWJ0YWdCdWZmZXJDYWNoZTogUmV2aXNpb24gfCBudWxsID0gbnVsbDtcblxuICBbVFlQRV06IE1vbm9tb3JwaGljVGFnVHlwZTtcblxuICBjb25zdHJ1Y3Rvcih0eXBlOiBNb25vbW9ycGhpY1RhZ1R5cGVzKSB7XG4gICAgdGhpc1tUWVBFXSA9IHR5cGUgYXMgTW9ub21vcnBoaWNUYWdUeXBlO1xuICB9XG5cbiAgW0NPTVBVVEVdKCk6IFJldmlzaW9uIHtcbiAgICBsZXQgeyBsYXN0Q2hlY2tlZCB9ID0gdGhpcztcblxuICAgIGlmICh0aGlzLmlzVXBkYXRpbmcgPT09IHRydWUpIHtcbiAgICAgIGlmIChERUJVRyAmJiAhQUxMT1dfQ1lDTEVTIS5oYXModGhpcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDeWNsZXMgaW4gdGFncyBhcmUgbm90IGFsbG93ZWQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0Q2hlY2tlZCA9ICsrJFJFVklTSU9OO1xuICAgIH0gZWxzZSBpZiAobGFzdENoZWNrZWQgIT09ICRSRVZJU0lPTikge1xuICAgICAgdGhpcy5pc1VwZGF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdENoZWNrZWQgPSAkUkVWSVNJT047XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCB7IHN1YnRhZ3MsIHN1YnRhZywgc3VidGFnQnVmZmVyQ2FjaGUsIGxhc3RWYWx1ZSwgcmV2aXNpb24gfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHN1YnRhZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGxldCBzdWJ0YWdWYWx1ZSA9IHN1YnRhZ1tDT01QVVRFXSgpO1xuXG4gICAgICAgICAgaWYgKHN1YnRhZ1ZhbHVlID09PSBzdWJ0YWdCdWZmZXJDYWNoZSkge1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgbGFzdFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIHRlbXBvcmFyeSBidWZmZXIgY2FjaGVcbiAgICAgICAgICAgIHRoaXMuc3VidGFnQnVmZmVyQ2FjaGUgPSBudWxsO1xuICAgICAgICAgICAgcmV2aXNpb24gPSBNYXRoLm1heChyZXZpc2lvbiwgc3VidGFnVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJ0YWdzICE9PSBudWxsKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJ0YWdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBzdWJ0YWdzW2ldW0NPTVBVVEVdKCk7XG4gICAgICAgICAgICByZXZpc2lvbiA9IE1hdGgubWF4KHZhbHVlLCByZXZpc2lvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSByZXZpc2lvbjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhc3RWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGUoX3RhZzogVXBkYXRhYmxlVGFnLCBfc3VidGFnOiBUYWcpIHtcbiAgICBpZiAoREVCVUcgJiYgX3RhZ1tUWVBFXSAhPT0gTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhIHRhZyB0aGF0IHdhcyBub3QgdXBkYXRhYmxlJyk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVFMgMy43IHNob3VsZCBhbGxvdyB1cyB0byBkbyB0aGlzIHZpYSBhc3NlcnRpb25cbiAgICBsZXQgdGFnID0gX3RhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGw7XG4gICAgbGV0IHN1YnRhZyA9IF9zdWJ0YWcgYXMgTW9ub21vcnBoaWNUYWdJbXBsO1xuXG4gICAgaWYgKHN1YnRhZyA9PT0gQ09OU1RBTlRfVEFHKSB7XG4gICAgICB0YWcuc3VidGFnID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgcG9zc2liaWxpdGllcyB3aGVuIHVwZGF0aW5nIGEgc3VidGFnOlxuICAgICAgLy9cbiAgICAgIC8vIDEuIHN1YnRhZ1tDT01QVVRFXSgpIDw9IHRhZ1tDT01QVVRFXSgpO1xuICAgICAgLy8gMi4gc3VidGFnW0NPTVBVVEVdKCkgPiB0YWdbQ09NUFVURV0oKTtcbiAgICAgIC8vXG4gICAgICAvLyBUaGUgZmlyc3QgcG9zc2liaWxpdHkgaXMgY29tcGxldGVseSBmaW5lIHdpdGhpbiBvdXIgY2FjaGluZyBtb2RlbCwgYnV0XG4gICAgICAvLyB0aGUgc2Vjb25kIHBvc3NpYmlsaXR5IHByZXNlbnRzIGEgcHJvYmxlbS4gSWYgdGhlIHBhcmVudCB0YWcgaGFzXG4gICAgICAvLyBhbHJlYWR5IGJlZW4gcmVhZCwgdGhlbiBpdCdzIHZhbHVlIGlzIGNhY2hlZCBhbmQgd2lsbCBub3QgdXBkYXRlIHRvXG4gICAgICAvLyByZWZsZWN0IHRoZSBzdWJ0YWcncyBncmVhdGVyIHZhbHVlLiBOZXh0IHRpbWUgdGhlIGNhY2hlIGlzIGJ1c3RlZCwgdGhlXG4gICAgICAvLyBzdWJ0YWcncyB2YWx1ZSBfd2lsbF8gYmUgcmVhZCwgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBfZ3JlYXRlcl8gdGhhblxuICAgICAgLy8gdGhlIHNhdmVkIHNuYXBzaG90IG9mIHRoZSBwYXJlbnQsIGNhdXNpbmcgdGhlIHJlc3VsdGluZyBjYWxjdWxhdGlvbiB0b1xuICAgICAgLy8gYmUgcmVydW4gZXJyb25lb3VzbHkuXG4gICAgICAvL1xuICAgICAgLy8gSW4gb3JkZXIgdG8gcHJldmVudCB0aGlzLCB3aGVuIHdlIGZpcnN0IHVwZGF0ZSB0byBhIG5ldyBzdWJ0YWcgd2Ugc3RvcmVcbiAgICAgIC8vIGl0cyBjb21wdXRlZCB2YWx1ZSwgYW5kIHRoZW4gY2hlY2sgYWdhaW5zdCB0aGF0IGNvbXB1dGVkIHZhbHVlIG9uXG4gICAgICAvLyBzdWJzZXF1ZW50IHVwZGF0ZXMuIElmIGl0cyB2YWx1ZSBoYXNuJ3QgY2hhbmdlZCwgdGhlbiB3ZSByZXR1cm4gdGhlXG4gICAgICAvLyBwYXJlbnQncyBwcmV2aW91cyB2YWx1ZS4gT25jZSB0aGUgc3VidGFnIGNoYW5nZXMgZm9yIHRoZSBmaXJzdCB0aW1lLFxuICAgICAgLy8gd2UgY2xlYXIgdGhlIGNhY2hlIGFuZCBldmVyeXRoaW5nIGlzIGZpbmFsbHkgaW4gc3luYyB3aXRoIHRoZSBwYXJlbnQuXG4gICAgICB0YWcuc3VidGFnQnVmZmVyQ2FjaGUgPSBzdWJ0YWdbQ09NUFVURV0oKTtcbiAgICAgIHRhZy5zdWJ0YWcgPSBzdWJ0YWc7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRpcnR5KHRhZzogRGlydHlhYmxlVGFnIHwgVXBkYXRhYmxlVGFnKSB7XG4gICAgaWYgKFxuICAgICAgREVCVUcgJiZcbiAgICAgICEodGFnW1RZUEVdID09PSBNb25vbW9ycGhpY1RhZ1R5cGVzLlVwZGF0YWJsZSB8fCB0YWdbVFlQRV0gPT09IE1vbm9tb3JwaGljVGFnVHlwZXMuRGlydHlhYmxlKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gZGlydHkgYSB0YWcgdGhhdCB3YXMgbm90IGRpcnR5YWJsZScpO1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgLy8gVXN1YWxseSBieSB0aGlzIHBvaW50LCB3ZSd2ZSBhbHJlYWR5IGFzc2VydGVkIHdpdGggYmV0dGVyIGVycm9yIGluZm9ybWF0aW9uLFxuICAgICAgLy8gYnV0IHRoaXMgaXMgb3VyIGxhc3QgbGluZSBvZiBkZWZlbnNlLlxuICAgICAgYXNzZXJ0VGFnTm90Q29uc3VtZWQhKHRhZyk7XG4gICAgfVxuXG4gICAgKHRhZyBhcyBNb25vbW9ycGhpY1RhZ0ltcGwpLnJldmlzaW9uID0gKyskUkVWSVNJT047XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRpcnR5ID0gTW9ub21vcnBoaWNUYWdJbXBsLmRpcnR5O1xuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IE1vbm9tb3JwaGljVGFnSW1wbC51cGRhdGU7XG5cbi8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhZygpOiBEaXJ0eWFibGVUYWcge1xuICByZXR1cm4gbmV3IE1vbm9tb3JwaGljVGFnSW1wbChNb25vbW9ycGhpY1RhZ1R5cGVzLkRpcnR5YWJsZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVcGRhdGFibGVUYWcoKTogVXBkYXRhYmxlVGFnIHtcbiAgcmV0dXJuIG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5VcGRhdGFibGUpO1xufVxuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBjb25zdCBDT05TVEFOVF9UQUcgPSBuZXcgTW9ub21vcnBoaWNUYWdJbXBsKE1vbm9tb3JwaGljVGFnVHlwZXMuQ29uc3RhbnQpIGFzIENvbnN0YW50VGFnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdCh7IHRhZyB9OiBUYWdnZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRhZyA9PT0gQ09OU1RBTlRfVEFHO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25zdFRhZyh0YWc6IFRhZyk6IHRhZyBpcyBDb25zdGFudFRhZyB7XG4gIHJldHVybiB0YWcgPT09IENPTlNUQU5UX1RBRztcbn1cblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY2xhc3MgVm9sYXRpbGVUYWcgaW1wbGVtZW50cyBUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuIFZPTEFUSUxFO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBWT0xBVElMRV9UQUcgPSBuZXcgVm9sYXRpbGVUYWcoKTtcblxuLy8vLy8vLy8vL1xuXG5leHBvcnQgY2xhc3MgQ3VycmVudFRhZyBpbXBsZW1lbnRzIEN1cnJlbnRUYWcge1xuICBbQ09NUFVURV0oKSB7XG4gICAgcmV0dXJuICRSRVZJU0lPTjtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ1VSUkVOVF9UQUcgPSBuZXcgQ3VycmVudFRhZygpO1xuXG4vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lKHRhZ3M6IFRhZ1tdKTogVGFnIHtcbiAgbGV0IG9wdGltaXplZDogVGFnW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMCwgbCA9IHRhZ3MubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgbGV0IHRhZyA9IHRhZ3NbaV07XG4gICAgaWYgKHRhZyA9PT0gQ09OU1RBTlRfVEFHKSBjb250aW51ZTtcbiAgICBvcHRpbWl6ZWQucHVzaCh0YWcpO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUNvbWJpbmF0b3JUYWcob3B0aW1pemVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbWJpbmF0b3JUYWcodGFnczogVGFnW10pOiBUYWcge1xuICBzd2l0Y2ggKHRhZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuIENPTlNUQU5UX1RBRztcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gdGFnc1swXTtcbiAgICBkZWZhdWx0OlxuICAgICAgbGV0IHRhZyA9IG5ldyBNb25vbW9ycGhpY1RhZ0ltcGwoTW9ub21vcnBoaWNUYWdUeXBlcy5Db21iaW5hdG9yKSBhcyBDb21iaW5hdG9yVGFnO1xuICAgICAgKHRhZyBhcyBhbnkpLnN1YnRhZ3MgPSB0YWdzO1xuICAgICAgcmV0dXJuIHRhZztcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -1,2 +0,2 @@

export { ALLOW_CYCLES, bump, CombinatorTag, combine, COMPUTE, CONSTANT_TAG, CONSTANT, ConstantTag, createCombinatorTag, createTag, createUpdatableTag, CURRENT_TAG, dirty, DirtyableTag, EntityTag, EntityTagged, INITIAL, isConst, isConstTag, Revision, Tag, Tagged, UpdatableTag, update, validate, value, VOLATILE_TAG, VOLATILE, } from './lib/validators';
export { ALLOW_CYCLES, bump, CombinatorTag, combine, COMPUTE, CONSTANT_TAG, CONSTANT, ConstantTag, createCombinatorTag, createTag, createUpdatableTag, CurrentTag, CURRENT_TAG, dirty, DirtyableTag, EntityTag, EntityTagged, INITIAL, isConst, isConstTag, Revision, Tag, Tagged, UpdatableTag, update, validate, value, VolatileTag, VOLATILE_TAG, VOLATILE, } from './lib/validators';
export { dirtyTagFor, tagFor, setPropertyDidChange } from './lib/meta';

@@ -3,0 +3,0 @@ export { consume, EPOCH, isTracking, track, trackedData, untrack } from './lib/tracking';

@@ -99,7 +99,7 @@ import { UnionToIntersection } from './utils';

export declare function isConstTag(tag: Tag): tag is ConstantTag;
declare class VolatileTag implements Tag {
export declare class VolatileTag implements Tag {
[COMPUTE](): number;
}
export declare const VOLATILE_TAG: VolatileTag;
declare class CurrentTag implements CurrentTag {
export declare class CurrentTag implements CurrentTag {
[COMPUTE](): number;

@@ -106,0 +106,0 @@ }

{
"name": "@glimmer/validator",
"version": "0.48.0",
"version": "0.49.0",
"description": "Objects used to track values and their dirtiness in Glimmer",

@@ -5,0 +5,0 @@ "license": "MIT",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc