Socket
Socket
Sign inDemoInstall

@glimmer/manager

Package Overview
Dependencies
Maintainers
12
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/manager - npm Package Compare versions

Comparing version 0.70.0 to 0.71.0

test/capabilities-test.js

6

dist/commonjs/es2017/index.js

@@ -120,6 +120,6 @@ "use strict";

});
Object.defineProperty(exports, "customHelper", {
Object.defineProperty(exports, "CustomHelperManager", {
enumerable: true,
get: function () {
return _helper.customHelper;
return _helper.CustomHelperManager;
}

@@ -185,2 +185,2 @@ });

var _argsProxy = require("./lib/util/args-proxy");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBV0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIGdldEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxufSBmcm9tICcuL2xpYi9pbnRlcm5hbC9pbmRleCc7XG5leHBvcnQgeyBzZXRIZWxwZXJNYW5hZ2VyLCBzZXRNb2RpZmllck1hbmFnZXIsIHNldENvbXBvbmVudE1hbmFnZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvaW5kZXgnO1xuZXhwb3J0IHsgY29tcG9uZW50Q2FwYWJpbGl0aWVzLCBDdXN0b21Db21wb25lbnRNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL2NvbXBvbmVudCc7XG5leHBvcnQgeyBtb2RpZmllckNhcGFiaWxpdGllcywgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL21vZGlmaWVyJztcbmV4cG9ydCB7IGhlbHBlckNhcGFiaWxpdGllcywgaGFzRGVzdHJveWFibGUsIGhhc1ZhbHVlLCBjdXN0b21IZWxwZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvaGVscGVyJztcbmV4cG9ydCB7IGdldENvbXBvbmVudFRlbXBsYXRlLCBzZXRDb21wb25lbnRUZW1wbGF0ZSB9IGZyb20gJy4vbGliL3B1YmxpYy90ZW1wbGF0ZSc7XG5leHBvcnQgeyBjYXBhYmlsaXR5RmxhZ3NGcm9tLCBoYXNDYXBhYmlsaXR5LCBtYW5hZ2VySGFzQ2FwYWJpbGl0eSB9IGZyb20gJy4vbGliL3V0aWwvY2FwYWJpbGl0aWVzJztcbmV4cG9ydCB7IGdldEN1c3RvbVRhZ0Zvciwgc2V0Q3VzdG9tVGFnRm9yIH0gZnJvbSAnLi9saWIvdXRpbC9hcmdzLXByb3h5JztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBV0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIGdldEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxufSBmcm9tICcuL2xpYi9pbnRlcm5hbC9pbmRleCc7XG5leHBvcnQgeyBzZXRIZWxwZXJNYW5hZ2VyLCBzZXRNb2RpZmllck1hbmFnZXIsIHNldENvbXBvbmVudE1hbmFnZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvaW5kZXgnO1xuZXhwb3J0IHsgY29tcG9uZW50Q2FwYWJpbGl0aWVzLCBDdXN0b21Db21wb25lbnRNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL2NvbXBvbmVudCc7XG5leHBvcnQgeyBtb2RpZmllckNhcGFiaWxpdGllcywgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL21vZGlmaWVyJztcbmV4cG9ydCB7XG4gIGhlbHBlckNhcGFiaWxpdGllcyxcbiAgaGFzRGVzdHJveWFibGUsXG4gIGhhc1ZhbHVlLFxuICBDdXN0b21IZWxwZXJNYW5hZ2VyLFxufSBmcm9tICcuL2xpYi9wdWJsaWMvaGVscGVyJztcbmV4cG9ydCB7IGdldENvbXBvbmVudFRlbXBsYXRlLCBzZXRDb21wb25lbnRUZW1wbGF0ZSB9IGZyb20gJy4vbGliL3B1YmxpYy90ZW1wbGF0ZSc7XG5leHBvcnQgeyBjYXBhYmlsaXR5RmxhZ3NGcm9tLCBoYXNDYXBhYmlsaXR5LCBtYW5hZ2VySGFzQ2FwYWJpbGl0eSB9IGZyb20gJy4vbGliL3V0aWwvY2FwYWJpbGl0aWVzJztcbmV4cG9ydCB7IGdldEN1c3RvbVRhZ0Zvciwgc2V0Q3VzdG9tVGFnRm9yIH0gZnJvbSAnLi9saWIvdXRpbC9hcmdzLXByb3h5JztcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -22,9 +22,7 @@ "use strict";

const MODIFIER_MANAGERS = new WeakMap();
const HELPER_MANAGERS = new WeakMap();
const OWNER_MANAGER_INSTANCES = new WeakMap();
const UNDEFINED_MANAGER_INSTANCES = new WeakMap(); ///////////
const HELPER_MANAGERS = new WeakMap(); ///////////
const getPrototypeOf = Object.getPrototypeOf;
function setManager(map, factory, obj) {
function setManager(map, manager, obj) {
if (_env.DEBUG && (typeof obj !== 'object' || obj === null) && typeof obj !== 'function') {

@@ -38,3 +36,3 @@ throw new Error(`Attempted to set a manager on a non-object value. Managers can only be associated with objects or functions. Value was ${(0, _util.debugToString)(obj)}`);

map.set(obj, factory);
map.set(obj, manager);
return obj;

@@ -57,35 +55,10 @@ }

return undefined;
}
function getManagerInstanceForOwner(owner, factory) {
let managers;
if (owner === undefined) {
managers = UNDEFINED_MANAGER_INSTANCES;
} else {
managers = OWNER_MANAGER_INSTANCES.get(owner);
if (managers === undefined) {
managers = new WeakMap();
OWNER_MANAGER_INSTANCES.set(owner, managers);
}
}
let instance = managers.get(factory);
if (instance === undefined) {
instance = factory(owner);
managers.set(factory, instance);
} // We know for sure that it's the correct type at this point, but TS can't know
return instance;
} ///////////
function setInternalModifierManager(factory, definition) {
return setManager(MODIFIER_MANAGERS, factory, definition);
function setInternalModifierManager(manager, definition) {
return setManager(MODIFIER_MANAGERS, manager, definition);
}
function getInternalModifierManager(owner, definition) {
function getInternalModifierManager(definition) {
if (_env.DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -95,16 +68,16 @@ throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);

const factory = getManager(MODIFIER_MANAGERS, definition);
const manager = getManager(MODIFIER_MANAGERS, definition);
if (_env.DEBUG && factory === undefined) {
if (_env.DEBUG && manager === undefined) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${(0, _util.debugToString)(definition)}`);
}
return getManagerInstanceForOwner(owner, factory);
return manager;
}
function setInternalHelperManager(factory, definition) {
return setManager(HELPER_MANAGERS, factory, definition);
function setInternalHelperManager(manager, definition) {
return setManager(HELPER_MANAGERS, manager, definition);
}
function getInternalHelperManager(owner, definition, isOptional) {
function getInternalHelperManager(definition, isOptional) {
if (_env.DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -114,5 +87,5 @@ throw new Error(`Attempted to use a value as a helper, but it was not an object or function. Helper definitions must be objects or functions with an associated helper manager. The value was: ${definition}`);

const factory = getManager(HELPER_MANAGERS, definition);
const manager = getManager(HELPER_MANAGERS, definition);
if (factory === undefined) {
if (manager === undefined) {
if (isOptional === true) {

@@ -125,3 +98,3 @@ return null;

return getManagerInstanceForOwner(owner, factory);
return manager;
}

@@ -133,3 +106,3 @@

function getInternalComponentManager(owner, definition, isOptional) {
function getInternalComponentManager(definition, isOptional) {
if (_env.DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -139,5 +112,5 @@ throw new Error(`Attempted to use a value as a component, but it was not an object or function. Component definitions must be objects or functions with an associated component manager. The value was: ${definition}`);

const factory = getManager(COMPONENT_MANAGERS, definition);
const manager = getManager(COMPONENT_MANAGERS, definition);
if (factory === undefined) {
if (manager === undefined) {
if (isOptional === true) {

@@ -150,3 +123,3 @@ return null;

return getManagerInstanceForOwner(owner, factory);
return manager;
} ///////////

@@ -166,2 +139,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQWNBLE1BQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFLQSxNQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBS0EsTUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEI7QUFLQSxNQUFNLHVCQUF1QixHQUd6QixJQUhKLE9BR0ksRUFISjtBQUlBLE1BQU0sMkJBQTJCLEdBQW9ELElBQXJGLE9BQXFGLEVBQXJGLEMsQ0FNQTs7QUFFQSxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQTdCLGNBQUE7O0FBRUEsU0FBQSxVQUFBLENBQUEsR0FBQSxFQUFBLE9BQUEsRUFBQSxHQUFBLEVBR1U7QUFFUixNQUFJLGVBQVUsT0FBQSxHQUFBLEtBQUEsUUFBQSxJQUEyQixHQUFHLEtBQXhDLElBQUEsS0FBc0QsT0FBQSxHQUFBLEtBQTFELFVBQUEsRUFBcUY7QUFDbkYsVUFBTSxJQUFBLEtBQUEsQ0FDSiwwSEFBMEgseUJBQWMsR0FBZCxDQUQ1SCxFQUFNLENBQU47QUFLRDs7QUFFRCxNQUFJLGNBQVMsR0FBRyxDQUFILEdBQUEsQ0FBYixHQUFhLENBQWIsRUFBMkI7QUFDekIsVUFBTSxJQUFBLEtBQUEsQ0FDSixzSkFBc0oseUJBQWMsR0FBZCxDQUR4SixFQUFNLENBQU47QUFLRDs7QUFFRCxFQUFBLEdBQUcsQ0FBSCxHQUFBLENBQUEsR0FBQSxFQUFBLE9BQUE7QUFDQSxTQUFBLEdBQUE7QUFDRDs7QUFFRCxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxFQUVhO0FBRVgsTUFBSSxPQUFPLEdBQVgsR0FBQTs7QUFDQSxTQUFPLE9BQU8sS0FBUCxTQUFBLElBQXlCLE9BQU8sS0FBdkMsSUFBQSxFQUFrRDtBQUNoRCxVQUFN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b3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgZGVidWdUb1N0cmluZywgX1dlYWtTZXQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIEhlbHBlck1hbmFnZXIsXG4gIEhlbHBlcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPFxuICBvYmplY3QsXG4gIEludGVybmFsTWFuYWdlckZhY3Rvcnk8T3duZXIsIEludGVybmFsQ29tcG9uZW50TWFuYWdlcj5cbj4oKTtcblxuY29uc3QgTU9ESUZJRVJfTUFOQUdFUlMgPSBuZXcgV2Vha01hcDxcbiAgb2JqZWN0LFxuICBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE93bmVyLCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcj5cbj4oKTtcblxuY29uc3QgSEVMUEVSX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8XG4gIG9iamVjdCxcbiAgSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPd25lciB8IHVuZGVmaW5lZCwgSGVscGVyTWFuYWdlcjx1bmtub3duPiB8IEhlbHBlcj5cbj4oKTtcblxuY29uc3QgT1dORVJfTUFOQUdFUl9JTlNUQU5DRVM6IFdlYWtNYXA8XG4gIE93bmVyLFxuICBXZWFrTWFwPEludGVybmFsTWFuYWdlckZhY3Rvcnk8T3duZXI+LCB1bmtub3duPlxuPiA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBVTkRFRklORURfTUFOQUdFUl9JTlNUQU5DRVM6IFdlYWtNYXA8SW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPd25lcj4sIHVua25vd24+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IHR5cGUgSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPLCBEIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyID0gSW50ZXJuYWxNYW5hZ2VyPiA9IChcbiAgb3duZXI6IE9cbikgPT4gRDtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBEZWYgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8+PixcbiAgZmFjdG9yeTogSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPPiB8IEludGVybmFsTWFuYWdlckZhY3Rvcnk8TyB8IHVuZGVmaW5lZD4sXG4gIG9iajogRGVmXG4pOiBEZWYge1xuICBpZiAoREVCVUcgJiYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gc2V0IGEgbWFuYWdlciBvbiBhIG5vbi1vYmplY3QgdmFsdWUuIE1hbmFnZXJzIGNhbiBvbmx5IGJlIGFzc29jaWF0ZWQgd2l0aCBvYmplY3RzIG9yIGZ1bmN0aW9ucy4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBtYXAuaGFzKG9iaikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCB0aGUgc2FtZSB0eXBlIG9mIG1hbmFnZXIgbXVsdGlwbGUgdGltZXMgb24gYSB2YWx1ZS4gWW91IGNhbiBvbmx5IGFzc29jaWF0ZSBvbmUgbWFuYWdlciBvZiBlYWNoIHR5cGUgd2l0aCBhIGdpdmVuIHZhbHVlLiBWYWx1ZSB3YXMgJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgb2JqXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgbWFwLnNldChvYmosIGZhY3RvcnkpO1xuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBnZXRNYW5hZ2VyPE8sIEQgZXh0ZW5kcyBJbnRlcm5hbE1hbmFnZXI+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8sIEQ+PixcbiAgb2JqOiBvYmplY3Rcbik6IEludGVybmFsTWFuYWdlckZhY3Rvcnk8TywgRD4gfCB1bmRlZmluZWQge1xuICBsZXQgcG9pbnRlciA9IG9iajtcbiAgd2hpbGUgKHBvaW50ZXIgIT09IHVuZGVmaW5lZCAmJiBwb2ludGVyICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWFuYWdlciA9IG1hcC5nZXQocG9pbnRlcik7XG5cbiAgICBpZiAobWFuYWdlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICB9XG5cbiAgICBwb2ludGVyID0gZ2V0UHJvdG90eXBlT2YocG9pbnRlcik7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRNYW5hZ2VySW5zdGFuY2VGb3JPd25lcjxEIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBmYWN0b3J5OiBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE93bmVyLCBEPlxuKTogRCB7XG4gIGxldCBtYW5hZ2VycztcblxuICBpZiAob3duZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIG1hbmFnZXJzID0gVU5ERUZJTkVEX01BTkFHRVJfSU5TVEFOQ0VTO1xuICB9IGVsc2Uge1xuICAgIG1hbmFnZXJzID0gT1dORVJfTUFOQUdFUl9JTlNUQU5DRVMuZ2V0KG93bmVyKTtcblxuICAgIGlmIChtYW5hZ2VycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtYW5hZ2VycyA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICBPV05FUl9NQU5BR0VSX0lOU1RBTkNFUy5zZXQob3duZXIsIG1hbmFnZXJzKTtcbiAgICB9XG4gIH1cblxuICBsZXQgaW5zdGFuY2UgPSBtYW5hZ2Vycy5nZXQoZmFjdG9yeSk7XG5cbiAgaWYgKGluc3RhbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICBpbnN0YW5jZSA9IGZhY3Rvcnkob3duZXIhKTtcbiAgICBtYW5hZ2Vycy5zZXQoZmFjdG9yeSwgaW5zdGFuY2UhKTtcbiAgfVxuXG4gIC8vIFdlIGtub3cgZm9yIHN1cmUgdGhhdCBpdCdzIHRoZSBjb3JyZWN0IHR5cGUgYXQgdGhpcyBwb2ludCwgYnV0IFRTIGNhbid0IGtub3dcbiAgcmV0dXJuIGluc3RhbmNlIGFzIEQ7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8sIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBmYWN0b3J5LCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKFxuICBvd25lcjogT3duZXIgfCB1bmRlZmluZWQsXG4gIGRlZmluaXRpb246IG9iamVjdFxuKTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIG1vZGlmaWVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIE1vZGlmaWVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIG1vZGlmaWVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKERFQlVHICYmIGZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIG1vZGlmaWVyLCBidXQgdGhlcmUgd2Fzbid0IGEgbW9kaWZpZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgZGVmaW5pdGlvblxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBnZXRNYW5hZ2VySW5zdGFuY2VGb3JPd25lcihvd25lciwgZmFjdG9yeSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgSGVscGVyPixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZmFjdG9yeSwgZGVmaW5pdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIG93bmVyOiBPd25lciB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbjogb2JqZWN0XG4pOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgSGVscGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEhlbHBlck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgSGVscGVyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgaGVscGVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIEhlbHBlciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBoZWxwZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZmFjdG9yeSA9IGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKGZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGhlbHBlciwgYnV0IHRoZXJlIHdhc24ndCBhIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBnZXRNYW5hZ2VySW5zdGFuY2VGb3JPd25lcihvd25lciwgZmFjdG9yeSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPLCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI+LFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGZhY3RvcnksIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIG93bmVyOiBPd25lciB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbjogb2JqZWN0XG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKFxuICBvd25lcjogT3duZXIgfCB1bmRlZmluZWQsXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIG93bmVyOiBPd25lciB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgY29tcG9uZW50LCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIENvbXBvbmVudCBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBjb21wb25lbnQgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZmFjdG9yeSA9IGdldE1hbmFnZXI8T3duZXIsIEludGVybmFsQ29tcG9uZW50TWFuYWdlcj4oQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKGZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGNvbXBvbmVudCwgYnV0IHRoZXJlIHdhc24ndCBhIGNvbXBvbmVudCBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBnZXRNYW5hZ2VySW5zdGFuY2VGb3JPd25lcihvd25lciwgZmFjdG9yeSk7XG59XG5cbi8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBM0IsT0FBMkIsRUFBM0I7QUFFQSxNQUFNLGlCQUFpQixHQUFHLElBQTFCLE9BQTBCLEVBQTFCO0FBRUEsTUFBTSxlQUFlLEdBQUcsSUFBeEIsT0FBd0IsRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBN0IsY0FBQTs7QUFFQSxTQUFBLFVBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFHVTtBQUVSLE1BQUksZUFBVSxPQUFBLEdBQUEsS0FBQSxRQUFBLElBQTJCLEdBQUcsS0FBeEMsSUFBQSxLQUFzRCxPQUFBLEdBQUEsS0FBMUQsVUFBQSxFQUFxRjtBQUNuRixVQUFNLElBQUEsS0FBQSxDQUNKLDBIQUEwSCx5QkFBYyxHQUFkLENBRDVILEVBQU0sQ0FBTjtBQUtEOztBQUVELE1BQUksY0FBUyxHQUFHLENBQUgsR0FBQSxDQUFiLEdBQWEsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUEsS0FBQSxDQUNKLHNKQUFzSix5QkFBYyxHQUFkLENBRHhKLEVBQU0sQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFILEdBQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQTtBQUNBLFNBQUEsR0FBQTtBQUNEOztBQUVELFNBQUEsVUFBQSxDQUFBLEdBQUEsRUFBQSxHQUFBLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBWCxHQUFBOztBQUNBLFNBQU8sT0FBTyxLQUFQLFNBQUEsSUFBeUIsT0FBTyxLQUF2QyxJQUFBLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBSCxHQUFBLENBQWhCLE9BQWdCLENBQWhCOztBQUVBLFFBQUksT0FBTyxLQUFYLFNBQUEsRUFBMkI7QUFD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QVYsS0FBUCxTQUFBO0FBQ0Q7O0FBRUssU0FBQSwwQkFBQSxDQUFBLFVBQUEsRUFBdUQ7QUFDM0QsU0FBTyxVQUFVLENBQUEsaUJBQUEsRUFBVixVQUFVLENBQVYsS0FBUCxTQUFBO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWxwZXJNYW5hZ2VyIH0gZnJvbSAnLi4vcHVibGljL2hlbHBlcic7XG5cbnR5cGUgSW50ZXJuYWxNYW5hZ2VyID1cbiAgfCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXJcbiAgfCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlclxuICB8IEN1c3RvbUhlbHBlck1hbmFnZXJcbiAgfCBIZWxwZXI7XG5cbmNvbnN0IENPTVBPTkVOVF9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+KCk7XG5cbmNvbnN0IEhFTFBFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlcj4oKTtcblxuLy8vLy8vLy8vLy9cblxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmZ1bmN0aW9uIHNldE1hbmFnZXI8RGVmIGV4dGVuZHMgb2JqZWN0PihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PixcbiAgbWFuYWdlcjogb2JqZWN0LFxuICBvYmo6IERlZlxuKTogRGVmIHtcbiAgaWYgKERFQlVHICYmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCBhIG1hbmFnZXIgb24gYSBub24tb2JqZWN0IHZhbHVlLiBNYW5hZ2VycyBjYW4gb25seSBiZSBhc3NvY2lhdGVkIHdpdGggb2JqZWN0cyBvciBmdW5jdGlvbnMuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgbWFwLmhhcyhvYmopKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgdGhlIHNhbWUgdHlwZSBvZiBtYW5hZ2VyIG11bHRpcGxlIHRpbWVzIG9uIGEgdmFsdWUuIFlvdSBjYW4gb25seSBhc3NvY2lhdGUgb25lIG1hbmFnZXIgb2YgZWFjaCB0eXBlIHdpdGggYSBnaXZlbiB2YWx1ZS4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIG1hcC5zZXQob2JqLCBtYW5hZ2VyKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuYWdlcjxNIGV4dGVuZHMgSW50ZXJuYWxNYW5hZ2VyPihcbiAgbWFwOiBXZWFrTWFwPG9iamVjdCwgTT4sXG4gIG9iajogb2JqZWN0XG4pOiBNIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHBvaW50ZXIgPSBvYmo7XG4gIHdoaWxlIChwb2ludGVyICE9PSB1bmRlZmluZWQgJiYgcG9pbnRlciAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hbmFnZXIgPSBtYXAuZ2V0KHBvaW50ZXIpO1xuXG4gICAgaWYgKG1hbmFnZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG1hbmFnZXI7XG4gICAgfVxuXG4gICAgcG9pbnRlciA9IGdldFByb3RvdHlwZU9mKHBvaW50ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYW5hZ2VyOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZGVmaW5pdGlvbjogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBtb2RpZmllciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBNb2RpZmllciBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBtb2RpZmllciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBtb2RpZmllciwgYnV0IHRoZXJlIHdhc24ndCBhIG1vZGlmaWVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIGRlZmluaXRpb25cbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsSGVscGVyTWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgT3duZXI+KFxuICBtYW5hZ2VyOiBDdXN0b21IZWxwZXJNYW5hZ2VyPE8+IHwgSGVscGVyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBtYW5hZ2VyLCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBoZWxwZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gSGVscGVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGhlbHBlciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYW5hZ2VyID0gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAobWFuYWdlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgaGVscGVyLCBidXQgdGhlcmUgd2Fzbid0IGEgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBmYWN0b3J5LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGNvbXBvbmVudCwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBDb21wb25lbnQgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgY29tcG9uZW50IG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBjb21wb25lbnQsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBjb21wb25lbnQgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -102,10 +102,32 @@ "use strict";

class CustomComponentManager {
constructor(delegate) {
this.delegate = delegate;
constructor(factory) {
this.factory = factory;
this.componentManagerDelegates = new WeakMap();
}
create(env, definition, vmArgs) {
getDelegateFor(owner) {
let {
delegate
componentManagerDelegates
} = this;
let delegate = componentManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom component managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.4' | '3.13')\` (imported via \`import { capabilities } from '@ember/component';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
componentManagerDelegates.set(owner, delegate);
}
return delegate;
}
create(owner, definition, vmArgs) {
let delegate = this.getDelegateFor(owner);
let args = (0, _argsProxy.argsProxyFor)(vmArgs.capture(), 'component');

@@ -122,3 +144,3 @@ let component;

return new CustomComponentState(component, args, env);
return new CustomComponentState(component, delegate, args);
}

@@ -133,3 +155,3 @@

delegate
} = this;
} = bucket;

@@ -146,8 +168,5 @@ if (hasUpdateHook(delegate)) {

didCreate({
component
component,
delegate
}) {
let {
delegate
} = this;
if (hasAsyncLifeCycleCallbacks(delegate)) {

@@ -159,8 +178,5 @@ delegate.didCreateComponent(component);

didUpdate({
component
component,
delegate
}) {
let {
delegate
} = this;
if (hasAsyncUpdateHook(delegate)) {

@@ -176,5 +192,6 @@ delegate.didUpdateComponent(component);

getSelf({
component
component,
delegate
}) {
return (0, _reference.createConstRef)(this.delegate.getContext(component), 'this');
return (0, _reference.createConstRef)(delegate.getContext(component), 'this');
}

@@ -185,3 +202,3 @@

delegate
} = this;
} = bucket;

@@ -212,6 +229,6 @@ if (hasDestructors(delegate)) {

class CustomComponentState {
constructor(component, args, env) {
constructor(component, delegate, args) {
this.component = component;
this.delegate = delegate;
this.args = args;
this.env = env;
}

@@ -222,2 +239,2 @@

exports.CustomComponentState = CustomComponentState;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBa0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU0sWUFBWSxHQUFHO0FBQ25CLEVBQUEsYUFBYSxFQURNLEtBQUE7QUFFbkIsRUFBQSxVQUFVLEVBRlMsS0FBQTtBQUduQixFQUFBLFdBQVcsRUFIUSxLQUFBO0FBSW5CLEVBQUEsVUFBVSxFQUpTLElBQUE7QUFLbkIsRUFBQSxhQUFhLEVBTE0sS0FBQTtBQU1uQixFQUFBLFdBQVcsRUFOUSxLQUFBO0FBT25CLEVBQUEsWUFBWSxFQVBPLEtBQUE7QUFRbkIsRUFBQSxZQUFZLEVBUk8sSUFBQTtBQVNuQixFQUFBLFVBQVUsRUFUUyxJQUFBO0FBVW5CLEVBQUEsY0FBYyxFQVZLLElBQUE7QUFXbkIsRUFBQSxPQUFPLEVBWFksS0FBQTtBQVluQixFQUFBLFdBQVcsRUFaUSxLQUFBO0FBYW5CLEVBQUEsV0FBVyxFQUFFO0FBYk0sQ0FBckI7O0FBZ0JNLFNBQUEscUJBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFZ0Q7QUFFcEQsTUFBSSxjQUFTLFVBQVUsS0FBbkIsS0FBQSxJQUFpQyxVQUFVLEtBQS9DLE1BQUEsRUFBNEQ7QUFDMUQsVUFBTSxJQUFBLEtBQUEsQ0FBTixtREFBTSxDQUFOO0FBQ0Q7O0FBRUQsTUFBSSxVQUFVLEdBQWQsSUFBQTs7QUFFQSxNQUFJLFVBQVUsS0FBZCxNQUFBLEVBQTJCO0FBQ3pCLElBQUEsVUFBVSxHQUFHLE9BQU8sQ0FBRSxPQUFpRCxDQUF2RSxVQUFvQixDQUFwQjtBQUNEOztBQUVELFNBQU8scUNBQWtCO0FBQ3ZCLElBQUEsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FEakIsdUJBQ1MsQ0FEVDtBQUV2QixJQUFBLFVBQVUsRUFBRSxPQUFP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TUFBQSxFQUFnRDtBQUM1RCxVQUFNO0FBQUUsTUFBQTtBQUFGLFFBQU4sSUFBQTs7QUFFQSxRQUFJLGNBQWMsQ0FBbEIsUUFBa0IsQ0FBbEIsRUFBOEI7QUFDNUIsWUFBTTtBQUFFLFFBQUE7QUFBRixVQUFOLE1BQUE7QUFFQSwyQ0FBa0IsTUFBbEIsRUFBMkIsTUFBTSxRQUFRLENBQVIsZ0JBQUEsQ0FBakMsU0FBaUMsQ0FBakM7QUFDQSxhQUFBLE1BQUE7QUFDRDs7QUFFRCxXQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLGVBQWUsR0FBQTtBQUNiLFdBQUEsWUFBQTtBQUNEOztBQTdFZ0M7QUFnRm5DOzs7Ozs7O0FBR00sTUFBQSxvQkFBQSxDQUEyQjtBQUMvQixFQUFBLFdBQUEsQ0FBQSxTQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFHeUI7QUFGaEIsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUNBLFNBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxTQUFBLEdBQUEsR0FBQSxHQUFBO0FBQ0w7O0FBTDJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDb21wb25lbnRDYXBhYmlsaXRpZXMsXG4gIENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIENvbXBvbmVudE1hbmFnZXIsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3MsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNVcGRhdGVIb29rLFxuICBDb21wb25lbnRNYW5hZ2VyV2l0aERlc3RydWN0b3JzLFxuICBDb21wb25lbnRNYW5hZ2VyV2l0aFVwZGF0ZUhvb2ssXG4gIERlc3Ryb3lhYmxlLFxuICBFbnZpcm9ubWVudCxcbiAgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsXG4gIEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgT3B0aW9uLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb25zdFJlZiwgUmVmZXJlbmNlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5cbmNvbnN0IENBUEFCSUxJVElFUyA9IHtcbiAgZHluYW1pY0xheW91dDogZmFsc2UsXG4gIGR5bmFtaWNUYWc6IGZhbHNlLFxuICBwcmVwYXJlQXJnczogZmFsc2UsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGNyZWF0ZUNhbGxlcjogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnNbVmVyc2lvbl0gPSB7fVxuKTogQ29tcG9uZW50Q2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjQnICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21wb25lbnQgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgbGV0IHVwZGF0ZUhvb2sgPSB0cnVlO1xuXG4gIGlmIChtYW5hZ2VyQVBJID09PSAnMy4xMycpIHtcbiAgICB1cGRhdGVIb29rID0gQm9vbGVhbigob3B0aW9ucyBhcyBDb21wb25lbnRDYXBhYmlsaXRpZXNWZXJzaW9uc1snMy4xMyddKS51cGRhdGVIb29rKTtcbiAgfVxuXG4gIHJldHVybiBidWlsZENhcGFiaWxpdGllcyh7XG4gICAgYXN5bmNMaWZlQ3ljbGVDYWxsYmFja3M6IEJvb2xlYW4ob3B0aW9ucy5hc3luY0xpZmVjeWNsZUNhbGxiYWNrcyksXG4gICAgZGVzdHJ1Y3RvcjogQm9vbGVhbihvcHRpb25zLmRlc3RydWN0b3IpLFxuICAgIHVwZGF0ZUhvb2ssXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3M8Q29tcG9uZW50SW5zdGFuY2U+KFxuICBkZWxlZ2F0ZTogQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT5cbik6IGRlbGVnYXRlIGlzIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3M8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgcmV0dXJuIGRlbGVnYXRlLmNhcGFiaWxpdGllcy5hc3luY0xpZmVDeWNsZUNhbGxiYWNrcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1VwZGF0ZUhvb2s8Q29tcG9uZW50SW5zdGFuY2U+KFxuICBkZWxlZ2F0ZTogQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT5cbik6IGRlbGVnYXRlIGlzIENvbXBvbmVudE1hbmFnZXJXaXRoVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4ge1xuICByZXR1cm4gZGVsZWdhdGUuY2FwYWJpbGl0aWVzLnVwZGF0ZUhvb2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBc3luY1VwZGF0ZUhvb2s8Q29tcG9uZW50SW5zdGFuY2U+KFxuICBkZWxlZ2F0ZTogQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT5cbik6IGRlbGVnYXRlIGlzIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNVcGRhdGVIb29rPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBoYXNBc3luY0xpZmVDeWNsZUNhbGxiYWNrcyhkZWxlZ2F0ZSkgJiYgaGFzVXBkYXRlSG9vayhkZWxlZ2F0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cnVjdG9yczxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhEZXN0cnVjdG9yczxDb21wb25lbnRJbnN0YW5jZT4ge1xuICByZXR1cm4gZGVsZWdhdGUuY2FwYWJpbGl0aWVzLmRlc3RydWN0b3I7XG59XG5cbi8qKlxuICBUaGUgQ3VzdG9tQ29tcG9uZW50TWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIGNvbXBvbmVudFxuICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbnRlZ3JhdGUgc2VhbWxlc3NseSBpbnRvIEVtYmVyLiBUaGlzIGlzIGFjY29tcGxpc2hlZFxuICB0aHJvdWdoIGEgZGVsZWdhdGUsIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY3VzdG9tIGNvbXBvbmVudCBtYW5hZ2VyLCB3aGljaFxuICBpbXBsZW1lbnRzIGEgc2V0IG9mIGhvb2tzIHRoYXQgZGV0ZXJtaW5lIGNvbXBvbmVudCBiZWhhdmlvci5cblxuICBUbyBjcmVhdGUgYSBjdXN0b20gY29tcG9uZW50IG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbUNvbXBvbmVudE1hbmFnZXJcbiAgY2xhc3MgYW5kIHBhc3MgdGhlIGRlbGVnYXRlIGFzIHRoZSBmaXJzdCBhcmd1bWVudDpcblxuICBgYGBqc1xuICBsZXQgbWFuYWdlciA9IG5ldyBDdXN0b21Db21wb25lbnRNYW5hZ2VyKHtcbiAgICAvLyAuLi5kZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4uLlxuICB9KTtcbiAgYGBgXG5cbiAgIyMgRGVsZWdhdGUgSG9va3NcblxuICBUaHJvdWdob3V0IHRoZSBsaWZlY3ljbGUgb2YgYSBjb21wb25lbnQsIHRoZSBjb21wb25lbnQgbWFuYWdlciB3aWxsIGludm9rZVxuICBkZWxlZ2F0ZSBob29rcyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Igc3VyZmFjaW5nIHRob3NlIGxpZmVjeWNsZSBjaGFuZ2VzIHRvXG4gIHRoZSBlbmQgZGV2ZWxvcGVyLlxuXG4gICogYGNyZWF0ZSgpYCAtIGludm9rZWQgd2hlbiBhIG5ldyBpbnN0YW5jZSBvZiBhIGNvbXBvbmVudCBzaG91bGQgYmUgY3JlYXRlZFxuICAqIGB1cGRhdGUoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBjb21wb25lbnQgY2hhbmdlXG4gICogYGdldENvbnRleHQoKWAgLSByZXR1cm5zIHRoZSBvYmplY3QgdGhhdCBzaG91bGQgYmVcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8Q3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+KSB7fVxuXG4gIGNyZWF0ZShcbiAgICBlbnY6IEVudmlyb25tZW50LFxuICAgIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgICB2bUFyZ3M6IFZNQXJndW1lbnRzXG4gICk6IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPiB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG4gICAgbGV0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2NvbXBvbmVudCcpO1xuXG4gICAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50SW5zdGFuY2U7XG5cbiAgICBpZiAoREVCVUcgJiYgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbigoKSA9PiB7XG4gICAgICAgIGNvbXBvbmVudCA9IGRlbGVnYXRlLmNyZWF0ZUNvbXBvbmVudChkZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wb25lbnQgPSBkZWxlZ2F0ZS5jcmVhdGVDb21wb25lbnQoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDdXN0b21Db21wb25lbnRTdGF0ZShjb21wb25lbnQhLCBhcmdzLCBlbnYpO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiBkZWZpbml0aW9uID09PSAnZnVuY3Rpb24nID8gZGVmaW5pdGlvbi5uYW1lIDogZGVmaW5pdGlvbi50b1N0cmluZygpO1xuICB9XG5cbiAgdXBkYXRlKGJ1Y2tldDogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG4gICAgaWYgKGhhc1VwZGF0ZUhvb2soZGVsZWdhdGUpKSB7XG4gICAgICBsZXQgeyBjb21wb25lbnQsIGFyZ3MgfSA9IGJ1Y2tldDtcblxuICAgICAgZGVsZWdhdGUudXBkYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZGlkQ3JlYXRlKHsgY29tcG9uZW50IH06IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IHZvaWQge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgaWYgKGhhc0FzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzKGRlbGVnYXRlKSkge1xuICAgICAgZGVsZWdhdGUuZGlkQ3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgZGlkVXBkYXRlKHsgY29tcG9uZW50IH06IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IHZvaWQge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgaWYgKGhhc0FzeW5jVXBkYXRlSG9vayhkZWxlZ2F0ZSkpIHtcbiAgICAgIGRlbGVnYXRlLmRpZFVwZGF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGRpZFJlbmRlckxheW91dCgpOiB2b2lkIHt9XG5cbiAgZGlkVXBkYXRlTGF5b3V0KCk6IHZvaWQge31cblxuICBnZXRTZWxmKHsgY29tcG9uZW50IH06IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IFJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvbnN0UmVmKHRoaXMuZGVsZWdhdGUuZ2V0Q29udGV4dChjb21wb25lbnQpLCAndGhpcycpO1xuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoYnVja2V0OiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4pOiBPcHRpb248RGVzdHJveWFibGU+IHtcbiAgICBjb25zdCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgaWYgKGhhc0Rlc3RydWN0b3JzKGRlbGVnYXRlKSkge1xuICAgICAgY29uc3QgeyBjb21wb25lbnQgfSA9IGJ1Y2tldDtcblxuICAgICAgcmVnaXN0ZXJEZXN0cnVjdG9yKGJ1Y2tldCwgKCkgPT4gZGVsZWdhdGUuZGVzdHJveUNvbXBvbmVudChjb21wb25lbnQpKTtcbiAgICAgIHJldHVybiBidWNrZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRDYXBhYmlsaXRpZXMoKTogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMge1xuICAgIHJldHVybiBDQVBBQklMSVRJRVM7XG4gIH1cbn1cblxuLyoqXG4gKiBTdG9yZXMgaW50ZXJuYWwgc3RhdGUgYWJvdXQgYSBjb21wb25lbnQgaW5zdGFuY2UgYWZ0ZXIgaXQncyBiZWVuIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29tcG9uZW50OiBDb21wb25lbnRJbnN0YW5jZSxcbiAgICBwdWJsaWMgYXJnczogQXJndW1lbnRzLFxuICAgIHB1YmxpYyBlbnY6IEVudmlyb25tZW50XG4gICkge31cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBa0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU0sWUFBWSxHQUFHO0FBQ25CLEVBQUEsYUFBYSxFQURNLEtBQUE7QUFFbkIsRUFBQSxVQUFVLEVBRlMsS0FBQTtBQUduQixFQUFBLFdBQVcsRUFIUSxLQUFBO0FBSW5CLEVBQUEsVUFBVSxFQUpTLElBQUE7QUFLbkIsRUFBQSxhQUFhLEVBTE0sS0FBQTtBQU1uQixFQUFBLFdBQVcsRUFOUSxLQUFBO0FBT25CLEVBQUEsWUFBWSxFQVBPLEtBQUE7QUFRbkIsRUFBQSxZQUFZLEVBUk8sSUFBQTtBQVNuQixFQUFBLFVBQVUsRUFUUyxJQUFBO0FBVW5CLEVBQUEsY0FBYyxFQVZLLElBQUE7QUFXbkIsRUFBQSxPQUFPLEVBWFksS0FBQTtBQVluQixFQUFBLFdBQVcsRUFaUSxLQUFBO0FBYW5CLEVBQUEsV0FBVyxFQUFFO0FBYk0sQ0FBckI7O0FBZ0JNLFNBQUEscUJBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFZ0Q7QUFFcEQsTUFBSSxjQUFTLFVBQVUsS0FBbkIsS0FBQSxJQUFpQyxVQUFVLEtBQS9DLE1BQUEsRUFBNEQ7QUFDMUQsVUFBTSxJQUFBLEtBQUEsQ0FBTixtREFBTSxDQUFOO0FBQ0Q7O0FBRUQsTUFBSSxVQUFVLEdBQWQsSUFBQTs7QUFFQSxNQUFJLFVBQVUsS0FBZCxNQUFBLEVBQTJCO0FBQ3pCLElBQUEsVUFBVSxHQUFHLE9BQU8sQ0FBRSxPQUFpRCxDQUF2RSxVQUFvQixDQUFwQjtBQUNEOztBQUVELFNBQU8scUNBQWtCO0FBQ3ZCLElBQUEsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FEakIsdUJBQ1MsQ0FEVDtBQUV2QixJQUFBLFVBQVUsRUFBRSxPQUFP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QUFBLFFBQUE7QUFDQSxTQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0w7O0FBTDJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDb21wb25lbnRDYXBhYmlsaXRpZXMsXG4gIENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gIENvbXBvbmVudE1hbmFnZXIsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3MsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoQXN5bmNVcGRhdGVIb29rLFxuICBDb21wb25lbnRNYW5hZ2VyV2l0aERlc3RydWN0b3JzLFxuICBDb21wb25lbnRNYW5hZ2VyV2l0aFVwZGF0ZUhvb2ssXG4gIERlc3Ryb3lhYmxlLFxuICBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBPcHRpb24sXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb25zdFJlZiwgUmVmZXJlbmNlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiB9IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuY29uc3QgQ0FQQUJJTElUSUVTID0ge1xuICBkeW5hbWljTGF5b3V0OiBmYWxzZSxcbiAgZHluYW1pY1RhZzogZmFsc2UsXG4gIHByZXBhcmVBcmdzOiBmYWxzZSxcbiAgY3JlYXRlQXJnczogdHJ1ZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiB0cnVlLFxuICB1cGRhdGVIb29rOiB0cnVlLFxuICBjcmVhdGVJbnN0YW5jZTogdHJ1ZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudENhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBDb21wb25lbnRDYXBhYmlsaXRpZXNWZXJzaW9uc1tWZXJzaW9uXSA9IHt9XG4pOiBDb21wb25lbnRDYXBhYmlsaXRpZXMge1xuICBpZiAoREVCVUcgJiYgbWFuYWdlckFQSSAhPT0gJzMuNCcgJiYgbWFuYWdlckFQSSAhPT0gJzMuMTMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbXBvbmVudCBtYW5hZ2VyIGNvbXBhdGliaWxpdHkgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBsZXQgdXBkYXRlSG9vayA9IHRydWU7XG5cbiAgaWYgKG1hbmFnZXJBUEkgPT09ICczLjEzJykge1xuICAgIHVwZGF0ZUhvb2sgPSBCb29sZWFuKChvcHRpb25zIGFzIENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zWyczLjEzJ10pLnVwZGF0ZUhvb2spO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBhc3luY0xpZmVDeWNsZUNhbGxiYWNrczogQm9vbGVhbihvcHRpb25zLmFzeW5jTGlmZWN5Y2xlQ2FsbGJhY2tzKSxcbiAgICBkZXN0cnVjdG9yOiBCb29sZWFuKG9wdGlvbnMuZGVzdHJ1Y3RvciksXG4gICAgdXBkYXRlSG9vayxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBc3luY0xpZmVDeWNsZUNhbGxiYWNrczxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY0xpZmVDeWNsZUNhbGxiYWNrczxDb21wb25lbnRJbnN0YW5jZT4ge1xuICByZXR1cm4gZGVsZWdhdGUuY2FwYWJpbGl0aWVzLmFzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhVcGRhdGVIb29rPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMudXBkYXRlSG9vaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FzeW5jVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY1VwZGF0ZUhvb2s8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgcmV0dXJuIGhhc0FzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzKGRlbGVnYXRlKSAmJiBoYXNVcGRhdGVIb29rKGRlbGVnYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Rlc3RydWN0b3JzPENvbXBvbmVudEluc3RhbmNlPihcbiAgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+XG4pOiBkZWxlZ2F0ZSBpcyBDb21wb25lbnRNYW5hZ2VyV2l0aERlc3RydWN0b3JzPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuZGVzdHJ1Y3Rvcjtcbn1cblxuLyoqXG4gIFRoZSBDdXN0b21Db21wb25lbnRNYW5hZ2VyIGFsbG93cyBhZGRvbnMgdG8gcHJvdmlkZSBjdXN0b20gY29tcG9uZW50XG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gY29tcG9uZW50IG1hbmFnZXIsIHdoaWNoXG4gIGltcGxlbWVudHMgYSBzZXQgb2YgaG9va3MgdGhhdCBkZXRlcm1pbmUgY29tcG9uZW50IGJlaGF2aW9yLlxuXG4gIFRvIGNyZWF0ZSBhIGN1c3RvbSBjb21wb25lbnQgbWFuYWdlciwgaW5zdGFudGlhdGUgYSBuZXcgQ3VzdG9tQ29tcG9uZW50TWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbUNvbXBvbmVudE1hbmFnZXIoe1xuICAgIC8vIC4uLmRlbGVnYXRlIGltcGxlbWVudGF0aW9uLi4uXG4gIH0pO1xuICBgYGBcblxuICAjIyBEZWxlZ2F0ZSBIb29rc1xuXG4gIFRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBhIGNvbXBvbmVudCwgdGhlIGNvbXBvbmVudCBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG5cbiAgKiBgY3JlYXRlKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgY29tcG9uZW50IHNob3VsZCBiZSBjcmVhdGVkXG4gICogYHVwZGF0ZSgpYCAtIGludm9rZWQgd2hlbiB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBhIGNvbXBvbmVudCBjaGFuZ2VcbiAgKiBgZ2V0Q29udGV4dCgpYCAtIHJldHVybnMgdGhlIG9iamVjdCB0aGF0IHNob3VsZCBiZVxuKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Db21wb25lbnRNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgQ29tcG9uZW50SW5zdGFuY2U+XG4gIGltcGxlbWVudHMgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPj4ge1xuICBwcml2YXRlIGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+Pikge31cblxuICBwcml2YXRlIGdldERlbGVnYXRlRm9yKG93bmVyOiBPKSB7XG4gICAgbGV0IHsgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyB9ID0gdGhpcztcbiAgICBsZXQgZGVsZWdhdGUgPSBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBjb21wb25lbnQgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuNCcgfCAnMy4xMycpXFxgIChpbXBvcnRlZCB2aWEgXFxgaW1wb3J0IHsgY2FwYWJpbGl0aWVzIH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudCc7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShcbiAgICBvd25lcjogTyxcbiAgICBkZWZpbml0aW9uOiBDb21wb25lbnREZWZpbml0aW9uU3RhdGUsXG4gICAgdm1BcmdzOiBWTUFyZ3VtZW50c1xuICApOiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4ge1xuICAgIGxldCBkZWxlZ2F0ZSA9IHRoaXMuZ2V0RGVsZWdhdGVGb3Iob3duZXIpO1xuICAgIGxldCBhcmdzID0gYXJnc1Byb3h5Rm9yKHZtQXJncy5jYXB0dXJlKCksICdjb21wb25lbnQnKTtcblxuICAgIGxldCBjb21wb25lbnQ6IENvbXBvbmVudEluc3RhbmNlO1xuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBjb21wb25lbnQgPSBkZWxlZ2F0ZS5jcmVhdGVDb21wb25lbnQoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50ID0gZGVsZWdhdGUuY3JlYXRlQ29tcG9uZW50KGRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ3VzdG9tQ29tcG9uZW50U3RhdGUoY29tcG9uZW50ISwgZGVsZWdhdGUsIGFyZ3MpO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiBkZWZpbml0aW9uID09PSAnZnVuY3Rpb24nID8gZGVmaW5pdGlvbi5uYW1lIDogZGVmaW5pdGlvbi50b1N0cmluZygpO1xuICB9XG5cbiAgdXBkYXRlKGJ1Y2tldDogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IGJ1Y2tldDtcbiAgICBpZiAoaGFzVXBkYXRlSG9vayhkZWxlZ2F0ZSkpIHtcbiAgICAgIGxldCB7IGNvbXBvbmVudCwgYXJncyB9ID0gYnVja2V0O1xuXG4gICAgICBkZWxlZ2F0ZS51cGRhdGVDb21wb25lbnQoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICBkaWRDcmVhdGUoeyBjb21wb25lbnQsIGRlbGVnYXRlIH06IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IHZvaWQge1xuICAgIGlmIChoYXNBc3luY0xpZmVDeWNsZUNhbGxiYWNrcyhkZWxlZ2F0ZSkpIHtcbiAgICAgIGRlbGVnYXRlLmRpZENyZWF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGRpZFVwZGF0ZSh7IGNvbXBvbmVudCwgZGVsZWdhdGUgfTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgaWYgKGhhc0FzeW5jVXBkYXRlSG9vayhkZWxlZ2F0ZSkpIHtcbiAgICAgIGRlbGVnYXRlLmRpZFVwZGF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIGRpZFJlbmRlckxheW91dCgpOiB2b2lkIHt9XG5cbiAgZGlkVXBkYXRlTGF5b3V0KCk6IHZvaWQge31cblxuICBnZXRTZWxmKHsgY29tcG9uZW50LCBkZWxlZ2F0ZSB9OiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4pOiBSZWZlcmVuY2Uge1xuICAgIHJldHVybiBjcmVhdGVDb25zdFJlZihkZWxlZ2F0ZS5nZXRDb250ZXh0KGNvbXBvbmVudCksICd0aGlzJyk7XG4gIH1cblxuICBnZXREZXN0cm95YWJsZShidWNrZXQ6IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IE9wdGlvbjxEZXN0cm95YWJsZT4ge1xuICAgIGNvbnN0IHsgZGVsZWdhdGUgfSA9IGJ1Y2tldDtcblxuICAgIGlmIChoYXNEZXN0cnVjdG9ycyhkZWxlZ2F0ZSkpIHtcbiAgICAgIGNvbnN0IHsgY29tcG9uZW50IH0gPSBidWNrZXQ7XG5cbiAgICAgIHJlZ2lzdGVyRGVzdHJ1Y3RvcihidWNrZXQsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lDb21wb25lbnQoY29tcG9uZW50KSk7XG4gICAgICByZXR1cm4gYnVja2V0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0Q2FwYWJpbGl0aWVzKCk6IEludGVybmFsQ29tcG9uZW50Q2FwYWJpbGl0aWVzIHtcbiAgICByZXR1cm4gQ0FQQUJJTElUSUVTO1xuICB9XG59XG5cbi8qKlxuICogU3RvcmVzIGludGVybmFsIHN0YXRlIGFib3V0IGEgY29tcG9uZW50IGluc3RhbmNlIGFmdGVyIGl0J3MgYmVlbiBjcmVhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbXBvbmVudDogQ29tcG9uZW50SW5zdGFuY2UsXG4gICAgcHVibGljIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPixcbiAgICBwdWJsaWMgYXJnczogQXJndW1lbnRzXG4gICkge31cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

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

exports.hasDestroyable = hasDestroyable;
exports.customHelper = customHelper;
exports.CustomHelperManager = void 0;

@@ -50,18 +50,70 @@ var _env = require("@glimmer/env");

function customHelper(manager, definition) {
return (vmArgs, vm) => {
const args = (0, _argsProxy.argsProxyFor)(vmArgs.capture(), 'helper');
const bucket = manager.createHelper(definition, args);
class CustomHelperManager {
constructor(factory) {
this.factory = factory;
this.helperManagerDelegates = new WeakMap();
this.undefinedDelegate = null;
}
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
getDelegateForOwner(owner) {
let delegate = this.helperManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
this.helperManagerDelegates.set(owner, delegate);
}
if (hasValue(manager)) {
return (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, _env.DEBUG && manager.getDebugName && manager.getDebugName(definition));
return delegate;
}
getDelegateFor(owner) {
if (owner === undefined) {
let {
undefinedDelegate
} = this;
if (undefinedDelegate === null) {
let {
factory
} = this;
this.undefinedDelegate = undefinedDelegate = factory(undefined);
}
return undefinedDelegate;
} else {
return _reference.UNDEFINED_REFERENCE;
return this.getDelegateForOwner(owner);
}
};
}
getHelper(definition) {
return (vmArgs, vm) => {
let owner = vm.getOwner();
let manager = this.getDelegateForOwner(owner);
const args = (0, _argsProxy.argsProxyFor)(vmArgs.capture(), 'helper');
const bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
return (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, _env.DEBUG && manager.getDebugName && manager.getDebugName(definition));
} else {
return _reference.UNDEFINED_REFERENCE;
}
};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQVNBOztBQUVBOztBQUNBOztBQUVNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFcUM7QUFFekMsTUFBSSxjQUFTLFVBQVUsS0FBdkIsTUFBQSxFQUFvQztBQUNsQyxVQUFNLElBQUEsS0FBQSxDQUFOLGdEQUFNLENBQU47QUFDRDs7QUFFRCxNQUNFLGVBQ0MsRUFBRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBQTdCLGtCQUFBLEtBQ0UsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUhoQyxrQkFDRSxDQURGLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUFOLHdKQUFNLENBQU47QUFHRDs7QUFFRCxNQUFJLGNBQVMsT0FBTyxDQUFwQixrQkFBQSxFQUF5QztBQUN2QyxVQUFNLElBQUEsS0FBQSxDQUFOLHNIQUFNLENBQU47QUFHRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQURGLFFBQ04sQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUZSLGNBRUEsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQVIsa0JBQUE7QUFISixHQUFsQixDQUFQO0VBT0Y7OztBQUVNLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQLFFBQUE7QUFDRDs7QUFFSyxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQzJCO0FBRS9CLFNBQU8sT0FBTyxDQUFQLFlBQUEsQ0FBUCxjQUFBO0VBR0Y7OztBQUVNLFNBQUEsWUFBQSxDQUFBLE9BQUEsRUFBQSxVQUFBLEVBQTBFO0FBQzlFLFNBQU8sQ0FBQSxNQUFBLEVBQUEsRUFBQSxLQUFlO0FBQ3BCLFVBQU0sSUFBSSxHQUFHLDZCQUFhLE1BQU0sQ0FBUCxPQUFDLEVBQWIsRUFBYixRQUFhLENBQWI7QUFDQSxVQUFNLE1BQU0sR0FBRyxPQUFPLENBQVAsWUFBQSxDQUFBLFVBQUEsRUFBZixJQUFlLENBQWY7O0FBRUEsUUFBSSxjQUFjLENBQWxCLE9BQWtCLENBQWxCLEVBQTZCO0FBQzNCLE1BQUEsRUFBRSxDQUFGLG9CQUFBLENBQXdCLE9BQU8sQ0FBUCxjQUFBLENBQXhCLE1BQXdCLENBQXhCO0FBQ0Q7O0FBRUQsUUFBSSxRQUFRLENBQVosT0FBWSxDQUFaLEVBQXVCO0FBQ3JCLGFBQU8saUNBQ0wsTUFBTSxPQUFPLENBQVAsUUFBQSxDQURlLE1BQ2YsQ0FERCxFQUFnQixJQUFoQixFQUdMLGNBQVMsT0FBTyxDQUFoQixZQUFBLElBQWlDLE9BQU8sQ0FBUCxZQUFBLENBSG5DLFVBR21DLENBSDVCLENBQVA7QUFERixLQUFBLE1BTU87QUFDTCxhQUFBLDhCQUFBO0FBQ0Q7QUFoQkgsR0FBQTtBQWtCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlciBhcyBHbGltbWVySGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogUGFydGlhbDxIZWxwZXJDYXBhYmlsaXRpZXM+ID0ge31cbik6IEhlbHBlckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGVscGVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgICghKG9wdGlvbnMuaGFzVmFsdWUgfHwgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHx8XG4gICAgICAob3B0aW9ucy5oYXNWYWx1ZSAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBwYXNzIGVpdGhlciB0aGUgYGhhc1ZhbHVlYCBPUiB0aGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSB3aGVuIGRlZmluaW5nIGEgaGVscGVyIG1hbmFnZXIuIFBhc3NpbmcgbmVpdGhlciwgb3IgYm90aCwgaXMgbm90IHBlcm1pdHRlZC4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdUaGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkIGZvciBoZWxwZXIgbWFuYWdlcnMuIFBsZWFzZSBwYXNzIGBoYXNWYWx1ZWAgaW5zdGVhZCdcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBoYXNWYWx1ZTogQm9vbGVhbihvcHRpb25zLmhhc1ZhbHVlKSxcbiAgICBoYXNEZXN0cm95YWJsZTogQm9vbGVhbihvcHRpb25zLmhhc0Rlc3Ryb3lhYmxlKSxcbiAgICBoYXNTY2hlZHVsZWRFZmZlY3Q6IEJvb2xlYW4ob3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpLFxuICB9KTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc1ZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJveWFibGUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNEZXN0cm95YWJsZTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21IZWxwZXIobWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPiwgZGVmaW5pdGlvbjogb2JqZWN0KTogR2xpbW1lckhlbHBlciB7XG4gIHJldHVybiAodm1BcmdzLCB2bSkgPT4ge1xuICAgIGNvbnN0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2hlbHBlcicpO1xuICAgIGNvbnN0IGJ1Y2tldCA9IG1hbmFnZXIuY3JlYXRlSGVscGVyKGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgIH1cblxuICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgICAgICgpID0+IG1hbmFnZXIuZ2V0VmFsdWUoYnVja2V0KSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgREVCVUcgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUoZGVmaW5pdGlvbilcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVTkRFRklORURfUkVGRVJFTkNFO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
exports.CustomHelperManager = CustomHelperManager;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQVlBOztBQUVBOztBQUNBOztBQUdNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFcUM7QUFFekMsTUFBSSxjQUFTLFVBQVUsS0FBdkIsTUFBQSxFQUFvQztBQUNsQyxVQUFNLElBQUEsS0FBQSxDQUFOLGdEQUFNLENBQU47QUFDRDs7QUFFRCxNQUNFLGVBQ0MsRUFBRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBQTdCLGtCQUFBLEtBQ0UsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUhoQyxrQkFDRSxDQURGLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUFOLHdKQUFNLENBQU47QUFHRDs7QUFFRCxNQUFJLGNBQVMsT0FBTyxDQUFwQixrQkFBQSxFQUF5QztBQUN2QyxVQUFNLElBQUEsS0FBQSxDQUFOLHNIQUFNLENBQU47QUFHRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQURGLFFBQ04sQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUZSLGNBRUEsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQVIsa0JBQUE7QUFISixHQUFsQixDQUFQO0VBT0Y7OztBQUVNLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQLFFBQUE7QUFDRDs7QUFFSyxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQzJCO0FBRS9CLFNBQU8sT0FBTyxDQUFQLFlBQUEsQ0FBUCxjQUFBO0VBR0Y7OztBQUVNLE1BQUEsbUJBQUEsQ0FBMEI7QUFDOUIsRUFBQSxXQUFBLENBQUEsT0FBQSxFQUFrRjtBQUE5RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRVosU0FBQSxzQkFBQSxHQUF5QixJQUF6QixPQUF5QixFQUF6QjtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBSDhFOztBQUs5RSxFQUFBLG1CQUFtQixDQUFBLEtBQUEsRUFBUztBQUNsQyxRQUFJLFFBQVEsR0FBRyxLQUFBLHNCQUFBLENBQUEsR0FBQSxDQUFmLEtBQWUsQ0FBZjs7QUFFQSxRQUFJLFFBQVEsS0FBWixTQUFBLEVBQTRCO0FBQzFCLFVBQUk7QUFBRSxRQUFBO0FBQUYsVUFBSixJQUFBO0FBQ0EsTUFBQSxRQUFRLEdBQUcsT0FBTyxDQUFsQixLQUFrQixDQUFsQjs7QUFFQSxVQUFJLGNBQVMsQ0FBQyxnQ0FBQSxHQUFBLENBQXVCLFFBQVEsQ0FBN0MsWUFBYyxDQUFkLEVBQTZEO0FBQzNEO0FBQ0EsY0FBTSxJQUFBLEtBQUEsQ0FDSix5TUFBeU0sSUFBSSxDQUFKLFNBQUEsQ0FDdk0sUUFBUSxDQUQrTCxZQUFBLENBRXhNLGFBQWEsUUFIaEIsSUFBTSxDQUFOO0FBS0Q7O0FBRUQsV0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBQSxLQUFBLEVBQUEsUUFBQTtBQUNEOztBQUVELFdBQUEsUUFBQTtBQUNEOztBQUVELEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBcUI7QUFDakMsUUFBSSxLQUFLLEtBQVQsU0FBQSxFQUF5QjtBQUN2QixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQUosSUFBQTs7QUFFQSxVQUFJLGlCQUFpQixLQUFyQixJQUFBLEVBQWdDO0FBQzlCLFlBQUk7QUFBRSxVQUFBO0FBQUYsWUFBSixJQUFBO0FBQ0EsYUFBQSxpQkFBQSxHQUF5QixpQkFBaUIsR0FBRyxPQUFPLENBQXBELFNBQW9ELENBQXBEO0FBQ0Q7O0FBRUQsYUFBQSxpQkFBQTtBQVJGLEtBQUEsTUFTTztBQUNMLGFBQU8sS0FBQSxtQkFBQSxDQUFQLEtBQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxTQUFTLENBQUEsVUFBQSxFQUFrQztBQUN6QyxXQUFPLENBQUEsTUFBQSxFQUFBLEVBQUEsS0FBZTtBQUNwQixVQUFJLEtBQUssR0FBRyxFQUFFLENBQWQsUUFBWSxFQUFaO0FBRUEsVUFBSSxPQUFPLEdBQUcsS0FBQSxtQkFBQSxDQUFkLEtBQWMsQ0FBZDtBQUVBLFlBQU0sSUFBSSxHQUFHLDZCQUFhLE1BQU0sQ0FBUCxPQUFDLEVBQWIsRUFBYixRQUFhLENBQWI7QUFDQSxZQUFNLE1BQU0sR0FBRyxPQUFPLENBQVAsWUFBQSxDQUFBLFVBQUEsRUFBZixJQUFlLENBQWY7O0FBRUEsVUFBSSxjQUFjLENBQWxCLE9BQWtCLENBQWxCLEVBQTZCO0FBQzNCLFFBQUEsRUFBRSxDQUFGLG9CQUFBLENBQXdCLE9BQU8sQ0FBUCxjQUFBLENBQXhCLE1BQXdCLENBQXhCO0FBQ0Q7O0FBRUQsVUFBSSxRQUFRLENBQVosT0FBWSxDQUFaLEVBQXVCO0FBQ3JCLGVBQU8saUNBQ0wsTUFBTyxPQUEyQyxDQUEzQyxRQUFBLENBRGMsTUFDZCxDQURGLEVBQWdCLElBQWhCLEVBR0wsY0FBUyxPQUFPLENBQWhCLFlBQUEsSUFBaUMsT0FBTyxDQUFQLFlBQUEsQ0FIbkMsVUFHbUMsQ0FINUIsQ0FBUDtBQURGLE9BQUEsTUFNTztBQUNMLGVBQUEsOEJBQUE7QUFDRDtBQXBCSCxLQUFBO0FBc0JEOztBQWxFNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBIZWxwZXIsXG4gIEhlbHBlckNhcGFiaWxpdGllcyxcbiAgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIEhlbHBlckRlZmluaXRpb25TdGF0ZSxcbiAgSGVscGVyTWFuYWdlcixcbiAgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZSxcbiAgSGVscGVyTWFuYWdlcldpdGhWYWx1ZSxcbiAgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb21wdXRlUmVmLCBVTkRFRklORURfUkVGRVJFTkNFIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcblxuaW1wb3J0IHsgYnVpbGRDYXBhYmlsaXRpZXMsIEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcbmltcG9ydCB7IE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogUGFydGlhbDxIZWxwZXJDYXBhYmlsaXRpZXM+ID0ge31cbik6IEhlbHBlckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGVscGVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgICghKG9wdGlvbnMuaGFzVmFsdWUgfHwgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHx8XG4gICAgICAob3B0aW9ucy5oYXNWYWx1ZSAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBwYXNzIGVpdGhlciB0aGUgYGhhc1ZhbHVlYCBPUiB0aGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSB3aGVuIGRlZmluaW5nIGEgaGVscGVyIG1hbmFnZXIuIFBhc3NpbmcgbmVpdGhlciwgb3IgYm90aCwgaXMgbm90IHBlcm1pdHRlZC4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdUaGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkIGZvciBoZWxwZXIgbWFuYWdlcnMuIFBsZWFzZSBwYXNzIGBoYXNWYWx1ZWAgaW5zdGVhZCdcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBoYXNWYWx1ZTogQm9vbGVhbihvcHRpb25zLmhhc1ZhbHVlKSxcbiAgICBoYXNEZXN0cm95YWJsZTogQm9vbGVhbihvcHRpb25zLmhhc0Rlc3Ryb3lhYmxlKSxcbiAgICBoYXNTY2hlZHVsZWRFZmZlY3Q6IEJvb2xlYW4ob3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpLFxuICB9KTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc1ZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJveWFibGUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNEZXN0cm95YWJsZTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBjbGFzcyBDdXN0b21IZWxwZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciA9IE93bmVyPiBpbXBsZW1lbnRzIEludGVybmFsSGVscGVyTWFuYWdlcjxPPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TyB8IHVuZGVmaW5lZCwgSGVscGVyTWFuYWdlcjx1bmtub3duPj4pIHt9XG5cbiAgcHJpdmF0ZSBoZWxwZXJNYW5hZ2VyRGVsZWdhdGVzID0gbmV3IFdlYWtNYXA8TywgSGVscGVyTWFuYWdlcjx1bmtub3duPj4oKTtcbiAgcHJpdmF0ZSB1bmRlZmluZWREZWxlZ2F0ZTogSGVscGVyTWFuYWdlcjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcjogTykge1xuICAgIGxldCBkZWxlZ2F0ZSA9IHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gaGVscGVyIG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjIzJylcXGAgKGltcG9ydGVkIHZpYSBcXGBpbXBvcnQgeyBjYXBhYmlsaXRpZXMgfSBmcm9tICdAZW1iZXIvaGVscGVyJztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5zZXQob3duZXIsIGRlbGVnYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZWdhdGU7XG4gIH1cblxuICBnZXREZWxlZ2F0ZUZvcihvd25lcjogTyB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyB1bmRlZmluZWREZWxlZ2F0ZSB9ID0gdGhpcztcblxuICAgICAgaWYgKHVuZGVmaW5lZERlbGVnYXRlID09PSBudWxsKSB7XG4gICAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICAgIHRoaXMudW5kZWZpbmVkRGVsZWdhdGUgPSB1bmRlZmluZWREZWxlZ2F0ZSA9IGZhY3RvcnkodW5kZWZpbmVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZERlbGVnYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyKTtcbiAgICB9XG4gIH1cblxuICBnZXRIZWxwZXIoZGVmaW5pdGlvbjogSGVscGVyRGVmaW5pdGlvblN0YXRlKTogSGVscGVyIHtcbiAgICByZXR1cm4gKHZtQXJncywgdm0pID0+IHtcbiAgICAgIGxldCBvd25lciA9IHZtLmdldE93bmVyKCkgYXMgTztcblxuICAgICAgbGV0IG1hbmFnZXIgPSB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuXG4gICAgICBjb25zdCBhcmdzID0gYXJnc1Byb3h5Rm9yKHZtQXJncy5jYXB0dXJlKCksICdoZWxwZXInKTtcbiAgICAgIGNvbnN0IGJ1Y2tldCA9IG1hbmFnZXIuY3JlYXRlSGVscGVyKGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgICBpZiAoaGFzRGVzdHJveWFibGUobWFuYWdlcikpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUobWFuYWdlci5nZXREZXN0cm95YWJsZShidWNrZXQpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1ZhbHVlKG1hbmFnZXIpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVDb21wdXRlUmVmKFxuICAgICAgICAgICgpID0+IChtYW5hZ2VyIGFzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4pLmdldFZhbHVlKGJ1Y2tldCksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBERUJVRyAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZSAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZShkZWZpbml0aW9uKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -14,46 +14,17 @@ "use strict";

var _env = require("@glimmer/env");
var _modifier = require("./modifier");
var _capabilities = require("../util/capabilities");
var _helper = require("./helper");
var _modifier = require("./modifier");
function setComponentManager(factory, obj) {
return (0, _index.setInternalComponentManager)(owner => {
let manager = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom component managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.4' | '3.13')\` (imported via \`import { capabilities } from '@ember/component';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return new _component.CustomComponentManager(manager);
}, obj);
return (0, _index.setInternalComponentManager)(new _component.CustomComponentManager(factory), obj);
}
function setModifierManager(factory, obj) {
return (0, _index.setInternalModifierManager)(owner => {
let manager = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom modifier managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.13' | '3.22')\` (imported via \`import { capabilities } from '@ember/modifier';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return new _modifier.CustomModifierManager(owner, manager);
}, obj);
return (0, _index.setInternalModifierManager)(new _modifier.CustomModifierManager(factory), obj);
}
function setHelperManager(factory, obj) {
return (0, _index.setInternalHelperManager)(owner => {
let manager = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return manager;
}, obj);
return (0, _index.setInternalHelperManager)(new _helper.CustomHelperManager(factory), obj);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFNTSxTQUFBLG1CQUFBLENBQUEsT0FBQSxFQUFBLEdBQUEsRUFFRTtBQUVOLFNBQU8sd0NBQTZCLEtBQUQsSUFBYTtBQUM5QyxRQUFJLE9BQU8sR0FBRyxPQUFPLENBQXJCLEtBQXFCLENBQXJCOztBQUVBLFFBQUksY0FBUyxDQUFDLGdDQUFBLEdBQUEsQ0FBdUIsT0FBTyxDQUE1QyxZQUFjLENBQWQsRUFBNEQ7QUFDMUQ7QUFDQSxZQUFNLElBQUEsS0FBQSxDQUNKLHVOQUF1TixJQUFJLENBQUosU0FBQSxDQUNyTixPQUFPLENBRDhNLFlBQUEsQ0FFdE4sYUFBYSxPQUhoQixJQUFNLENBQU47QUFLRDs7QUFFRCxXQUFPLElBQUEsaUNBQUEsQ0FBUCxPQUFPLENBQVA7QUFaZ0MsR0FBM0IsRUFBUCxHQUFPLENBQVA7QUFjRDs7QUFFSyxTQUFBLGtCQUFBLENBQUEsT0FBQSxFQUFBLEdBQUEsRUFFRTtBQUVOLFNBQU8sdUNBQTRCLEtBQUQsSUFBYTtBQUM3QyxRQUFJLE9BQU8sR0FBRyxPQUFPLENBQXJCLEtBQXFCLENBQXJCOztBQUVBLFFBQUksY0FBUyxDQUFDLGdDQUFBLEdBQUEsQ0FBdUIsT0FBTyxDQUE1QyxZQUFjLENBQWQsRUFBNEQ7QUFDMUQ7QUFDQSxZQUFNLElBQUEsS0FBQSxDQUNKLHNOQUFzTixJQUFJLENBQUosU0FBQSxDQUNwTixPQUFPLENBRDZNLFlBQUEsQ0FFck4sYUFBYSxPQUhoQixJQUFNLENBQU47QUFLRDs7QUFFRCxXQUFPLElBQUEsK0JBQUEsQ0FBQSxLQUFBLEVBQVAsT0FBTyxDQUFQO0FBWitCLEdBQTFCLEVBQVAsR0FBTyxDQUFQO0FBY0Q7O0FBRUssU0FBQSxnQkFBQSxDQUFBLE9BQUEsRUFBQSxHQUFBLEVBRUU7QUFFTixTQUFPLHFDQUEwQixLQUFELElBQXlCO0FBQ3ZELFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBckIsS0FBcUIsQ0FBckI7O0FBRUEsUUFBSSxjQUFTLENBQUMsZ0NBQUEsR0FBQSxDQUF1QixPQUFPLENBQTVDLFlBQWMsQ0FBZCxFQUE0RDtBQUMxRDtBQUNBLFlBQU0sSUFBQSxLQUFBLENBQ0oseU1BQXlNLElBQUksQ0FBSixTQUFBLENBQ3ZNLE9BQU8sQ0FEZ00sWUFBQSxDQUV4TSxhQUFhLE9BSGhCLElBQU0sQ0FBTjtBQUtEOztBQUVELFdBQUEsT0FBQTtBQVo2QixHQUF4QixFQUFQLEdBQU8sQ0FBUDtBQWNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX1dlYWtTZXQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IENvbXBvbmVudE1hbmFnZXIsIEhlbHBlck1hbmFnZXIsIE1vZGlmaWVyTWFuYWdlciwgT3duZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW5kZXgnO1xuaW1wb3J0IHsgQ3VzdG9tQ29tcG9uZW50TWFuYWdlciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnLi9tb2RpZmllcic7XG5cbnR5cGUgTWFuYWdlciA9IENvbXBvbmVudE1hbmFnZXI8dW5rbm93bj4gfCBNb2RpZmllck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXJNYW5hZ2VyPHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBNYW5hZ2VyRmFjdG9yeTxPLCBEIGV4dGVuZHMgTWFuYWdlciA9IE1hbmFnZXI+ID0gKG93bmVyOiBPKSA9PiBEO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29tcG9uZW50TWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPLCBDb21wb25lbnRNYW5hZ2VyPHVua25vd24+PixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcigob3duZXI6IE8pID0+IHtcbiAgICBsZXQgbWFuYWdlciA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKG1hbmFnZXIuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDdXN0b20gY29tcG9uZW50IG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjQnIHwgJzMuMTMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQnO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIG1hbmFnZXIuY2FwYWJpbGl0aWVzXG4gICAgICAgICl9XFxgIGZvcjogXFxgJHttYW5hZ2VyfVxcYGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDdXN0b21Db21wb25lbnRNYW5hZ2VyKG1hbmFnZXIpO1xuICB9LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjx1bmtub3duPj4sXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcigob3duZXI6IE8pID0+IHtcbiAgICBsZXQgbWFuYWdlciA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKG1hbmFnZXIuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbWFuYWdlci5jYXBhYmlsaXRpZXNcbiAgICAgICAgKX1cXGAgZm9yOiBcXGAke21hbmFnZXJ9XFxgYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcihvd25lciwgbWFuYWdlcik7XG4gIH0sIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRIZWxwZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8gfCB1bmRlZmluZWQsIEhlbHBlck1hbmFnZXI8dW5rbm93bj4+LFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKChvd25lcjogTyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGxldCBtYW5hZ2VyID0gZmFjdG9yeShvd25lcik7XG5cbiAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMobWFuYWdlci5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIG1hbmFnZXIuY2FwYWJpbGl0aWVzXG4gICAgICAgICl9XFxgIGZvcjogXFxgJHttYW5hZ2VyfVxcYGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hbmFnZXI7XG4gIH0sIG9iaik7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFNTSxTQUFBLG1CQUFBLENBQUEsT0FBQSxFQUFBLEdBQUEsRUFFRTtBQUVOLFNBQU8sd0NBQTRCLElBQUEsaUNBQUEsQ0FBRCxPQUFDLENBQTVCLEVBQVAsR0FBTyxDQUFQO0FBQ0Q7O0FBRUssU0FBQSxrQkFBQSxDQUFBLE9BQUEsRUFBQSxHQUFBLEVBRUU7QUFFTixTQUFPLHVDQUEyQixJQUFBLCtCQUFBLENBQUQsT0FBQyxDQUEzQixFQUFQLEdBQU8sQ0FBUDtBQUNEOztBQUVLLFNBQUEsZ0JBQUEsQ0FBQSxPQUFBLEVBQUEsR0FBQSxFQUVFO0FBRU4sU0FBTyxxQ0FBeUIsSUFBQSwyQkFBQSxDQUFELE9BQUMsQ0FBekIsRUFBUCxHQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9XZWFrU2V0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRNYW5hZ2VyLCBIZWxwZXJNYW5hZ2VyLCBNb2RpZmllck1hbmFnZXIsIE93bmVyIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIHNldEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgc2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG59IGZyb20gJy4uL2ludGVybmFsL2luZGV4JztcbmltcG9ydCB7IEN1c3RvbUNvbXBvbmVudE1hbmFnZXIgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Nb2RpZmllck1hbmFnZXIgfSBmcm9tICcuL21vZGlmaWVyJztcbmltcG9ydCB7IEN1c3RvbUhlbHBlck1hbmFnZXIgfSBmcm9tICcuL2hlbHBlcic7XG5cbnR5cGUgTWFuYWdlciA9IENvbXBvbmVudE1hbmFnZXI8dW5rbm93bj4gfCBNb2RpZmllck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXJNYW5hZ2VyPHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBNYW5hZ2VyRmFjdG9yeTxPLCBEIGV4dGVuZHMgTWFuYWdlciA9IE1hbmFnZXI+ID0gKG93bmVyOiBPKSA9PiBEO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29tcG9uZW50TWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPLCBDb21wb25lbnRNYW5hZ2VyPHVua25vd24+PixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihuZXcgQ3VzdG9tQ29tcG9uZW50TWFuYWdlcihmYWN0b3J5KSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE1vZGlmaWVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPLCBNb2RpZmllck1hbmFnZXI8dW5rbm93bj4+LFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIobmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcihmYWN0b3J5KSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TyB8IHVuZGVmaW5lZCwgSGVscGVyTWFuYWdlcjx1bmtub3duPj4sXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIobmV3IEN1c3RvbUhlbHBlck1hbmFnZXIoZmFjdG9yeSksIG9iaik7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -66,11 +66,32 @@ "use strict";

class CustomModifierManager {
constructor(owner, delegate) {
this.owner = owner;
this.delegate = delegate;
constructor(factory) {
this.factory = factory;
this.componentManagerDelegates = new WeakMap();
}
create(element, definition, vmArgs) {
getDelegateFor(owner) {
let {
delegate
componentManagerDelegates
} = this;
let delegate = componentManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (_env.DEBUG && !_capabilities.FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom modifier managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.13' | '3.22')\` (imported via \`import { capabilities } from '@ember/modifier';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
componentManagerDelegates.set(owner, delegate);
}
return delegate;
}
create(owner, element, definition, vmArgs) {
let delegate = this.getDelegateFor(owner);
let capturedArgs = vmArgs.capture();

@@ -86,7 +107,4 @@ let {

if (passFactoryToCreate) {
let {
owner
} = this; // Make a fake factory. While not perfect, this should generally prevent
// Make a fake factory. While not perfect, this should generally prevent
// breakage in users of older modifier capabilities.
factoryOrDefinition = {

@@ -118,2 +136,3 @@ create(args) {

element,
delegate,
args,

@@ -127,2 +146,3 @@ modifier: instance

modifier: instance,
delegate,

@@ -159,8 +179,6 @@ get args() {

args,
modifier
modifier,
delegate
}) {
let {
delegate
} = this;
let {
capabilities

@@ -178,8 +196,6 @@ } = delegate;

args,
modifier
modifier,
delegate
}) {
let {
delegate
} = this;
let {
capabilities

@@ -219,2 +235,2 @@ } = delegate;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFXQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFFTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUVKLGdCQUFBLEdBRkksRUFBQSxFQUV3RDtBQUU1RCxNQUFJLGNBQVMsVUFBVSxLQUFuQixNQUFBLElBQWtDLFVBQVUsS0FBaEQsTUFBQSxFQUE2RDtBQUMzRCxVQUFNLElBQUEsS0FBQSxDQUFOLGtEQUFNLENBQU47QUFDRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FEdEIsbUJBQ0ssQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQVYsTUFBQSxHQUFBLEtBQUEsR0FGUyxJQUFBO0FBSXZCO0FBQ0E7QUFDQSxJQUFBLG1CQUFtQixFQUFFLFVBQVUsS0FBSztBQU5iLEdBQWxCLENBQVA7QUFRRDtBQWNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCTSxNQUFBLHFCQUFBLENBQTRCO0FBRWhDLEVBQUEsV0FBQSxDQUFBLEtBQUEsRUFBQSxRQUFBLEVBQXFGO0FBQWpFLFNBQUEsS0FBQSxHQUFBLEtBQUE7QUFBc0IsU0FBQSxRQUFBLEdBQUEsUUFBQTtBQUErQzs7QUFFekYsRUFBQSxNQUFNLENBQUEsT0FBQSxFQUFBLFVBQUEsRUFBQSxNQUFBLEVBQWdFO0FBQ3BFLFFBQUk7QUFBRSxNQUFBO0FBQUYsUUFBSixJQUFBO0FBQ0EsUUFBSSxZQUFZLEdBQUcsTUFBTSxDQUF6QixPQUFtQixFQUFuQjtBQUVBLFFBQUk7QUFBQSxNQUFBLFlBQUE7QUFBZ0IsTUFBQTtBQUFoQixRQUF3QyxRQUFRLENBQXBELFlBQUE7QUFFQSxRQUFJLElBQUksR0FBRyxZQUFZLEdBQUcs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WixtQkFBQSxLQUFKLElBQUEsRUFBK0M7QUFDN0MsOEJBQVEsTUFBTSxRQUFRLENBQVIsY0FBQSxDQUFBLFFBQUEsRUFBZCxJQUFjLENBQWQ7QUFERixLQUFBLE1BRU87QUFDTCxNQUFBLFFBQVEsQ0FBUixjQUFBLENBQUEsUUFBQSxFQUFBLElBQUE7QUFDRDtBQUNGOztBQUVELEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBNkM7QUFDekQsV0FBQSxLQUFBO0FBQ0Q7O0FBdEcrQjs7OztBQXlHNUIsU0FBQSxTQUFBLENBQW9CO0FBQUEsRUFBQSxLQUFBO0FBRXhCLEVBQUE7QUFGd0IsQ0FBcEIsRUFHYztBQUNsQixNQUFJLFlBQVksR0FBaEIsaUJBQUE7O0FBRUEsT0FBSyxJQUFMLEdBQUEsSUFBQSxLQUFBLEVBQXVCO0FBQ3JCLElBQUEsWUFBWSxDQUFaLEdBQVksQ0FBWixHQUFvQiw0QkFBWSxLQUFLLENBQXJDLEdBQXFDLENBQWpCLENBQXBCO0FBQ0Q7O0FBRUQsTUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQVYsR0FBQSxDQUF4QixzQkFBd0IsQ0FBeEI7QUFFQSxTQUFPO0FBQ0wsSUFBQSxLQUFLLEVBREEsWUFBQTtBQUVMLElBQUEsVUFBVSxFQUFFO0FBRlAsR0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmaWVyQ2FwYWJpbGl0aWVzPFZlcnNpb24gZXh0ZW5kcyBrZXlvZiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uYWxGZWF0dXJlczogTW9kaWZpZXJDYXBhYmlsaXRpZXNWZXJzaW9uc1tWZXJzaW9uXSA9IHt9XG4pOiBNb2RpZmllckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4xMycgJiYgbWFuYWdlckFQSSAhPT0gJzMuMjInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGlmaWVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIHJldHVybiBidWlsZENhcGFiaWxpdGllcyh7XG4gICAgZGlzYWJsZUF1dG9UcmFja2luZzogQm9vbGVhbihvcHRpb25hbEZlYXR1cmVzLmRpc2FibGVBdXRvVHJhY2tpbmcpLFxuICAgIHVzZUFyZ3NQcm94eTogbWFuYWdlckFQSSA9PT0gJzMuMTMnID8gZmFsc2UgOiB0cnVlLFxuXG4gICAgLy8gVGhpcyBjYXBhYmlsaXR5IGlzIHVzZWQgaW4gRW1iZXIsIGV4Y2x1c2l2ZWx5IGluIHJlc29sdXRpb24gbW9kZS4gU2VlIHRoZVxuICAgIC8vIEVtYmVyIGdsaW1tZXIgcmVzb2x2ZXIgZm9yIGRldGFpbHMuXG4gICAgcGFzc0ZhY3RvcnlUb0NyZWF0ZTogbWFuYWdlckFQSSA9PT0gJzMuMTMnLFxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+IHtcbiAgdGFnOiBVcGRhdGFibGVUYWc7XG4gIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQ7XG4gIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlO1xuICBhcmdzOiBBcmd1bWVudHM7XG4gIGRlYnVnTmFtZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEZhY3Rvcnkge1xuICBjcmVhdGUocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IG9iamVjdDtcbn1cblxuLyoqXG4gIFRoZSBDdXN0b21Nb2RpZmllck1hbmFnZXIgYWxsb3dzIGFkZG9ucyB0byBwcm92aWRlIGN1c3RvbSBtb2RpZmllclxuICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbnRlZ3JhdGUgc2VhbWxlc3NseSBpbnRvIEVtYmVyLiBUaGlzIGlzIGFjY29tcGxpc2hlZFxuICB0aHJvdWdoIGEgZGVsZWdhdGUsIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIHdoaWNoXG4gIGltcGxlbWVudHMgYSBzZXQgb2YgaG9va3MgdGhhdCBkZXRlcm1pbmUgbW9kaWZpZXIgYmVoYXZpb3IuXG4gIFRvIGNyZWF0ZSBhIGN1c3RvbSBtb2RpZmllciBtYW5hZ2VyLCBpbnN0YW50aWF0ZSBhIG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXJcbiAgY2xhc3MgYW5kIHBhc3MgdGhlIGRlbGVnYXRlIGFzIHRoZSBmaXJzdCBhcmd1bWVudDpcblxuICBgYGBqc1xuICBsZXQgbWFuYWdlciA9IG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXIoe1xuICAgIC8vIC4uLmRlbGVnYXRlIGltcGxlbWVudGF0aW9uLi4uXG4gIH0pO1xuICBgYGBcblxuICAjIyBEZWxlZ2F0ZSBIb29rc1xuXG4gIFRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBhIG1vZGlmaWVyLCB0aGUgbW9kaWZpZXIgbWFuYWdlciB3aWxsIGludm9rZVxuICBkZWxlZ2F0ZSBob29rcyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Igc3VyZmFjaW5nIHRob3NlIGxpZmVjeWNsZSBjaGFuZ2VzIHRvXG4gIHRoZSBlbmQgZGV2ZWxvcGVyLlxuICAqIGBjcmVhdGVNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiBhIG5ldyBpbnN0YW5jZSBvZiBhIG1vZGlmaWVyIHNob3VsZCBiZSBjcmVhdGVkXG4gICogYGluc3RhbGxNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgaW5zdGFsbGVkIG9uIHRoZSBlbGVtZW50XG4gICogYHVwZGF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgbW9kaWZpZXIgY2hhbmdlXG4gICogYGRlc3Ryb3lNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkXG4qL1xuZXhwb3J0IGNsYXNzIEN1c3RvbU1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvd25lcjogT3duZXIsIHByaXZhdGUgZGVsZWdhdGU6IE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPikge31cblxuICBjcmVhdGUoZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICBsZXQgeyBvd25lciB9ID0gdGhpcztcbiAgICAgIC8vIE1ha2UgYSBmYWtlIGZhY3RvcnkuIFdoaWxlIG5vdCBwZXJmZWN0LCB0aGlzIHNob3VsZCBnZW5lcmFsbHkgcHJldmVudFxuICAgICAgLy8gYnJlYWthZ2UgaW4gdXNlcnMgb2Ygb2xkZXIgbW9kaWZpZXIgY2FwYWJpbGl0aWVzLlxuICAgICAgZmFjdG9yeU9yRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgY3JlYXRlKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgICAgICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGFyZ3MsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBlbGVtZW50LCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHsgYXJncywgbW9kaWZpZXIgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGdldERlc3Ryb3lhYmxlKHN0YXRlOiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWlmeUFyZ3Moe1xuICBuYW1lZCxcbiAgcG9zaXRpb25hbCxcbn06IENhcHR1cmVkQXJndW1lbnRzKTogeyBuYW1lZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47IHBvc2l0aW9uYWw6IHVua25vd25bXSB9IHtcbiAgbGV0IHJlaWZpZWROYW1lZCA9IGRpY3QoKTtcblxuICBmb3IgKGxldCBrZXkgaW4gbmFtZWQpIHtcbiAgICByZWlmaWVkTmFtZWRba2V5XSA9IHZhbHVlRm9yUmVmKG5hbWVkW2tleV0pO1xuICB9XG5cbiAgbGV0IHJlaWZpZWRQb3NpdGlvbmFsID0gcG9zaXRpb25hbC5tYXAodmFsdWVGb3JSZWYpO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZWQ6IHJlaWZpZWROYW1lZCxcbiAgICBwb3NpdGlvbmFsOiByZWlmaWVkUG9zaXRpb25hbCxcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFXQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUVKLGdCQUFBLEdBRkksRUFBQSxFQUV3RDtBQUU1RCxNQUFJLGNBQVMsVUFBVSxLQUFuQixNQUFBLElBQWtDLFVBQVUsS0FBaEQsTUFBQSxFQUE2RDtBQUMzRCxVQUFNLElBQUEsS0FBQSxDQUFOLGtEQUFNLENBQU47QUFDRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FEdEIsbUJBQ0ssQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQVYsTUFBQSxHQUFBLEtBQUEsR0FGUyxJQUFBO0FBSXZCO0FBQ0E7QUFDQSxJQUFBLG1CQUFtQixFQUFFLFVBQVUsS0FBSztBQU5iLEdBQWxCLENBQVA7QUFRRDtBQWVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCTSxNQUFBLHFCQUFBLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFBLE9BQUEsRUFBaUY7QUFBN0QsU0FBQSxPQUFBLEdBQUEsT0FBQTtBQUZaLFNBQUEseUJBQUEsR0FBNEIsSUFBNUIsT0FBNEIsRUFBNUI7QUFFNkU7O0FBRTdFLEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBUztBQUM3QixRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQUosSUFBQTtBQUNBLFFBQUksUUFBUSxHQUFHLHlCQUF5QixDQUF6QixHQUFBLENBQWYsS0FBZSxDQUFmOztBQUVBLFFBQUksUUFBUSxLQUFaLFNBQUEsRUFBNEI7QUFDMUIsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxNQUFBLFFBQVEsR0FBRyxPQUFPLENBQWxCLEtBQWtCLENBQWxCOztBQUVBLFVBQUksY0FBUyxDQUFDLGdDQUFBLEdBQUEsQ0FBdUIsUUFBUSxDQUE3QyxZQUFjLENBQWQsRUFBNkQ7QUFDM0Q7QUFDQSxjQUFNLElBQUEsS0FBQSxDQUNKLHNOQUFzTixJQUFJLENBQUosU0FBQSxDQUNwTixRQUFRLENBRDRNLFlBQUEsQ0FFck4sYUFBYSxRQUhoQixJQUFNLENBQU47QUFLRDs7QUFFRCxNQUFBLHlCQUF5QixDQUF6QixHQUFBLENBQUEsS0FBQSxFQUFBLFFBQUE7QUFDRDs7QUFFRCxXQUFBLFFBQUE7QUFDRDs7QUFFRCxFQUFBLE1BQU0sQ0FBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLFVBQUEsRUFBQSxNQUFBLEVBQTBFO0FBQzlFLFFBQUksUUFBUSxHQUFHLEtBQUEsY0FBQSxDQUFmLEtBQWUsQ0FBZjtBQUNBLFFBQUksWUFBWSxHQUFHLE1BQU0sQ0FBekIsT0FBbUIsRUFBbkI7QUFFQSxRQUFJO0FBQUEsTUFBQSxZQUFBO0FBQWdCLE1BQUE7QUFBaEIsUUFBd0MsUUFBUSxDQUFwRCxZQUFBO0FBRUEsUUFBSSxJQUFJLEdBQUcsWUFBWSxHQUFHLDZCQUFZLFlBQVosRUFBSCxVQUFHLENBQUgsR0FBNEMsU0FBUyxDQUE1RSxZQUE0RSxDQUE1RTtBQUVBLFFBQUEsUUFBQTtBQUVBLFFBQUksbUJBQW1CLEdBQXZCLFVBQUE7O0FBRUEsUUFBQSxtQkFBQSxFQUF5QjtBQUN2QjtBQUNBO0FBQ0EsTUFBQSxtQkFBbUIsR0FBRztBQUNwQixRQUFBLE1BQU0sQ0FBQSxJQUFBLEVBQThCO0FBQ2xDLGNBQUksTUFBTSxHQUFHLE1BQU0sQ0FBTixNQUFBLENBQUEsRUFBQSxFQUFiLElBQWEsQ0FBYjtBQUNBLCtCQUFRLE1BQVIsRUFBQSxLQUFBO0FBRUEsaUJBQVEsVUFBc0IsQ0FBdEIsTUFBQSxDQUFSLElBQVEsQ0FBUjtBQUxrQixTQUFBOztBQVFwQixRQUFBLEtBQUssRUFBRTtBQVJhLE9BQXRCO0FBVUQ7O0FBRUQsUUFBSSxjQUFTLHVEQUFiLFNBQUEsRUFBb0U7QUFDbEUsOERBQXdDLE1BQUs7QUFDM0MsUUFBQSxRQUFRLEdBQUcsUUFBUSxDQUFSLGNBQUEsQ0FBQSxtQkFBQSxFQUFYLElBQVcsQ0FBWDtBQURGLE9BQUE7QUFERixLQUFBLE1BSU87QUFDTCxNQUFBLFFBQVEsR0FBRyxRQUFRLENBQVIsY0FBQSxDQUFBLG1CQUFBLEVBQVgsSUFBVyxDQUFYO0FBQ0Q7O0FBRUQsUUFBSSxHQUFHLEdBQVAsb0NBQUE7QUFDQSxRQUFBLEtBQUE7O0FBRUEsUUFBQSxZQUFBLEVBQWtCO0FBQ2hCLE1BQUEsS0FBSyxHQUFHO0FBQUEsUUFBQSxHQUFBO0FBQUEsUUFBQSxPQUFBO0FBQUEsUUFBQSxRQUFBO0FBQUEsUUFBQSxJQUFBO0FBS04sUUFBQSxRQUFRLEVBQUU7QUFMSixPQUFSO0FBREYsS0FBQSxNQVFPO0FBQ0wsTUFBQSxLQUFLLEdBQUc7QUFBQSxRQUFBLEdBQUE7QUFBQSxRQUFBLE9BQUE7QUFHTixRQUFBLFFBQVEsRUFIRixRQUFBO0FBQUEsUUFBQSxRQUFBOztBQUtOLFlBQUEsSUFBQSxHQUFRO0FBQ04saUJBQU8sU0FBUyxDQUFoQixZQUFnQixDQUFoQjtBQUNEOztBQVBLLE9BQVI7QUFTRDs7QUFFRCxRQUFBLFVBQUEsRUFBVztBQUNULE1BQUEsS0FBSyxDQUFMLFNBQUEsR0FBa0IsT0FBQSxVQUFBLEtBQUEsVUFBQSxHQUFtQyxVQUFVLENBQTdDLElBQUEsR0FBcUQsVUFBVSxDQUFqRixRQUF1RSxFQUF2RTtBQUNEOztBQUVELHlDQUFrQixLQUFsQixFQUEwQixNQUFNLFFBQVEsQ0FBUixlQUFBLENBQUEsUUFBQSxFQUFtQyxLQUFLLENBQXhFLElBQWdDLENBQWhDO0FBRUEsV0FBQSxLQUFBO0FBQ0Q7O0FBRUQsRUFBQSxZQUFZLENBQUM7QUFBRSxJQUFBO0FBQUYsR0FBRCxFQUFxRDtBQUMvRCxXQUFBLFNBQUE7QUFDRDs7QUFFRCxFQUFBLE1BQU0sQ0FBQztBQUFFLElBQUE7QUFBRixHQUFELEVBQStDO0FBQ25ELFdBQUEsR0FBQTtBQUNEOztBQUVELEVBQUEsT0FBTyxDQUFDO0FBQUEsSUFBQSxPQUFBO0FBQUEsSUFBQSxJQUFBO0FBQUEsSUFBQSxRQUFBO0FBQTJCLElBQUE7QUFBM0IsR0FBRCxFQUE2RTtBQUNsRixRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQUosUUFBQTs7QUFFQSxRQUFJLFlBQVksQ0FBWixtQkFBQSxLQUFKLElBQUEsRUFBK0M7QUFDN0MsOEJBQVEsTUFBTSxRQUFRLENBQVIsZUFBQSxDQUFBLFFBQUEsRUFBQSxPQUFBLEVBQWQsSUFBYyxDQUFkO0FBREYsS0FBQSxNQUVPO0FBQ0wsTUFBQSxRQUFRLENBQVIsZUFBQSxDQUFBLFFBQUEsRUFBQSxPQUFBLEVBQUEsSUFBQTtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxNQUFNLENBQUM7QUFBQSxJQUFBLElBQUE7QUFBQSxJQUFBLFFBQUE7QUFBa0IsSUFBQTtBQUFsQixHQUFELEVBQW9FO0FBQ3hFLFFBQUk7QUFBRSxNQUFBO0FBQUYsUUFBSixRQUFBOztBQUVBLFFBQUksWUFBWSxDQUFaLG1CQUFBLEtBQUosSUFBQSxFQUErQztBQUM3Qyw4QkFBUSxNQUFNLFFBQVEsQ0FBUixjQUFBLENBQUEsUUFBQSxFQUFkLElBQWMsQ0FBZDtBQURGLEtBQUEsTUFFTztBQUNMLE1BQUEsUUFBUSxDQUFSLGNBQUEsQ0FBQSxRQUFBLEVBQUEsSUFBQTtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxjQUFjLENBQUEsS0FBQSxFQUE2QztBQUN6RCxXQUFBLEtBQUE7QUFDRDs7QUE5SCtCOzs7O0FBaUk1QixTQUFBLFNBQUEsQ0FBb0I7QUFBQSxFQUFBLEtBQUE7QUFFeEIsRUFBQTtBQUZ3QixDQUFwQixFQUdjO0FBQ2xCLE1BQUksWUFBWSxHQUFoQixpQkFBQTs7QUFFQSxPQUFLLElBQUwsR0FBQSxJQUFBLEtBQUEsRUFBdUI7QUFDckIsSUFBQSxZQUFZLENBQVosR0FBWSxDQUFaLEdBQW9CLDRCQUFZLEtBQUssQ0FBckMsR0FBcUMsQ0FBakIsQ0FBcEI7QUFDRDs7QUFFRCxNQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBVixHQUFBLENBQXhCLHNCQUF3QixDQUF4QjtBQUVBLFNBQU87QUFDTCxJQUFBLEtBQUssRUFEQSxZQUFBO0FBRUwsSUFBQSxVQUFVLEVBQUU7QUFGUCxHQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENhcHR1cmVkQXJndW1lbnRzLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgTW9kaWZpZXJDYXBhYmlsaXRpZXMsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIE1vZGlmaWVyTWFuYWdlcixcbiAgT3duZXIsXG4gIFZNQXJndW1lbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IHNldE93bmVyIH0gZnJvbSAnQGdsaW1tZXIvb3duZXInO1xuaW1wb3J0IHsgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVXBkYXRhYmxlVGFnLFxuICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24sXG4gIHVudHJhY2ssXG4gIFVwZGF0YWJsZVRhZyxcbn0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7IFNpbXBsZUVsZW1lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYnVpbGRDYXBhYmlsaXRpZXMsIEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcbmltcG9ydCB7IE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZmllckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgTW9kaWZpZXJDYXBhYmlsaXRpZXNWZXJzaW9ucz4oXG4gIG1hbmFnZXJBUEk6IFZlcnNpb24sXG4gIG9wdGlvbmFsRmVhdHVyZXM6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnNbVmVyc2lvbl0gPSB7fVxuKTogTW9kaWZpZXJDYXBhYmlsaXRpZXMge1xuICBpZiAoREVCVUcgJiYgbWFuYWdlckFQSSAhPT0gJzMuMTMnICYmIG1hbmFnZXJBUEkgIT09ICczLjIyJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtb2RpZmllciBtYW5hZ2VyIGNvbXBhdGliaWxpdHkgc3BlY2lmaWVkJyk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGRpc2FibGVBdXRvVHJhY2tpbmc6IEJvb2xlYW4ob3B0aW9uYWxGZWF0dXJlcy5kaXNhYmxlQXV0b1RyYWNraW5nKSxcbiAgICB1c2VBcmdzUHJveHk6IG1hbmFnZXJBUEkgPT09ICczLjEzJyA/IGZhbHNlIDogdHJ1ZSxcblxuICAgIC8vIFRoaXMgY2FwYWJpbGl0eSBpcyB1c2VkIGluIEVtYmVyLCBleGNsdXNpdmVseSBpbiByZXNvbHV0aW9uIG1vZGUuIFNlZSB0aGVcbiAgICAvLyBFbWJlciBnbGltbWVyIHJlc29sdmVyIGZvciBkZXRhaWxzLlxuICAgIHBhc3NGYWN0b3J5VG9DcmVhdGU6IG1hbmFnZXJBUEkgPT09ICczLjEzJyxcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPiB7XG4gIHRhZzogVXBkYXRhYmxlVGFnO1xuICBlbGVtZW50OiBTaW1wbGVFbGVtZW50O1xuICBtb2RpZmllcjogTW9kaWZpZXJJbnN0YW5jZTtcbiAgZGVsZWdhdGU6IE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPjtcbiAgYXJnczogQXJndW1lbnRzO1xuICBkZWJ1Z05hbWU/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGYWN0b3J5IHtcbiAgY3JlYXRlKHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBvYmplY3Q7XG59XG5cbi8qKlxuICBUaGUgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIGFsbG93cyBhZGRvbnMgdG8gcHJvdmlkZSBjdXN0b20gbW9kaWZpZXJcbiAgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZWdyYXRlIHNlYW1sZXNzbHkgaW50byBFbWJlci4gVGhpcyBpcyBhY2NvbXBsaXNoZWRcbiAgdGhyb3VnaCBhIGRlbGVnYXRlLCByZWdpc3RlcmVkIHdpdGggdGhlIGN1c3RvbSBtb2RpZmllciBtYW5hZ2VyLCB3aGljaFxuICBpbXBsZW1lbnRzIGEgc2V0IG9mIGhvb2tzIHRoYXQgZGV0ZXJtaW5lIG1vZGlmaWVyIGJlaGF2aW9yLlxuICBUbyBjcmVhdGUgYSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgaW5zdGFudGlhdGUgYSBuZXcgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyXG4gIGNsYXNzIGFuZCBwYXNzIHRoZSBkZWxlZ2F0ZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQ6XG5cbiAgYGBganNcbiAgbGV0IG1hbmFnZXIgPSBuZXcgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyKHtcbiAgICAvLyAuLi5kZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4uLlxuICB9KTtcbiAgYGBgXG5cbiAgIyMgRGVsZWdhdGUgSG9va3NcblxuICBUaHJvdWdob3V0IHRoZSBsaWZlY3ljbGUgb2YgYSBtb2RpZmllciwgdGhlIG1vZGlmaWVyIG1hbmFnZXIgd2lsbCBpbnZva2VcbiAgZGVsZWdhdGUgaG9va3MgdGhhdCBhcmUgcmVzcG9uc2libGUgZm9yIHN1cmZhY2luZyB0aG9zZSBsaWZlY3ljbGUgY2hhbmdlcyB0b1xuICB0aGUgZW5kIGRldmVsb3Blci5cbiAgKiBgY3JlYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gYSBuZXcgaW5zdGFuY2Ugb2YgYSBtb2RpZmllciBzaG91bGQgYmUgY3JlYXRlZFxuICAqIGBpbnN0YWxsTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIG1vZGlmaWVyIGlzIGluc3RhbGxlZCBvbiB0aGUgZWxlbWVudFxuICAqIGB1cGRhdGVNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBhIG1vZGlmaWVyIGNoYW5nZVxuICAqIGBkZXN0cm95TW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIG1vZGlmaWVyIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZFxuKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RpZmllck1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBNb2RpZmllckluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4+IHtcbiAgcHJpdmF0ZSBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzID0gbmV3IFdlYWtNYXA8TywgTW9kaWZpZXJNYW5hZ2VyPE1vZGlmaWVySW5zdGFuY2U+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TywgTW9kaWZpZXJNYW5hZ2VyPE1vZGlmaWVySW5zdGFuY2U+Pikge31cblxuICBwcml2YXRlIGdldERlbGVnYXRlRm9yKG93bmVyOiBPKSB7XG4gICAgbGV0IHsgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyB9ID0gdGhpcztcbiAgICBsZXQgZGVsZWdhdGUgPSBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBtb2RpZmllciBtYW5hZ2VycyBtdXN0IGhhdmUgYSBcXGBjYXBhYmlsaXRpZXNcXGAgcHJvcGVydHkgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFxcYGNhcGFiaWxpdGllcygnMy4xMycgfCAnMy4yMicpXFxgIChpbXBvcnRlZCB2aWEgXFxgaW1wb3J0IHsgY2FwYWJpbGl0aWVzIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMuc2V0KG93bmVyLCBkZWxlZ2F0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlO1xuICB9XG5cbiAgY3JlYXRlKG93bmVyOiBPLCBlbGVtZW50OiBTaW1wbGVFbGVtZW50LCBkZWZpbml0aW9uOiBvYmplY3QsIHZtQXJnczogVk1Bcmd1bWVudHMpIHtcbiAgICBsZXQgZGVsZWdhdGUgPSB0aGlzLmdldERlbGVnYXRlRm9yKG93bmVyKTtcbiAgICBsZXQgY2FwdHVyZWRBcmdzID0gdm1BcmdzLmNhcHR1cmUoKTtcblxuICAgIGxldCB7IHVzZUFyZ3NQcm94eSwgcGFzc0ZhY3RvcnlUb0NyZWF0ZSB9ID0gZGVsZWdhdGUuY2FwYWJpbGl0aWVzO1xuXG4gICAgbGV0IGFyZ3MgPSB1c2VBcmdzUHJveHkgPyBhcmdzUHJveHlGb3IoY2FwdHVyZWRBcmdzLCAnbW9kaWZpZXInKSA6IHJlaWZ5QXJncyhjYXB0dXJlZEFyZ3MpO1xuXG4gICAgbGV0IGluc3RhbmNlOiBNb2RpZmllckluc3RhbmNlO1xuXG4gICAgbGV0IGZhY3RvcnlPckRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuXG4gICAgaWYgKHBhc3NGYWN0b3J5VG9DcmVhdGUpIHtcbiAgICAgIC8vIE1ha2UgYSBmYWtlIGZhY3RvcnkuIFdoaWxlIG5vdCBwZXJmZWN0LCB0aGlzIHNob3VsZCBnZW5lcmFsbHkgcHJldmVudFxuICAgICAgLy8gYnJlYWthZ2UgaW4gdXNlcnMgb2Ygb2xkZXIgbW9kaWZpZXIgY2FwYWJpbGl0aWVzLlxuICAgICAgZmFjdG9yeU9yRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgY3JlYXRlKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgICAgICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBhcmdzLFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgIGdldCBhcmdzKCkge1xuICAgICAgICAgIHJldHVybiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBzdGF0ZS5kZWJ1Z05hbWUgPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmluaXRpb24ubmFtZSA6IGRlZmluaXRpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3RydWN0b3Ioc3RhdGUsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lNb2RpZmllcihpbnN0YW5jZSwgc3RhdGUuYXJncykpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKHsgZGVidWdOYW1lIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gZGVidWdOYW1lITtcbiAgfVxuXG4gIGdldFRhZyh7IHRhZyB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIGluc3RhbGwoeyBlbGVtZW50LCBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBlbGVtZW50LCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHsgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLnVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLnVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICBnZXREZXN0cm95YWJsZShzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVpZnlBcmdzKHtcbiAgbmFtZWQsXG4gIHBvc2l0aW9uYWwsXG59OiBDYXB0dXJlZEFyZ3VtZW50cyk6IHsgbmFtZWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+OyBwb3NpdGlvbmFsOiB1bmtub3duW10gfSB7XG4gIGxldCByZWlmaWVkTmFtZWQgPSBkaWN0KCk7XG5cbiAgZm9yIChsZXQga2V5IGluIG5hbWVkKSB7XG4gICAgcmVpZmllZE5hbWVkW2tleV0gPSB2YWx1ZUZvclJlZihuYW1lZFtrZXldKTtcbiAgfVxuXG4gIGxldCByZWlmaWVkUG9zaXRpb25hbCA9IHBvc2l0aW9uYWwubWFwKHZhbHVlRm9yUmVmKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWVkOiByZWlmaWVkTmFtZWQsXG4gICAgcG9zaXRpb25hbDogcmVpZmllZFBvc2l0aW9uYWwsXG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -5,6 +5,6 @@ export { setInternalHelperManager, setInternalModifierManager, setInternalComponentManager, getInternalHelperManager, getInternalModifierManager, getInternalComponentManager, hasInternalHelperManager, hasInternalModifierManager, hasInternalComponentManager } from './lib/internal/index';

export { modifierCapabilities, CustomModifierManager } from './lib/public/modifier';
export { helperCapabilities, hasDestroyable, hasValue, customHelper } from './lib/public/helper';
export { helperCapabilities, hasDestroyable, hasValue, CustomHelperManager } from './lib/public/helper';
export { getComponentTemplate, setComponentTemplate } from './lib/public/template';
export { capabilityFlagsFrom, hasCapability, managerHasCapability } from './lib/util/capabilities';
export { getCustomTagFor, setCustomTagFor } from './lib/util/args-proxy';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRSx3QkFERixFQUVFLDBCQUZGLEVBR0UsMkJBSEYsRUFJRSx3QkFKRixFQUtFLDBCQUxGLEVBTUUsMkJBTkYsRUFPRSx3QkFQRixFQVFFLDBCQVJGLEVBU0UsMkJBVEYsUUFVTyxzQkFWUDtBQVdBLFNBQVMsZ0JBQVQsRUFBMkIsa0JBQTNCLEVBQStDLG1CQUEvQyxRQUEwRSxvQkFBMUU7QUFDQSxTQUFTLHFCQUFULEVBQWdDLHNCQUFoQyxRQUE4RCx3QkFBOUQ7QUFDQSxTQUFTLG9CQUFULEVBQStCLHFCQUEvQixRQUE0RCx1QkFBNUQ7QUFDQSxTQUFTLGtCQUFULEVBQTZCLGNBQTdCLEVBQTZDLFFBQTdDLEVBQXVELFlBQXZELFFBQTJFLHFCQUEzRTtBQUNBLFNBQVMsb0JBQVQsRUFBK0Isb0JBQS9CLFFBQTJELHVCQUEzRDtBQUNBLFNBQVMsbUJBQVQsRUFBOEIsYUFBOUIsRUFBNkMsb0JBQTdDLFFBQXlFLHlCQUF6RTtBQUNBLFNBQVMsZUFBVCxFQUEwQixlQUExQixRQUFpRCx1QkFBakQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBzZXRJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIGdldEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxufSBmcm9tICcuL2xpYi9pbnRlcm5hbC9pbmRleCc7XG5leHBvcnQgeyBzZXRIZWxwZXJNYW5hZ2VyLCBzZXRNb2RpZmllck1hbmFnZXIsIHNldENvbXBvbmVudE1hbmFnZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvaW5kZXgnO1xuZXhwb3J0IHsgY29tcG9uZW50Q2FwYWJpbGl0aWVzLCBDdXN0b21Db21wb25lbnRNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL2NvbXBvbmVudCc7XG5leHBvcnQgeyBtb2RpZmllckNhcGFiaWxpdGllcywgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcHVibGljL21vZGlmaWVyJztcbmV4cG9ydCB7IGhlbHBlckNhcGFiaWxpdGllcywgaGFzRGVzdHJveWFibGUsIGhhc1ZhbHVlLCBjdXN0b21IZWxwZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvaGVscGVyJztcbmV4cG9ydCB7IGdldENvbXBvbmVudFRlbXBsYXRlLCBzZXRDb21wb25lbnRUZW1wbGF0ZSB9IGZyb20gJy4vbGliL3B1YmxpYy90ZW1wbGF0ZSc7XG5leHBvcnQgeyBjYXBhYmlsaXR5RmxhZ3NGcm9tLCBoYXNDYXBhYmlsaXR5LCBtYW5hZ2VySGFzQ2FwYWJpbGl0eSB9IGZyb20gJy4vbGliL3V0aWwvY2FwYWJpbGl0aWVzJztcbmV4cG9ydCB7IGdldEN1c3RvbVRhZ0Zvciwgc2V0Q3VzdG9tVGFnRm9yIH0gZnJvbSAnLi9saWIvdXRpbC9hcmdzLXByb3h5JztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRSx3QkFERixFQUVFLDBCQUZGLEVBR0UsMkJBSEYsRUFJRSx3QkFKRixFQUtFLDBCQUxGLEVBTUUsMkJBTkYsRUFPRSx3QkFQRixFQVFFLDBCQVJGLEVBU0UsMkJBVEYsUUFVTyxzQkFWUDtBQVdBLFNBQVMsZ0JBQVQsRUFBMkIsa0JBQTNCLEVBQStDLG1CQUEvQyxRQUEwRSxvQkFBMUU7QUFDQSxTQUFTLHFCQUFULEVBQWdDLHNCQUFoQyxRQUE4RCx3QkFBOUQ7QUFDQSxTQUFTLG9CQUFULEVBQStCLHFCQUEvQixRQUE0RCx1QkFBNUQ7QUFDQSxTQUNFLGtCQURGLEVBRUUsY0FGRixFQUdFLFFBSEYsRUFJRSxtQkFKRixRQUtPLHFCQUxQO0FBTUEsU0FBUyxvQkFBVCxFQUErQixvQkFBL0IsUUFBMkQsdUJBQTNEO0FBQ0EsU0FBUyxtQkFBVCxFQUE4QixhQUE5QixFQUE2QyxvQkFBN0MsUUFBeUUseUJBQXpFO0FBQ0EsU0FBUyxlQUFULEVBQTBCLGVBQTFCLFFBQWlELHVCQUFqRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIHNldEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgc2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBnZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgZ2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIGhhc0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBoYXNJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG59IGZyb20gJy4vbGliL2ludGVybmFsL2luZGV4JztcbmV4cG9ydCB7IHNldEhlbHBlck1hbmFnZXIsIHNldE1vZGlmaWVyTWFuYWdlciwgc2V0Q29tcG9uZW50TWFuYWdlciB9IGZyb20gJy4vbGliL3B1YmxpYy9pbmRleCc7XG5leHBvcnQgeyBjb21wb25lbnRDYXBhYmlsaXRpZXMsIEN1c3RvbUNvbXBvbmVudE1hbmFnZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvY29tcG9uZW50JztcbmV4cG9ydCB7IG1vZGlmaWVyQ2FwYWJpbGl0aWVzLCBDdXN0b21Nb2RpZmllck1hbmFnZXIgfSBmcm9tICcuL2xpYi9wdWJsaWMvbW9kaWZpZXInO1xuZXhwb3J0IHtcbiAgaGVscGVyQ2FwYWJpbGl0aWVzLFxuICBoYXNEZXN0cm95YWJsZSxcbiAgaGFzVmFsdWUsXG4gIEN1c3RvbUhlbHBlck1hbmFnZXIsXG59IGZyb20gJy4vbGliL3B1YmxpYy9oZWxwZXInO1xuZXhwb3J0IHsgZ2V0Q29tcG9uZW50VGVtcGxhdGUsIHNldENvbXBvbmVudFRlbXBsYXRlIH0gZnJvbSAnLi9saWIvcHVibGljL3RlbXBsYXRlJztcbmV4cG9ydCB7IGNhcGFiaWxpdHlGbGFnc0Zyb20sIGhhc0NhcGFiaWxpdHksIG1hbmFnZXJIYXNDYXBhYmlsaXR5IH0gZnJvbSAnLi9saWIvdXRpbC9jYXBhYmlsaXRpZXMnO1xuZXhwb3J0IHsgZ2V0Q3VzdG9tVGFnRm9yLCBzZXRDdXN0b21UYWdGb3IgfSBmcm9tICcuL2xpYi91dGlsL2FyZ3MtcHJveHknO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -5,9 +5,7 @@ import { DEBUG } from '@glimmer/env';

const MODIFIER_MANAGERS = new WeakMap();
const HELPER_MANAGERS = new WeakMap();
const OWNER_MANAGER_INSTANCES = new WeakMap();
const UNDEFINED_MANAGER_INSTANCES = new WeakMap(); ///////////
const HELPER_MANAGERS = new WeakMap(); ///////////
const getPrototypeOf = Object.getPrototypeOf;
function setManager(map, factory, obj) {
function setManager(map, manager, obj) {
if (DEBUG && (typeof obj !== 'object' || obj === null) && typeof obj !== 'function') {

@@ -21,3 +19,3 @@ throw new Error(`Attempted to set a manager on a non-object value. Managers can only be associated with objects or functions. Value was ${debugToString(obj)}`);

map.set(obj, factory);
map.set(obj, manager);
return obj;

@@ -40,34 +38,9 @@ }

return undefined;
}
function getManagerInstanceForOwner(owner, factory) {
let managers;
if (owner === undefined) {
managers = UNDEFINED_MANAGER_INSTANCES;
} else {
managers = OWNER_MANAGER_INSTANCES.get(owner);
if (managers === undefined) {
managers = new WeakMap();
OWNER_MANAGER_INSTANCES.set(owner, managers);
}
}
let instance = managers.get(factory);
if (instance === undefined) {
instance = factory(owner);
managers.set(factory, instance);
} // We know for sure that it's the correct type at this point, but TS can't know
return instance;
} ///////////
export function setInternalModifierManager(factory, definition) {
return setManager(MODIFIER_MANAGERS, factory, definition);
export function setInternalModifierManager(manager, definition) {
return setManager(MODIFIER_MANAGERS, manager, definition);
}
export function getInternalModifierManager(owner, definition) {
export function getInternalModifierManager(definition) {
if (DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -77,14 +50,14 @@ throw new Error(`Attempted to use a value as a modifier, but it was not an object or function. Modifier definitions must be objects or functions with an associated modifier manager. The value was: ${definition}`);

const factory = getManager(MODIFIER_MANAGERS, definition);
const manager = getManager(MODIFIER_MANAGERS, definition);
if (DEBUG && factory === undefined) {
if (DEBUG && manager === undefined) {
throw new Error(`Attempted to load a modifier, but there wasn't a modifier manager associated with the definition. The definition was: ${debugToString(definition)}`);
}
return getManagerInstanceForOwner(owner, factory);
return manager;
}
export function setInternalHelperManager(factory, definition) {
return setManager(HELPER_MANAGERS, factory, definition);
export function setInternalHelperManager(manager, definition) {
return setManager(HELPER_MANAGERS, manager, definition);
}
export function getInternalHelperManager(owner, definition, isOptional) {
export function getInternalHelperManager(definition, isOptional) {
if (DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -94,5 +67,5 @@ throw new Error(`Attempted to use a value as a helper, but it was not an object or function. Helper definitions must be objects or functions with an associated helper manager. The value was: ${definition}`);

const factory = getManager(HELPER_MANAGERS, definition);
const manager = getManager(HELPER_MANAGERS, definition);
if (factory === undefined) {
if (manager === undefined) {
if (isOptional === true) {

@@ -105,3 +78,3 @@ return null;

return getManagerInstanceForOwner(owner, factory);
return manager;
}

@@ -111,3 +84,3 @@ export function setInternalComponentManager(factory, obj) {

}
export function getInternalComponentManager(owner, definition, isOptional) {
export function getInternalComponentManager(definition, isOptional) {
if (DEBUG && typeof definition !== 'function' && (typeof definition !== 'object' || definition === null)) {

@@ -117,5 +90,5 @@ throw new Error(`Attempted to use a value as a component, but it was not an object or function. Component definitions must be objects or functions with an associated component manager. The value was: ${definition}`);

const factory = getManager(COMPONENT_MANAGERS, definition);
const manager = getManager(COMPONENT_MANAGERS, definition);
if (factory === undefined) {
if (manager === undefined) {
if (isOptional === true) {

@@ -128,3 +101,3 @@ return null;

return getManagerInstanceForOwner(owner, factory);
return manager;
} ///////////

@@ -141,2 +114,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsYUFBVCxRQUF3QyxlQUF4QztBQWNBLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFKLEVBQTNCO0FBS0EsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE9BQUosRUFBMUI7QUFLQSxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQUosRUFBeEI7QUFLQSxNQUFNLHVCQUF1QixHQUd6QixJQUFJLE9BQUosRUFISjtBQUlBLE1BQU0sMkJBQTJCLEdBQW9ELElBQUksT0FBSixFQUFyRixDLENBTUE7O0FBRUEsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQTlCOztBQUVBLFNBQVMsVUFBVCxDQUNFLEdBREYsRUFFRSxPQUZGLEVBR0UsR0FIRixFQUdVO0FBRVIsTUFBSSxLQUFLLEtBQUssT0FBTyxHQUFQLEtBQWUsUUFBZixJQUEyQixHQUFHLEtBQUssSUFBeEMsQ0FBTCxJQUFzRCxPQUFPLEdBQVAsS0FBZSxVQUF6RSxFQUFxRjtBQUNuRixVQUFNLElBQUksS0FBSixDQUNKLDBIQUEwSCxhQUFjLENBQ3RJLEdBRHNJLENBRXZJLEVBSEcsQ0FBTjtBQUtEOztBQUVELE1BQUksS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFKLENBQVEsR0FBUixDQUFiLEVBQTJCO0FBQ3pCLFVBQU0sSUFBSSxLQUFKLENBQ0osc0pBQXNKLGFBQWMsQ0FDbEssR0FEa0ssQ0FFbkssRUFIRyxDQUFOO0FBS0Q7O0FBRUQsRUFBQSxHQUFHLENBQUMsR0FBSixDQUFRLEdBQVIsRUFBYSxPQUFiO0FBQ0EsU0FBTyxHQUFQO0FBQ0Q7O0FBRUQsU0FBUyxVQUFULENBQ0UsR0FERixFQUVFLEdBRkYsRUFFYTtBQUVYLE1BQUksT0FBTyxHQUFHLEdBQWQ7O0FBQ0EsU0FBTyxPQUFPLEtB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RDtBQUNEO0FBRUQsT0FBTSxTQUFVLDBCQUFWLENBQXFDLFVBQXJDLEVBQXVEO0FBQzNELFNBQU8sVUFBVSxDQUFDLGlCQUFELEVBQW9CLFVBQXBCLENBQVYsS0FBOEMsU0FBckQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE93bmVyIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nLCBfV2Vha1NldCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgSGVscGVyTWFuYWdlcixcbiAgSGVscGVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxudHlwZSBJbnRlcm5hbE1hbmFnZXIgPVxuICB8IEludGVybmFsQ29tcG9uZW50TWFuYWdlclxuICB8IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyXG4gIHwgSGVscGVyTWFuYWdlcjx1bmtub3duPlxuICB8IEhlbHBlcjtcblxuY29uc3QgQ09NUE9ORU5UX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8XG4gIG9iamVjdCxcbiAgSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPd25lciwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPlxuPigpO1xuXG5jb25zdCBNT0RJRklFUl9NQU5BR0VSUyA9IG5ldyBXZWFrTWFwPFxuICBvYmplY3QsXG4gIEludGVybmFsTWFuYWdlckZhY3Rvcnk8T3duZXIsIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPlxuPigpO1xuXG5jb25zdCBIRUxQRVJfTUFOQUdFUlMgPSBuZXcgV2Vha01hcDxcbiAgb2JqZWN0LFxuICBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE93bmVyIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgSGVscGVyPlxuPigpO1xuXG5jb25zdCBPV05FUl9NQU5BR0VSX0lOU1RBTkNFUzogV2Vha01hcDxcbiAgT3duZXIsXG4gIFdlYWtNYXA8SW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPd25lcj4sIHVua25vd24+XG4+ID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IFVOREVGSU5FRF9NQU5BR0VSX0lOU1RBTkNFUzogV2Vha01hcDxJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE93bmVyPiwgdW5rbm93bj4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8sIEQgZXh0ZW5kcyBJbnRlcm5hbE1hbmFnZXIgPSBJbnRlcm5hbE1hbmFnZXI+ID0gKFxuICBvd25lcjogT1xuKSA9PiBEO1xuXG4vLy8vLy8vLy8vL1xuXG5jb25zdCBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuZnVuY3Rpb24gc2V0TWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIERlZiBleHRlbmRzIG9iamVjdD4oXG4gIG1hcDogV2Vha01hcDxvYmplY3QsIEludGVybmFsTWFuYWdlckZhY3Rvcnk8Tz4+LFxuICBmYWN0b3J5OiBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8+IHwgSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkPixcbiAgb2JqOiBEZWZcbik6IERlZiB7XG4gIGlmIChERUJVRyAmJiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSAmJiB0eXBlb2Ygb2JqICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBzZXQgYSBtYW5hZ2VyIG9uIGEgbm9uLW9iamVjdCB2YWx1ZS4gTWFuYWdlcnMgY2FuIG9ubHkgYmUgYXNzb2NpYXRlZCB3aXRoIG9iamVjdHMgb3IgZnVuY3Rpb25zLiBWYWx1ZSB3YXMgJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgb2JqXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG1hcC5oYXMob2JqKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gc2V0IHRoZSBzYW1lIHR5cGUgb2YgbWFuYWdlciBtdWx0aXBsZSB0aW1lcyBvbiBhIHZhbHVlLiBZb3UgY2FuIG9ubHkgYXNzb2NpYXRlIG9uZSBtYW5hZ2VyIG9mIGVhY2ggdHlwZSB3aXRoIGEgZ2l2ZW4gdmFsdWUuIFZhbHVlIHdhcyAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBvYmpcbiAgICAgICl9YFxuICAgICk7XG4gIH1cblxuICBtYXAuc2V0KG9iaiwgZmFjdG9yeSk7XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmFnZXI8TywgRCBleHRlbmRzIEludGVybmFsTWFuYWdlcj4oXG4gIG1hcDogV2Vha01hcDxvYmplY3QsIEludGVybmFsTWFuYWdlckZhY3Rvcnk8TywgRD4+LFxuICBvYmo6IG9iamVjdFxuKTogSW50ZXJuYWxNYW5hZ2VyRmFjdG9yeTxPLCBEPiB8IHVuZGVmaW5lZCB7XG4gIGxldCBwb2ludGVyID0gb2JqO1xuICB3aGlsZSAocG9pbnRlciAhPT0gdW5kZWZpbmVkICYmIHBvaW50ZXIgIT09IG51bGwpIHtcbiAgICBjb25zdCBtYW5hZ2VyID0gbWFwLmdldChwb2ludGVyKTtcblxuICAgIGlmIChtYW5hZ2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBtYW5hZ2VyO1xuICAgIH1cblxuICAgIHBvaW50ZXIgPSBnZXRQcm90b3R5cGVPZihwb2ludGVyKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmFnZXJJbnN0YW5jZUZvck93bmVyPEQgZXh0ZW5kcyBJbnRlcm5hbE1hbmFnZXI+KFxuICBvd25lcjogT3duZXIgfCB1bmRlZmluZWQsXG4gIGZhY3Rvcnk6IEludGVybmFsTWFuYWdlckZhY3Rvcnk8T3duZXIsIEQ+XG4pOiBEIHtcbiAgbGV0IG1hbmFnZXJzO1xuXG4gIGlmIChvd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbWFuYWdlcnMgPSBVTkRFRklORURfTUFOQUdFUl9JTlNUQU5DRVM7XG4gIH0gZWxzZSB7XG4gICAgbWFuYWdlcnMgPSBPV05FUl9NQU5BR0VSX0lOU1RBTkNFUy5nZXQob3duZXIpO1xuXG4gICAgaWYgKG1hbmFnZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG1hbmFnZXJzID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgIE9XTkVSX01BTkFHRVJfSU5TVEFOQ0VTLnNldChvd25lciwgbWFuYWdlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpbnN0YW5jZSA9IG1hbmFnZXJzLmdldChmYWN0b3J5KTtcblxuICBpZiAoaW5zdGFuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgIGluc3RhbmNlID0gZmFjdG9yeShvd25lciEpO1xuICAgIG1hbmFnZXJzLnNldChmYWN0b3J5LCBpbnN0YW5jZSEpO1xuICB9XG5cbiAgLy8gV2Uga25vdyBmb3Igc3VyZSB0aGF0IGl0J3MgdGhlIGNvcnJlY3QgdHlwZSBhdCB0aGlzIHBvaW50LCBidXQgVFMgY2FuJ3Qga25vd1xuICByZXR1cm4gaW5zdGFuY2UgYXMgRDtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IEludGVybmFsTWFuYWdlckZhY3Rvcnk8TywgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI+LFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGZhY3RvcnksIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIoXG4gIG93bmVyOiBPd25lciB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbjogb2JqZWN0XG4pOiBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlciB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgbW9kaWZpZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gTW9kaWZpZXIgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgbW9kaWZpZXIgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZmFjdG9yeSA9IGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAoREVCVUcgJiYgZmFjdG9yeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgbW9kaWZpZXIsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBtb2RpZmllciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICBkZWZpbml0aW9uXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdldE1hbmFnZXJJbnN0YW5jZUZvck93bmVyKG93bmVyLCBmYWN0b3J5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsSGVscGVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8gfCB1bmRlZmluZWQsIEhlbHBlck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXI+LFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoSEVMUEVSX01BTkFHRVJTLCBmYWN0b3J5LCBkZWZpbml0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBkZWZpbml0aW9uOiBvYmplY3Rcbik6IEhlbHBlck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBvd25lcjogT3duZXIgfCB1bmRlZmluZWQsXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbDogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSGVscGVyTWFuYWdlcjx1bmtub3duPiB8IEhlbHBlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBvd25lcjogT3duZXIgfCB1bmRlZmluZWQsXG4gIGRlZmluaXRpb246IG9iamVjdCxcbiAgaXNPcHRpb25hbD86IHRydWUgfCB1bmRlZmluZWRcbik6IEhlbHBlck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBoZWxwZXIsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gSGVscGVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGhlbHBlciBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBmYWN0b3J5ID0gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAoZmFjdG9yeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgaGVscGVyLCBidXQgdGhlcmUgd2Fzbid0IGEgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdldE1hbmFnZXJJbnN0YW5jZUZvck93bmVyKG93bmVyLCBmYWN0b3J5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBJbnRlcm5hbE1hbmFnZXJGYWN0b3J5PE8sIEludGVybmFsQ29tcG9uZW50TWFuYWdlcj4sXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRNYW5hZ2VyKENPTVBPTkVOVF9NQU5BR0VSUywgZmFjdG9yeSwgb2JqKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBkZWZpbml0aW9uOiBvYmplY3Rcbik6IEludGVybmFsQ29tcG9uZW50TWFuYWdlcjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoXG4gIG93bmVyOiBPd25lciB8IHVuZGVmaW5lZCxcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgb3duZXI6IE93bmVyIHwgdW5kZWZpbmVkLFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw/OiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsIHtcbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgYSBjb21wb25lbnQsIGJ1dCBpdCB3YXMgbm90IGFuIG9iamVjdCBvciBmdW5jdGlvbi4gQ29tcG9uZW50IGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIGNvbXBvbmVudCBtYW5hZ2VyLiBUaGUgdmFsdWUgd2FzOiAke2RlZmluaXRpb259YFxuICAgICk7XG4gIH1cblxuICBjb25zdCBmYWN0b3J5ID0gZ2V0TWFuYWdlcjxPd25lciwgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyPihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pITtcblxuICBpZiAoZmFjdG9yeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzT3B0aW9uYWwgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoREVCVUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byBsb2FkIGEgY29tcG9uZW50LCBidXQgdGhlcmUgd2Fzbid0IGEgY29tcG9uZW50IG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZpbml0aW9uLiBUaGUgZGVmaW5pdGlvbiB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdldE1hbmFnZXJJbnN0YW5jZUZvck93bmVyKG93bmVyLCBmYWN0b3J5KTtcbn1cblxuLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihkZWZpbml0aW9uOiBvYmplY3QpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL2ludGVybmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsYUFBVCxRQUF3QyxlQUF4QztBQWVBLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxPQUFKLEVBQTNCO0FBRUEsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE9BQUosRUFBMUI7QUFFQSxNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQUosRUFBeEIsQyxDQUVBOztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUE5Qjs7QUFFQSxTQUFTLFVBQVQsQ0FDRSxHQURGLEVBRUUsT0FGRixFQUdFLEdBSEYsRUFHVTtBQUVSLE1BQUksS0FBSyxLQUFLLE9BQU8sR0FBUCxLQUFlLFFBQWYsSUFBMkIsR0FBRyxLQUFLLElBQXhDLENBQUwsSUFBc0QsT0FBTyxHQUFQLEtBQWUsVUFBekUsRUFBcUY7QUFDbkYsVUFBTSxJQUFJLEtBQUosQ0FDSiwwSEFBMEgsYUFBYyxDQUN0SSxHQURzSSxDQUV2SSxFQUhHLENBQU47QUFLRDs7QUFFRCxNQUFJLEtBQUssSUFBSSxHQUFHLENBQUMsR0FBSixDQUFRLEdBQVIsQ0FBYixFQUEyQjtBQUN6QixVQUFNLElBQUksS0FBSixDQUNKLHNKQUFzSixhQUFjLENBQ2xLLEdBRGtLLENBRW5LLEVBSEcsQ0FBTjtBQUtEOztBQUVELEVBQUEsR0FBRyxDQUFDLEdBQUosQ0FBUSxHQUFSLEVBQWEsT0FBYjtBQUNBLFNBQU8sR0FBUDtBQUNEOztBQUVELFNBQVMsVUFBVCxDQUNFLEdBREYsRUFFRSxHQUZGLEVBRWE7QUFFWCxNQUFJLE9BQU8sR0FBRyxHQUFkOztBQUNBLFNBQU8sT0FBTyxLQUFLLFNBQVosSUFBeUIsT0FBTyxLQUFLLElBQTVDLEVBQWtEO0FBQ2hELFVBQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFKLENBQVEs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MkJBQVYsQ0FBc0MsVUFBdEMsRUFBd0Q7QUFDNUQsU0FBTyxVQUFVLENBQUMsa0JBQUQsRUFBcUIsVUFBckIsQ0FBVixLQUErQyxTQUF0RDtBQUNEO0FBRUQsT0FBTSxTQUFVLHdCQUFWLENBQW1DLFVBQW5DLEVBQXFEO0FBQ3pELFNBQU8sVUFBVSxDQUFDLGVBQUQsRUFBa0IsVUFBbEIsQ0FBVixLQUE0QyxTQUFuRDtBQUNEO0FBRUQsT0FBTSxTQUFVLDBCQUFWLENBQXFDLFVBQXJDLEVBQXVEO0FBQzNELFNBQU8sVUFBVSxDQUFDLGlCQUFELEVBQW9CLFVBQXBCLENBQVYsS0FBOEMsU0FBckQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcsIF9XZWFrU2V0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBIZWxwZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEN1c3RvbUhlbHBlck1hbmFnZXIgfSBmcm9tICcuLi9wdWJsaWMvaGVscGVyJztcblxudHlwZSBJbnRlcm5hbE1hbmFnZXIgPVxuICB8IEludGVybmFsQ29tcG9uZW50TWFuYWdlclxuICB8IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyXG4gIHwgQ3VzdG9tSGVscGVyTWFuYWdlclxuICB8IEhlbHBlcjtcblxuY29uc3QgQ09NUE9ORU5UX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI+KCk7XG5cbmNvbnN0IE1PRElGSUVSX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcj4oKTtcblxuY29uc3QgSEVMUEVSX01BTkFHRVJTID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBDdXN0b21IZWxwZXJNYW5hZ2VyIHwgSGVscGVyPigpO1xuXG4vLy8vLy8vLy8vL1xuXG5jb25zdCBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxuZnVuY3Rpb24gc2V0TWFuYWdlcjxEZWYgZXh0ZW5kcyBvYmplY3Q+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBvYmplY3Q+LFxuICBtYW5hZ2VyOiBvYmplY3QsXG4gIG9iajogRGVmXG4pOiBEZWYge1xuICBpZiAoREVCVUcgJiYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gc2V0IGEgbWFuYWdlciBvbiBhIG5vbi1vYmplY3QgdmFsdWUuIE1hbmFnZXJzIGNhbiBvbmx5IGJlIGFzc29jaWF0ZWQgd2l0aCBvYmplY3RzIG9yIGZ1bmN0aW9ucy4gVmFsdWUgd2FzICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgIG9ialxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBtYXAuaGFzKG9iaikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHNldCB0aGUgc2FtZSB0eXBlIG9mIG1hbmFnZXIgbXVsdGlwbGUgdGltZXMgb24gYSB2YWx1ZS4gWW91IGNhbiBvbmx5IGFzc29jaWF0ZSBvbmUgbWFuYWdlciBvZiBlYWNoIHR5cGUgd2l0aCBhIGdpdmVuIHZhbHVlLiBWYWx1ZSB3YXMgJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgb2JqXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgbWFwLnNldChvYmosIG1hbmFnZXIpO1xuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBnZXRNYW5hZ2VyPE0gZXh0ZW5kcyBJbnRlcm5hbE1hbmFnZXI+KFxuICBtYXA6IFdlYWtNYXA8b2JqZWN0LCBNPixcbiAgb2JqOiBvYmplY3Rcbik6IE0gfCB1bmRlZmluZWQge1xuICBsZXQgcG9pbnRlciA9IG9iajtcbiAgd2hpbGUgKHBvaW50ZXIgIT09IHVuZGVmaW5lZCAmJiBwb2ludGVyICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWFuYWdlciA9IG1hcC5nZXQocG9pbnRlcik7XG5cbiAgICBpZiAobWFuYWdlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbWFuYWdlcjtcbiAgICB9XG5cbiAgICBwb2ludGVyID0gZ2V0UHJvdG90eXBlT2YocG9pbnRlcik7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXI8VCBleHRlbmRzIG9iamVjdD4oXG4gIG1hbmFnZXI6IEludGVybmFsTW9kaWZpZXJNYW5hZ2VyLFxuICBkZWZpbml0aW9uOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldE1hbmFnZXIoTU9ESUZJRVJfTUFOQUdFUlMsIG1hbmFnZXIsIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxNb2RpZmllck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogSW50ZXJuYWxNb2RpZmllck1hbmFnZXIge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIG1vZGlmaWVyLCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIE1vZGlmaWVyIGRlZmluaXRpb25zIG11c3QgYmUgb2JqZWN0cyBvciBmdW5jdGlvbnMgd2l0aCBhbiBhc3NvY2lhdGVkIG1vZGlmaWVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKE1PRElGSUVSX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKERFQlVHICYmIG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIG1vZGlmaWVyLCBidXQgdGhlcmUgd2Fzbid0IGEgbW9kaWZpZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgZGVmaW5pdGlvblxuICAgICAgKX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyPFQgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBPd25lcj4oXG4gIG1hbmFnZXI6IEN1c3RvbUhlbHBlck1hbmFnZXI8Tz4gfCBIZWxwZXIsXG4gIGRlZmluaXRpb246IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihIRUxQRVJfTUFOQUdFUlMsIG1hbmFnZXIsIGRlZmluaXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKFxuICBkZWZpbml0aW9uOiBvYmplY3QsXG4gIGlzT3B0aW9uYWw6IHRydWUgfCB1bmRlZmluZWRcbik6IEN1c3RvbUhlbHBlck1hbmFnZXIgfCBIZWxwZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsSGVscGVyTWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogQ3VzdG9tSGVscGVyTWFuYWdlciB8IEhlbHBlciB8IG51bGwge1xuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBhIGhlbHBlciwgYnV0IGl0IHdhcyBub3QgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uLiBIZWxwZXIgZGVmaW5pdGlvbnMgbXVzdCBiZSBvYmplY3RzIG9yIGZ1bmN0aW9ucyB3aXRoIGFuIGFzc29jaWF0ZWQgaGVscGVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVmaW5pdGlvbn1gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hbmFnZXIgPSBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikhO1xuXG4gIGlmIChtYW5hZ2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPcHRpb25hbCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChERUJVRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGxvYWQgYSBoZWxwZXIsIGJ1dCB0aGVyZSB3YXNuJ3QgYSBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmluaXRpb24uIFRoZSBkZWZpbml0aW9uIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFuYWdlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcjxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZmFjdG9yeTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGZhY3RvcnksIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsOiB0cnVlIHwgdW5kZWZpbmVkXG4pOiBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsQ29tcG9uZW50TWFuYWdlcihcbiAgZGVmaW5pdGlvbjogb2JqZWN0LFxuICBpc09wdGlvbmFsPzogdHJ1ZSB8IHVuZGVmaW5lZFxuKTogSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyIHwgbnVsbCB7XG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGEgY29tcG9uZW50LCBidXQgaXQgd2FzIG5vdCBhbiBvYmplY3Qgb3IgZnVuY3Rpb24uIENvbXBvbmVudCBkZWZpbml0aW9ucyBtdXN0IGJlIG9iamVjdHMgb3IgZnVuY3Rpb25zIHdpdGggYW4gYXNzb2NpYXRlZCBjb21wb25lbnQgbWFuYWdlci4gVGhlIHZhbHVlIHdhczogJHtkZWZpbml0aW9ufWBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWFuYWdlciA9IGdldE1hbmFnZXIoQ09NUE9ORU5UX01BTkFHRVJTLCBkZWZpbml0aW9uKSE7XG5cbiAgaWYgKG1hbmFnZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChpc09wdGlvbmFsID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKERFQlVHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gbG9hZCBhIGNvbXBvbmVudCwgYnV0IHRoZXJlIHdhc24ndCBhIGNvbXBvbmVudCBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmaW5pdGlvbi4gVGhlIGRlZmluaXRpb24gd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYW5hZ2VyO1xufVxuXG4vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihDT01QT05FTlRfTUFOQUdFUlMsIGRlZmluaXRpb24pICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIoZGVmaW5pdGlvbjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRNYW5hZ2VyKEhFTFBFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVybmFsTW9kaWZpZXJNYW5hZ2VyKGRlZmluaXRpb246IG9iamVjdCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0TWFuYWdlcihNT0RJRklFUl9NQU5BR0VSUywgZGVmaW5pdGlvbikgIT09IHVuZGVmaW5lZDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

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

import { deprecateMutationsInTrackingTransaction } from '@glimmer/validator';
import { buildCapabilities } from '../util/capabilities';
import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';
import { argsProxyFor } from '../util/args-proxy';

@@ -79,10 +79,32 @@ const CAPABILITIES = {

export class CustomComponentManager {
constructor(delegate) {
this.delegate = delegate;
constructor(factory) {
this.factory = factory;
this.componentManagerDelegates = new WeakMap();
}
create(env, definition, vmArgs) {
getDelegateFor(owner) {
let {
delegate
componentManagerDelegates
} = this;
let delegate = componentManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom component managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.4' | '3.13')\` (imported via \`import { capabilities } from '@ember/component';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
componentManagerDelegates.set(owner, delegate);
}
return delegate;
}
create(owner, definition, vmArgs) {
let delegate = this.getDelegateFor(owner);
let args = argsProxyFor(vmArgs.capture(), 'component');

@@ -99,3 +121,3 @@ let component;

return new CustomComponentState(component, args, env);
return new CustomComponentState(component, delegate, args);
}

@@ -110,3 +132,3 @@

delegate
} = this;
} = bucket;

@@ -123,8 +145,5 @@ if (hasUpdateHook(delegate)) {

didCreate({
component
component,
delegate
}) {
let {
delegate
} = this;
if (hasAsyncLifeCycleCallbacks(delegate)) {

@@ -136,8 +155,5 @@ delegate.didCreateComponent(component);

didUpdate({
component
component,
delegate
}) {
let {
delegate
} = this;
if (hasAsyncUpdateHook(delegate)) {

@@ -153,5 +169,6 @@ delegate.didUpdateComponent(component);

getSelf({
component
component,
delegate
}) {
return createConstRef(this.delegate.getContext(component), 'this');
return createConstRef(delegate.getContext(component), 'this');
}

@@ -162,3 +179,3 @@

delegate
} = this;
} = bucket;

@@ -186,9 +203,9 @@ if (hasDestructors(delegate)) {

export class CustomComponentState {
constructor(component, args, env) {
constructor(component, delegate, args) {
this.component = component;
this.delegate = delegate;
this.args = args;
this.env = env;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBa0JBLFNBQVMsY0FBVCxRQUEwQyxvQkFBMUM7QUFDQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsdUNBQVQsUUFBd0Qsb0JBQXhEO0FBQ0EsU0FBUyxpQkFBVCxRQUFrQyxzQkFBbEM7QUFDQSxTQUFTLFlBQVQsUUFBNkIsb0JBQTdCO0FBRUEsTUFBTSxZQUFZLEdBQUc7QUFDbkIsRUFBQSxhQUFhLEVBQUUsS0FESTtBQUVuQixFQUFBLFVBQVUsRUFBRSxLQUZPO0FBR25CLEVBQUEsV0FBVyxFQUFFLEtBSE07QUFJbkIsRUFBQSxVQUFVLEVBQUUsSUFKTztBQUtuQixFQUFBLGFBQWEsRUFBRSxLQUxJO0FBTW5CLEVBQUEsV0FBVyxFQUFFLEtBTk07QUFPbkIsRUFBQSxZQUFZLEVBQUUsS0FQSztBQVFuQixFQUFBLFlBQVksRUFBRSxJQVJLO0FBU25CLEVBQUEsVUFBVSxFQUFFLElBVE87QUFVbkIsRUFBQSxjQUFjLEVBQUUsSUFWRztBQVduQixFQUFBLE9BQU8sRUFBRSxLQVhVO0FBWW5CLEVBQUEsV0FBVyxFQUFFLEtBWk07QUFhbkIsRUFBQSxXQUFXLEVBQUU7QUFiTSxDQUFyQjtBQWdCQSxPQUFNLFNBQVUscUJBQVYsQ0FDSixVQURJLEVBRUosT0FBQSxHQUFrRCxFQUY5QyxFQUVnRDtBQUVwRCxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQUssS0FBeEIsSUFBaUMsVUFBVSxLQUFLLE1BQXBELEVBQTREO0FBQzFELFVBQU0sSUFBSSxLQUFKLENBQVUsbURBQVYsQ0FBTjtBQUNEOztBQUVELE1BQUksVUFBVSxHQUFHLElBQWpCOztBQUVBLE1BQUksVUFBVSxLQUFLLE1BQW5CLEVBQTJCO0FBQ3pCLElBQUEsVUFBVSxHQUFHLE9B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QUFULENBQTRCLFNBQTVCO0FBQ0Q7QUFDRjs7QUFFRCxFQUFBLGVBQWUsR0FBQSxDQUFXOztBQUUxQixFQUFBLGVBQWUsR0FBQSxDQUFXOztBQUUxQixFQUFBLE9BQU8sQ0FBQztBQUFFLElBQUE7QUFBRixHQUFELEVBQXVEO0FBQzVELFdBQU8sY0FBYyxDQUFDLEtBQUssUUFBTCxDQUFjLFVBQWQsQ0FBeUIsU0FBekIsQ0FBRCxFQUFzQyxNQUF0QyxDQUFyQjtBQUNEOztBQUVELEVBQUEsY0FBYyxDQUFDLE1BQUQsRUFBZ0Q7QUFDNUQsVUFBTTtBQUFFLE1BQUE7QUFBRixRQUFlLElBQXJCOztBQUVBLFFBQUksY0FBYyxDQUFDLFFBQUQsQ0FBbEIsRUFBOEI7QUFDNUIsWUFBTTtBQUFFLFFBQUE7QUFBRixVQUFnQixNQUF0QjtBQUVBLE1BQUEsa0JBQWtCLENBQUMsTUFBRCxFQUFTLE1BQU0sUUFBUSxDQUFDLGdCQUFULENBQTBCLFNBQTFCLENBQWYsQ0FBbEI7QUFDQSxhQUFPLE1BQVA7QUFDRDs7QUFFRCxXQUFPLElBQVA7QUFDRDs7QUFFRCxFQUFBLGVBQWUsR0FBQTtBQUNiLFdBQU8sWUFBUDtBQUNEOztBQTdFZ0M7QUFnRm5DOzs7O0FBR0EsT0FBTSxNQUFPLG9CQUFQLENBQTJCO0FBQy9CLEVBQUEsV0FBQSxDQUNTLFNBRFQsRUFFUyxJQUZULEVBR1MsR0FIVCxFQUd5QjtBQUZoQixTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQ0EsU0FBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLFNBQUEsR0FBQSxHQUFBLEdBQUE7QUFDTDs7QUFMMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgQ29tcG9uZW50TWFuYWdlcixcbiAgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY0xpZmVDeWNsZUNhbGxiYWNrcyxcbiAgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY1VwZGF0ZUhvb2ssXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoRGVzdHJ1Y3RvcnMsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoVXBkYXRlSG9vayxcbiAgRGVzdHJveWFibGUsXG4gIEVudmlyb25tZW50LFxuICBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLFxuICBPcHRpb24sXG4gIFZNQXJndW1lbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcblxuY29uc3QgQ0FQQUJJTElUSUVTID0ge1xuICBkeW5hbWljTGF5b3V0OiBmYWxzZSxcbiAgZHluYW1pY1RhZzogZmFsc2UsXG4gIHByZXBhcmVBcmdzOiBmYWxzZSxcbiAgY3JlYXRlQXJnczogdHJ1ZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiB0cnVlLFxuICB1cGRhdGVIb29rOiB0cnVlLFxuICBjcmVhdGVJbnN0YW5jZTogdHJ1ZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudENhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBDb21wb25lbnRDYXBhYmlsaXRpZXNWZXJzaW9uc1tWZXJzaW9uXSA9IHt9XG4pOiBDb21wb25lbnRDYXBhYmlsaXRpZXMge1xuICBpZiAoREVCVUcgJiYgbWFuYWdlckFQSSAhPT0gJzMuNCcgJiYgbWFuYWdlckFQSSAhPT0gJzMuMTMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbXBvbmVudCBtYW5hZ2VyIGNvbXBhdGliaWxpdHkgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBsZXQgdXBkYXRlSG9vayA9IHRydWU7XG5cbiAgaWYgKG1hbmFnZXJBUEkgPT09ICczLjEzJykge1xuICAgIHVwZGF0ZUhvb2sgPSBCb29sZWFuKChvcHRpb25zIGFzIENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zWyczLjEzJ10pLnVwZGF0ZUhvb2spO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBhc3luY0xpZmVDeWNsZUNhbGxiYWNrczogQm9vbGVhbihvcHRpb25zLmFzeW5jTGlmZWN5Y2xlQ2FsbGJhY2tzKSxcbiAgICBkZXN0cnVjdG9yOiBCb29sZWFuKG9wdGlvbnMuZGVzdHJ1Y3RvciksXG4gICAgdXBkYXRlSG9vayxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBc3luY0xpZmVDeWNsZUNhbGxiYWNrczxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY0xpZmVDeWNsZUNhbGxiYWNrczxDb21wb25lbnRJbnN0YW5jZT4ge1xuICByZXR1cm4gZGVsZWdhdGUuY2FwYWJpbGl0aWVzLmFzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhVcGRhdGVIb29rPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMudXBkYXRlSG9vaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FzeW5jVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4oXG4gIGRlbGVnYXRlOiBDb21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuKTogZGVsZWdhdGUgaXMgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY1VwZGF0ZUhvb2s8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgcmV0dXJuIGhhc0FzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzKGRlbGVnYXRlKSAmJiBoYXNVcGRhdGVIb29rKGRlbGVnYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Rlc3RydWN0b3JzPENvbXBvbmVudEluc3RhbmNlPihcbiAgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+XG4pOiBkZWxlZ2F0ZSBpcyBDb21wb25lbnRNYW5hZ2VyV2l0aERlc3RydWN0b3JzPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuZGVzdHJ1Y3Rvcjtcbn1cblxuLyoqXG4gIFRoZSBDdXN0b21Db21wb25lbnRNYW5hZ2VyIGFsbG93cyBhZGRvbnMgdG8gcHJvdmlkZSBjdXN0b20gY29tcG9uZW50XG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gY29tcG9uZW50IG1hbmFnZXIsIHdoaWNoXG4gIGltcGxlbWVudHMgYSBzZXQgb2YgaG9va3MgdGhhdCBkZXRlcm1pbmUgY29tcG9uZW50IGJlaGF2aW9yLlxuXG4gIFRvIGNyZWF0ZSBhIGN1c3RvbSBjb21wb25lbnQgbWFuYWdlciwgaW5zdGFudGlhdGUgYSBuZXcgQ3VzdG9tQ29tcG9uZW50TWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbUNvbXBvbmVudE1hbmFnZXIoe1xuICAgIC8vIC4uLmRlbGVnYXRlIGltcGxlbWVudGF0aW9uLi4uXG4gIH0pO1xuICBgYGBcblxuICAjIyBEZWxlZ2F0ZSBIb29rc1xuXG4gIFRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBhIGNvbXBvbmVudCwgdGhlIGNvbXBvbmVudCBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG5cbiAgKiBgY3JlYXRlKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgY29tcG9uZW50IHNob3VsZCBiZSBjcmVhdGVkXG4gICogYHVwZGF0ZSgpYCAtIGludm9rZWQgd2hlbiB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBhIGNvbXBvbmVudCBjaGFuZ2VcbiAgKiBgZ2V0Q29udGV4dCgpYCAtIHJldHVybnMgdGhlIG9iamVjdCB0aGF0IHNob3VsZCBiZVxuKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Db21wb25lbnRNYW5hZ2VyPENvbXBvbmVudEluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEludGVybmFsQ29tcG9uZW50TWFuYWdlcjxDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWxlZ2F0ZTogQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT4pIHt9XG5cbiAgY3JlYXRlKFxuICAgIGVudjogRW52aXJvbm1lbnQsXG4gICAgZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlLFxuICAgIHZtQXJnczogVk1Bcmd1bWVudHNcbiAgKTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgICBsZXQgeyBkZWxlZ2F0ZSB9ID0gdGhpcztcbiAgICBsZXQgYXJncyA9IGFyZ3NQcm94eUZvcih2bUFyZ3MuY2FwdHVyZSgpLCAnY29tcG9uZW50Jyk7XG5cbiAgICBsZXQgY29tcG9uZW50OiBDb21wb25lbnRJbnN0YW5jZTtcblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgY29tcG9uZW50ID0gZGVsZWdhdGUuY3JlYXRlQ29tcG9uZW50KGRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudCA9IGRlbGVnYXRlLmNyZWF0ZUNvbXBvbmVudChkZWZpbml0aW9uLCBhcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEN1c3RvbUNvbXBvbmVudFN0YXRlKGNvbXBvbmVudCEsIGFyZ3MsIGVudik7XG4gIH1cblxuICBnZXREZWJ1Z05hbWUoZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gIH1cblxuICB1cGRhdGUoYnVja2V0OiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4pOiB2b2lkIHtcbiAgICBsZXQgeyBkZWxlZ2F0ZSB9ID0gdGhpcztcbiAgICBpZiAoaGFzVXBkYXRlSG9vayhkZWxlZ2F0ZSkpIHtcbiAgICAgIGxldCB7IGNvbXBvbmVudCwgYXJncyB9ID0gYnVja2V0O1xuXG4gICAgICBkZWxlZ2F0ZS51cGRhdGVDb21wb25lbnQoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICBkaWRDcmVhdGUoeyBjb21wb25lbnQgfTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG5cbiAgICBpZiAoaGFzQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3MoZGVsZWdhdGUpKSB7XG4gICAgICBkZWxlZ2F0ZS5kaWRDcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBkaWRVcGRhdGUoeyBjb21wb25lbnQgfTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG5cbiAgICBpZiAoaGFzQXN5bmNVcGRhdGVIb29rKGRlbGVnYXRlKSkge1xuICAgICAgZGVsZWdhdGUuZGlkVXBkYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgZGlkUmVuZGVyTGF5b3V0KCk6IHZvaWQge31cblxuICBkaWRVcGRhdGVMYXlvdXQoKTogdm9pZCB7fVxuXG4gIGdldFNlbGYoeyBjb21wb25lbnQgfTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gY3JlYXRlQ29uc3RSZWYodGhpcy5kZWxlZ2F0ZS5nZXRDb250ZXh0KGNvbXBvbmVudCksICd0aGlzJyk7XG4gIH1cblxuICBnZXREZXN0cm95YWJsZShidWNrZXQ6IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IE9wdGlvbjxEZXN0cm95YWJsZT4ge1xuICAgIGNvbnN0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG5cbiAgICBpZiAoaGFzRGVzdHJ1Y3RvcnMoZGVsZWdhdGUpKSB7XG4gICAgICBjb25zdCB7IGNvbXBvbmVudCB9ID0gYnVja2V0O1xuXG4gICAgICByZWdpc3RlckRlc3RydWN0b3IoYnVja2V0LCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95Q29tcG9uZW50KGNvbXBvbmVudCkpO1xuICAgICAgcmV0dXJuIGJ1Y2tldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldENhcGFiaWxpdGllcygpOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyB7XG4gICAgcmV0dXJuIENBUEFCSUxJVElFUztcbiAgfVxufVxuXG4vKipcbiAqIFN0b3JlcyBpbnRlcm5hbCBzdGF0ZSBhYm91dCBhIGNvbXBvbmVudCBpbnN0YW5jZSBhZnRlciBpdCdzIGJlZW4gY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb21wb25lbnQ6IENvbXBvbmVudEluc3RhbmNlLFxuICAgIHB1YmxpYyBhcmdzOiBBcmd1bWVudHMsXG4gICAgcHVibGljIGVudjogRW52aXJvbm1lbnRcbiAgKSB7fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBa0JBLFNBQVMsY0FBVCxRQUEwQyxvQkFBMUM7QUFDQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsdUNBQVQsUUFBd0Qsb0JBQXhEO0FBQ0EsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE1BQU0sWUFBWSxHQUFHO0FBQ25CLEVBQUEsYUFBYSxFQUFFLEtBREk7QUFFbkIsRUFBQSxVQUFVLEVBQUUsS0FGTztBQUduQixFQUFBLFdBQVcsRUFBRSxLQUhNO0FBSW5CLEVBQUEsVUFBVSxFQUFFLElBSk87QUFLbkIsRUFBQSxhQUFhLEVBQUUsS0FMSTtBQU1uQixFQUFBLFdBQVcsRUFBRSxLQU5NO0FBT25CLEVBQUEsWUFBWSxFQUFFLEtBUEs7QUFRbkIsRUFBQSxZQUFZLEVBQUUsSUFSSztBQVNuQixFQUFBLFVBQVUsRUFBRSxJQVRPO0FBVW5CLEVBQUEsY0FBYyxFQUFFLElBVkc7QUFXbkIsRUFBQSxPQUFPLEVBQUUsS0FYVTtBQVluQixFQUFBLFdBQVcsRUFBRSxLQVpNO0FBYW5CLEVBQUEsV0FBVyxFQUFFO0FBYk0sQ0FBckI7QUFnQkEsT0FBTSxTQUFVLHFCQUFWLENBQ0osVUFESSxFQUVKLE9BQUEsR0FBa0QsRUFGOUMsRUFFZ0Q7QUFFcEQsTUFBSSxLQUFLLElBQUksVUFBVSxLQUFLLEtBQXhCLElBQWlDLFVBQVUsS0FBSyxNQUFwRCxFQUE0RDtBQUMxRCxVQUFNLElBQUksS0FBSixDQUFVLG1EQUFWLENBQU47QUFDRDs7QUFFRCxNQUFJLFVBQVUsR0FBRyxJQUFqQjs7QUFFQSxNQUFJLFVBQVUsS0FBSyxNQUFuQixFQUEyQjtBQUN6QixJQUFB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LE1BQUQsRUFBUyxNQUFNLFFBQVEsQ0FBQyxnQkFBVCxDQUEwQixTQUExQixDQUFmLENBQWxCO0FBQ0EsYUFBTyxNQUFQO0FBQ0Q7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsRUFBQSxlQUFlLEdBQUE7QUFDYixXQUFPLFlBQVA7QUFDRDs7QUFsR2dDO0FBcUduQzs7OztBQUdBLE9BQU0sTUFBTyxvQkFBUCxDQUEyQjtBQUMvQixFQUFBLFdBQUEsQ0FDUyxTQURULEVBRVMsUUFGVCxFQUdTLElBSFQsRUFHd0I7QUFGZixTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQ0EsU0FBQSxRQUFBLEdBQUEsUUFBQTtBQUNBLFNBQUEsSUFBQSxHQUFBLElBQUE7QUFDTDs7QUFMMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENvbXBvbmVudENhcGFiaWxpdGllcyxcbiAgQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgQ29tcG9uZW50TWFuYWdlcixcbiAgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY0xpZmVDeWNsZUNhbGxiYWNrcyxcbiAgQ29tcG9uZW50TWFuYWdlcldpdGhBc3luY1VwZGF0ZUhvb2ssXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoRGVzdHJ1Y3RvcnMsXG4gIENvbXBvbmVudE1hbmFnZXJXaXRoVXBkYXRlSG9vayxcbiAgRGVzdHJveWFibGUsXG4gIEludGVybmFsQ29tcG9uZW50Q2FwYWJpbGl0aWVzLFxuICBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXIsXG4gIE9wdGlvbixcbiAgT3duZXIsXG4gIFZNQXJndW1lbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnN0UmVmLCBSZWZlcmVuY2UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uIH0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4vaW5kZXgnO1xuXG5jb25zdCBDQVBBQklMSVRJRVMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiB0cnVlLFxuICBhdHRyaWJ1dGVIb29rOiBmYWxzZSxcbiAgZWxlbWVudEhvb2s6IGZhbHNlLFxuICBjcmVhdGVDYWxsZXI6IGZhbHNlLFxuICBkeW5hbWljU2NvcGU6IHRydWUsXG4gIHVwZGF0ZUhvb2s6IHRydWUsXG4gIGNyZWF0ZUluc3RhbmNlOiB0cnVlLFxuICB3cmFwcGVkOiBmYWxzZSxcbiAgd2lsbERlc3Ryb3k6IGZhbHNlLFxuICBoYXNTdWJPd25lcjogZmFsc2UsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50Q2FwYWJpbGl0aWVzPFZlcnNpb24gZXh0ZW5kcyBrZXlvZiBDb21wb25lbnRDYXBhYmlsaXRpZXNWZXJzaW9ucz4oXG4gIG1hbmFnZXJBUEk6IFZlcnNpb24sXG4gIG9wdGlvbnM6IENvbXBvbmVudENhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IENvbXBvbmVudENhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy40JyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4xMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tcG9uZW50IG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGxldCB1cGRhdGVIb29rID0gdHJ1ZTtcblxuICBpZiAobWFuYWdlckFQSSA9PT0gJzMuMTMnKSB7XG4gICAgdXBkYXRlSG9vayA9IEJvb2xlYW4oKG9wdGlvbnMgYXMgQ29tcG9uZW50Q2FwYWJpbGl0aWVzVmVyc2lvbnNbJzMuMTMnXSkudXBkYXRlSG9vayk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGFzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzOiBCb29sZWFuKG9wdGlvbnMuYXN5bmNMaWZlY3ljbGVDYWxsYmFja3MpLFxuICAgIGRlc3RydWN0b3I6IEJvb2xlYW4ob3B0aW9ucy5kZXN0cnVjdG9yKSxcbiAgICB1cGRhdGVIb29rLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzPENvbXBvbmVudEluc3RhbmNlPihcbiAgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+XG4pOiBkZWxlZ2F0ZSBpcyBDb21wb25lbnRNYW5hZ2VyV2l0aEFzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzPENvbXBvbmVudEluc3RhbmNlPiB7XG4gIHJldHVybiBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuYXN5bmNMaWZlQ3ljbGVDYWxsYmFja3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNVcGRhdGVIb29rPENvbXBvbmVudEluc3RhbmNlPihcbiAgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+XG4pOiBkZWxlZ2F0ZSBpcyBDb21wb25lbnRNYW5hZ2VyV2l0aFVwZGF0ZUhvb2s8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgcmV0dXJuIGRlbGVnYXRlLmNhcGFiaWxpdGllcy51cGRhdGVIb29rO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQXN5bmNVcGRhdGVIb29rPENvbXBvbmVudEluc3RhbmNlPihcbiAgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+XG4pOiBkZWxlZ2F0ZSBpcyBDb21wb25lbnRNYW5hZ2VyV2l0aEFzeW5jVXBkYXRlSG9vazxDb21wb25lbnRJbnN0YW5jZT4ge1xuICByZXR1cm4gaGFzQXN5bmNMaWZlQ3ljbGVDYWxsYmFja3MoZGVsZWdhdGUpICYmIGhhc1VwZGF0ZUhvb2soZGVsZWdhdGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJ1Y3RvcnM8Q29tcG9uZW50SW5zdGFuY2U+KFxuICBkZWxlZ2F0ZTogQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT5cbik6IGRlbGVnYXRlIGlzIENvbXBvbmVudE1hbmFnZXJXaXRoRGVzdHJ1Y3RvcnM8Q29tcG9uZW50SW5zdGFuY2U+IHtcbiAgcmV0dXJuIGRlbGVnYXRlLmNhcGFiaWxpdGllcy5kZXN0cnVjdG9yO1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbUNvbXBvbmVudE1hbmFnZXIgYWxsb3dzIGFkZG9ucyB0byBwcm92aWRlIGN1c3RvbSBjb21wb25lbnRcbiAgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZWdyYXRlIHNlYW1sZXNzbHkgaW50byBFbWJlci4gVGhpcyBpcyBhY2NvbXBsaXNoZWRcbiAgdGhyb3VnaCBhIGRlbGVnYXRlLCByZWdpc3RlcmVkIHdpdGggdGhlIGN1c3RvbSBjb21wb25lbnQgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBjb21wb25lbnQgYmVoYXZpb3IuXG5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIGNvbXBvbmVudCBtYW5hZ2VyLCBpbnN0YW50aWF0ZSBhIG5ldyBDdXN0b21Db21wb25lbnRNYW5hZ2VyXG4gIGNsYXNzIGFuZCBwYXNzIHRoZSBkZWxlZ2F0ZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQ6XG5cbiAgYGBganNcbiAgbGV0IG1hbmFnZXIgPSBuZXcgQ3VzdG9tQ29tcG9uZW50TWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgY29tcG9uZW50LCB0aGUgY29tcG9uZW50IG1hbmFnZXIgd2lsbCBpbnZva2VcbiAgZGVsZWdhdGUgaG9va3MgdGhhdCBhcmUgcmVzcG9uc2libGUgZm9yIHN1cmZhY2luZyB0aG9zZSBsaWZlY3ljbGUgY2hhbmdlcyB0b1xuICB0aGUgZW5kIGRldmVsb3Blci5cblxuICAqIGBjcmVhdGUoKWAgLSBpbnZva2VkIHdoZW4gYSBuZXcgaW5zdGFuY2Ugb2YgYSBjb21wb25lbnQgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgdXBkYXRlKClgIC0gaW52b2tlZCB3aGVuIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgY29tcG9uZW50IGNoYW5nZVxuICAqIGBnZXRDb250ZXh0KClgIC0gcmV0dXJucyB0aGUgb2JqZWN0IHRoYXQgc2hvdWxkIGJlXG4qL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbXBvbmVudE1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBDb21wb25lbnRJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbENvbXBvbmVudE1hbmFnZXI8Q3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TywgQ29tcG9uZW50TWFuYWdlcjxDb21wb25lbnRJbnN0YW5jZT4+KSB7fVxuXG4gIHByaXZhdGUgZ2V0RGVsZWdhdGVGb3Iob3duZXI6IE8pIHtcbiAgICBsZXQgeyBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzIH0gPSB0aGlzO1xuICAgIGxldCBkZWxlZ2F0ZSA9IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMuZ2V0KG93bmVyKTtcblxuICAgIGlmIChkZWxlZ2F0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyBmYWN0b3J5IH0gPSB0aGlzO1xuICAgICAgZGVsZWdhdGUgPSBmYWN0b3J5KG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKGRlbGVnYXRlLmNhcGFiaWxpdGllcykpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ3VzdG9tIGNvbXBvbmVudCBtYW5hZ2VycyBtdXN0IGhhdmUgYSBcXGBjYXBhYmlsaXRpZXNcXGAgcHJvcGVydHkgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFxcYGNhcGFiaWxpdGllcygnMy40JyB8ICczLjEzJylcXGAgKGltcG9ydGVkIHZpYSBcXGBpbXBvcnQgeyBjYXBhYmlsaXRpZXMgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50JztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMuc2V0KG93bmVyLCBkZWxlZ2F0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlO1xuICB9XG5cbiAgY3JlYXRlKFxuICAgIG93bmVyOiBPLFxuICAgIGRlZmluaXRpb246IENvbXBvbmVudERlZmluaXRpb25TdGF0ZSxcbiAgICB2bUFyZ3M6IFZNQXJndW1lbnRzXG4gICk6IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPiB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG4gICAgbGV0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2NvbXBvbmVudCcpO1xuXG4gICAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50SW5zdGFuY2U7XG5cbiAgICBpZiAoREVCVUcgJiYgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbigoKSA9PiB7XG4gICAgICAgIGNvbXBvbmVudCA9IGRlbGVnYXRlLmNyZWF0ZUNvbXBvbmVudChkZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21wb25lbnQgPSBkZWxlZ2F0ZS5jcmVhdGVDb21wb25lbnQoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDdXN0b21Db21wb25lbnRTdGF0ZShjb21wb25lbnQhLCBkZWxlZ2F0ZSwgYXJncyk7XG4gIH1cblxuICBnZXREZWJ1Z05hbWUoZGVmaW5pdGlvbjogQ29tcG9uZW50RGVmaW5pdGlvblN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gIH1cblxuICB1cGRhdGUoYnVja2V0OiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4pOiB2b2lkIHtcbiAgICBsZXQgeyBkZWxlZ2F0ZSB9ID0gYnVja2V0O1xuICAgIGlmIChoYXNVcGRhdGVIb29rKGRlbGVnYXRlKSkge1xuICAgICAgbGV0IHsgY29tcG9uZW50LCBhcmdzIH0gPSBidWNrZXQ7XG5cbiAgICAgIGRlbGVnYXRlLnVwZGF0ZUNvbXBvbmVudChjb21wb25lbnQsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGRpZENyZWF0ZSh7IGNvbXBvbmVudCwgZGVsZWdhdGUgfTogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogdm9pZCB7XG4gICAgaWYgKGhhc0FzeW5jTGlmZUN5Y2xlQ2FsbGJhY2tzKGRlbGVnYXRlKSkge1xuICAgICAgZGVsZWdhdGUuZGlkQ3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgZGlkVXBkYXRlKHsgY29tcG9uZW50LCBkZWxlZ2F0ZSB9OiBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4pOiB2b2lkIHtcbiAgICBpZiAoaGFzQXN5bmNVcGRhdGVIb29rKGRlbGVnYXRlKSkge1xuICAgICAgZGVsZWdhdGUuZGlkVXBkYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgZGlkUmVuZGVyTGF5b3V0KCk6IHZvaWQge31cblxuICBkaWRVcGRhdGVMYXlvdXQoKTogdm9pZCB7fVxuXG4gIGdldFNlbGYoeyBjb21wb25lbnQsIGRlbGVnYXRlIH06IEN1c3RvbUNvbXBvbmVudFN0YXRlPENvbXBvbmVudEluc3RhbmNlPik6IFJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvbnN0UmVmKGRlbGVnYXRlLmdldENvbnRleHQoY29tcG9uZW50KSwgJ3RoaXMnKTtcbiAgfVxuXG4gIGdldERlc3Ryb3lhYmxlKGJ1Y2tldDogQ3VzdG9tQ29tcG9uZW50U3RhdGU8Q29tcG9uZW50SW5zdGFuY2U+KTogT3B0aW9uPERlc3Ryb3lhYmxlPiB7XG4gICAgY29uc3QgeyBkZWxlZ2F0ZSB9ID0gYnVja2V0O1xuXG4gICAgaWYgKGhhc0Rlc3RydWN0b3JzKGRlbGVnYXRlKSkge1xuICAgICAgY29uc3QgeyBjb21wb25lbnQgfSA9IGJ1Y2tldDtcblxuICAgICAgcmVnaXN0ZXJEZXN0cnVjdG9yKGJ1Y2tldCwgKCkgPT4gZGVsZWdhdGUuZGVzdHJveUNvbXBvbmVudChjb21wb25lbnQpKTtcbiAgICAgIHJldHVybiBidWNrZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRDYXBhYmlsaXRpZXMoKTogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMge1xuICAgIHJldHVybiBDQVBBQklMSVRJRVM7XG4gIH1cbn1cblxuLyoqXG4gKiBTdG9yZXMgaW50ZXJuYWwgc3RhdGUgYWJvdXQgYSBjb21wb25lbnQgaW5zdGFuY2UgYWZ0ZXIgaXQncyBiZWVuIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Db21wb25lbnRTdGF0ZTxDb21wb25lbnRJbnN0YW5jZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29tcG9uZW50OiBDb21wb25lbnRJbnN0YW5jZSxcbiAgICBwdWJsaWMgZGVsZWdhdGU6IENvbXBvbmVudE1hbmFnZXI8Q29tcG9uZW50SW5zdGFuY2U+LFxuICAgIHB1YmxpYyBhcmdzOiBBcmd1bWVudHNcbiAgKSB7fVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
import { DEBUG } from '@glimmer/env';
import { createComputeRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
import { buildCapabilities } from '../util/capabilities';
import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';
import { argsProxyFor } from '../util/args-proxy';

@@ -32,18 +32,68 @@ export function helperCapabilities(managerAPI, options = {}) {

export function customHelper(manager, definition) {
return (vmArgs, vm) => {
const args = argsProxyFor(vmArgs.capture(), 'helper');
const bucket = manager.createHelper(definition, args);
export class CustomHelperManager {
constructor(factory) {
this.factory = factory;
this.helperManagerDelegates = new WeakMap();
this.undefinedDelegate = null;
}
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
getDelegateForOwner(owner) {
let delegate = this.helperManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
this.helperManagerDelegates.set(owner, delegate);
}
if (hasValue(manager)) {
return createComputeRef(() => manager.getValue(bucket), null, DEBUG && manager.getDebugName && manager.getDebugName(definition));
return delegate;
}
getDelegateFor(owner) {
if (owner === undefined) {
let {
undefinedDelegate
} = this;
if (undefinedDelegate === null) {
let {
factory
} = this;
this.undefinedDelegate = undefinedDelegate = factory(undefined);
}
return undefinedDelegate;
} else {
return UNDEFINED_REFERENCE;
return this.getDelegateForOwner(owner);
}
};
}
getHelper(definition) {
return (vmArgs, vm) => {
let owner = vm.getOwner();
let manager = this.getDelegateForOwner(owner);
const args = argsProxyFor(vmArgs.capture(), 'helper');
const bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
return createComputeRef(() => manager.getValue(bucket), null, DEBUG && manager.getDebugName && manager.getDebugName(definition));
} else {
return UNDEFINED_REFERENCE;
}
};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBU0EsU0FBUyxnQkFBVCxFQUEyQixtQkFBM0IsUUFBc0Qsb0JBQXREO0FBRUEsU0FBUyxpQkFBVCxRQUFrQyxzQkFBbEM7QUFDQSxTQUFTLFlBQVQsUUFBNkIsb0JBQTdCO0FBRUEsT0FBTSxTQUFVLGtCQUFWLENBQ0osVUFESSxFQUVKLE9BQUEsR0FBdUMsRUFGbkMsRUFFcUM7QUFFekMsTUFBSSxLQUFLLElBQUksVUFBVSxLQUFLLE1BQTVCLEVBQW9DO0FBQ2xDLFVBQU0sSUFBSSxLQUFKLENBQVUsZ0RBQVYsQ0FBTjtBQUNEOztBQUVELE1BQ0UsS0FBSyxLQUNKLEVBQUUsT0FBTyxDQUFDLFFBQVIsSUFBb0IsT0FBTyxDQUFDLGtCQUE5QixLQUNFLE9BQU8sQ0FBQyxRQUFSLElBQW9CLE9BQU8sQ0FBQyxrQkFGMUIsQ0FEUCxFQUlFO0FBQ0EsVUFBTSxJQUFJLEtBQUosQ0FDSix3SkFESSxDQUFOO0FBR0Q7O0FBRUQsTUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLGtCQUFyQixFQUF5QztBQUN2QyxVQUFNLElBQUksS0FBSixDQUNKLHNIQURJLENBQU47QUFHRDs7QUFFRCxTQUFPLGlCQUFpQixDQUFDO0FBQ3ZCLElBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBVCxDQURNO0FBRXZCLElBQUEsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBVCxDQUZBO0FBR3ZCLElBQUEsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBVDtBQUhKLEdBQUQsQ0FBeEI7QUFLRCxDLENBRUQ7O0FBRUEsT0FBTSxTQUFVLFFBQVYsQ0FDSixPQURJLEVBQzJCO0FBRS9CLFNBQU8sT0FBTyxDQUFDLFlBQVIsQ0FBcUIsUUFBNUI7QUFDRDtBQUVELE9BQU0sU0FBVSxjQUFWLENBQ0osT0FESSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBQyxZQUFSLENBQXFCLGNBQTVCO0FBQ0QsQyxDQUVEOztBQUVBLE9BQU0sU0FBVSxZQUFWLENBQXVCLE9BQXZCLEVBQXdELFVBQXhELEVBQTBFO0FBQzlFLFNBQU8sQ0FBQyxNQUFELEVBQVMsRUFBVCxLQUFlO0FBQ3BCLFVBQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBUCxFQUFELEVBQW1CLFFBQW5CLENBQXpCO0FBQ0EsVUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVIsQ0FBcUIsVUFBckIsRUFBaUMsSUFBakMsQ0FBZjs7QUFFQSxRQUFJLGNBQWMsQ0FBQyxPQUFELENBQWxCLEVBQTZCO0FBQzNCLE1BQUEsRUFBRSxDQUFDLG9CQUFILENBQXdCLE9BQU8sQ0FBQyxjQUFSLENBQXVCLE1BQXZCLENBQXhCO0FBQ0Q7O0FBRUQsUUFBSSxRQUFRLENBQUMsT0FBRCxDQUFaLEVBQXVCO0FBQ3JCLGFBQU8sZ0JBQWdCLENBQ3JCLE1BQU0sT0FBTyxDQUFDLFFBQVIsQ0FBaUIsTUFBakIsQ0FEZSxFQUVyQixJQUZxQixFQUdyQixLQUFLLElBQUksT0FBTyxDQUFDLFlBQWpCLElBQWlDLE9BQU8sQ0FBQyxZQUFSLENBQXFCLFVBQXJCLENBSFosQ0FBdkI7QUFLRCxLQU5ELE1BTU87QUFDTCxhQUFPLG1CQUFQO0FBQ0Q7QUFDRixHQWpCRDtBQWtCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlciBhcyBHbGltbWVySGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogUGFydGlhbDxIZWxwZXJDYXBhYmlsaXRpZXM+ID0ge31cbik6IEhlbHBlckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGVscGVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgICghKG9wdGlvbnMuaGFzVmFsdWUgfHwgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHx8XG4gICAgICAob3B0aW9ucy5oYXNWYWx1ZSAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBwYXNzIGVpdGhlciB0aGUgYGhhc1ZhbHVlYCBPUiB0aGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSB3aGVuIGRlZmluaW5nIGEgaGVscGVyIG1hbmFnZXIuIFBhc3NpbmcgbmVpdGhlciwgb3IgYm90aCwgaXMgbm90IHBlcm1pdHRlZC4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdUaGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkIGZvciBoZWxwZXIgbWFuYWdlcnMuIFBsZWFzZSBwYXNzIGBoYXNWYWx1ZWAgaW5zdGVhZCdcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBoYXNWYWx1ZTogQm9vbGVhbihvcHRpb25zLmhhc1ZhbHVlKSxcbiAgICBoYXNEZXN0cm95YWJsZTogQm9vbGVhbihvcHRpb25zLmhhc0Rlc3Ryb3lhYmxlKSxcbiAgICBoYXNTY2hlZHVsZWRFZmZlY3Q6IEJvb2xlYW4ob3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpLFxuICB9KTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc1ZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJveWFibGUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNEZXN0cm95YWJsZTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21IZWxwZXIobWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPiwgZGVmaW5pdGlvbjogb2JqZWN0KTogR2xpbW1lckhlbHBlciB7XG4gIHJldHVybiAodm1BcmdzLCB2bSkgPT4ge1xuICAgIGNvbnN0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2hlbHBlcicpO1xuICAgIGNvbnN0IGJ1Y2tldCA9IG1hbmFnZXIuY3JlYXRlSGVscGVyKGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgIH1cblxuICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgICAgICgpID0+IG1hbmFnZXIuZ2V0VmFsdWUoYnVja2V0KSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgREVCVUcgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUoZGVmaW5pdGlvbilcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVTkRFRklORURfUkVGRVJFTkNFO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBWUEsU0FBUyxnQkFBVCxFQUEyQixtQkFBM0IsUUFBc0Qsb0JBQXREO0FBRUEsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE9BQU0sU0FBVSxrQkFBVixDQUNKLFVBREksRUFFSixPQUFBLEdBQXVDLEVBRm5DLEVBRXFDO0FBRXpDLE1BQUksS0FBSyxJQUFJLFVBQVUsS0FBSyxNQUE1QixFQUFvQztBQUNsQyxVQUFNLElBQUksS0FBSixDQUFVLGdEQUFWLENBQU47QUFDRDs7QUFFRCxNQUNFLEtBQUssS0FDSixFQUFFLE9BQU8sQ0FBQyxRQUFSLElBQW9CLE9BQU8sQ0FBQyxrQkFBOUIsS0FDRSxPQUFPLENBQUMsUUFBUixJQUFvQixPQUFPLENBQUMsa0JBRjFCLENBRFAsRUFJRTtBQUNBLFVBQU0sSUFBSSxLQUFKLENBQ0osd0pBREksQ0FBTjtBQUdEOztBQUVELE1BQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxrQkFBckIsRUFBeUM7QUFDdkMsVUFBTSxJQUFJLEtBQUosQ0FDSixzSEFESSxDQUFOO0FBR0Q7O0FBRUQsU0FBTyxpQkFBaUIsQ0FBQztBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVQsQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQVQsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQVQ7QUFISixHQUFELENBQXhCO0FBS0QsQyxDQUVEOztBQUVBLE9BQU0sU0FBVSxRQUFWLENBQ0osT0FESSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBQyxZQUFSLENBQXFCLFFBQTVCO0FBQ0Q7QUFFRCxPQUFNLFNBQVUsY0FBVixDQUNKLE9BREksRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQUMsWUFBUixDQUFxQixjQUE1QjtBQUNELEMsQ0FFRDs7QUFFQSxPQUFNLE1BQU8sbUJBQVAsQ0FBMEI7QUFDOUIsRUFBQSxXQUFBLENBQW9CLE9BQXBCLEVBQWtGO0FBQTlELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFFWixTQUFBLHNCQUFBLEdBQXlCLElBQUksT0FBSixFQUF6QjtBQUNBLFNBQUEsaUJBQUEsR0FBbUQsSUFBbkQ7QUFIOEU7O0FBSzlFLEVBQUEsbUJBQW1CLENBQUMsS0FBRCxFQUFTO0FBQ2xDLFFBQUksUUFBUSxHQUFHLEtBQUssc0JBQUwsQ0FBNEIsR0FBNUIsQ0FBZ0MsS0FBaEMsQ0FBZjs7QUFFQSxRQUFJLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUMxQixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQWMsSUFBbEI7QUFDQSxNQUFBLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBRCxDQUFsQjs7QUFFQSxVQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFrQixDQUFDLEdBQW5CLENBQXVCLFFBQVEsQ0FBQyxZQUFoQyxDQUFkLEVBQTZEO0FBQzNEO0FBQ0EsY0FBTSxJQUFJLEtBQUosQ0FDSix5TUFBeU0sSUFBSSxDQUFDLFNBQUwsQ0FDdk0sUUFBUSxDQUFDLFlBRDhMLENBRXhNLGFBQWEsUUFBUSxJQUhsQixDQUFOO0FBS0Q7O0FBRUQsV0FBSyxzQkFBTCxDQUE0QixHQUE1QixDQUFnQyxLQUFoQyxFQUF1QyxRQUF2QztBQUNEOztBQUVELFdBQU8sUUFBUDtBQUNEOztBQUVELEVBQUEsY0FBYyxDQUFDLEtBQUQsRUFBcUI7QUFDakMsUUFBSSxLQUFLLEtBQUssU0FBZCxFQUF5QjtBQUN2QixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQXdCLElBQTVCOztBQUVBLFVBQUksaUJBQWlCLEtBQUssSUFBMUIsRUFBZ0M7QUFDOUIsWUFBSTtBQUFFLFVBQUE7QUFBRixZQUFjLElBQWxCO0FBQ0EsYUFBSyxpQkFBTCxHQUF5QixpQkFBaUIsR0FBRyxPQUFPLENBQUMsU0FBRCxDQUFwRDtBQUNEOztBQUVELGFBQU8saUJBQVA7QUFDRCxLQVRELE1BU087QUFDTCxhQUFPLEtBQUssbUJBQUwsQ0FBeUIsS0FBekIsQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxTQUFTLENBQUMsVUFBRCxFQUFrQztBQUN6QyxXQUFPLENBQUMsTUFBRCxFQUFTLEVBQVQsS0FBZTtBQUNwQixVQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBSCxFQUFaO0FBRUEsVUFBSSxPQUFPLEdBQUcsS0FBSyxtQkFBTCxDQUF5QixLQUF6QixDQUFkO0FBRUEsWUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFQLEVBQUQsRUFBbUIsUUFBbkIsQ0FBekI7QUFDQSxZQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBUixDQUFxQixVQUFyQixFQUFpQyxJQUFqQyxDQUFmOztBQUVBLFVBQUksY0FBYyxDQUFDLE9BQUQsQ0FBbEIsRUFBNkI7QUFDM0IsUUFBQSxFQUFFLENBQUMsb0JBQUgsQ0FBd0IsT0FBTyxDQUFDLGNBQVIsQ0FBdUIsTUFBdkIsQ0FBeEI7QUFDRDs7QUFFRCxVQUFJLFFBQVEsQ0FBQyxPQUFELENBQVosRUFBdUI7QUFDckIsZUFBTyxnQkFBZ0IsQ0FDckIsTUFBTyxPQUEyQyxDQUFDLFFBQTVDLENBQXFELE1BQXJELENBRGMsRUFFckIsSUFGcUIsRUFHckIsS0FBSyxJQUFJLE9BQU8sQ0FBQyxZQUFqQixJQUFpQyxPQUFPLENBQUMsWUFBUixDQUFxQixVQUFyQixDQUhaLENBQXZCO0FBS0QsT0FORCxNQU1PO0FBQ0wsZUFBTyxtQkFBUDtBQUNEO0FBQ0YsS0FyQkQ7QUFzQkQ7O0FBbEU2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlcixcbiAgSGVscGVyQ2FwYWJpbGl0aWVzLFxuICBIZWxwZXJDYXBhYmlsaXRpZXNWZXJzaW9ucyxcbiAgSGVscGVyRGVmaW5pdGlvblN0YXRlLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxuICBJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAodm1BcmdzLCB2bSkgPT4ge1xuICAgICAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKSBhcyBPO1xuXG4gICAgICBsZXQgbWFuYWdlciA9IHRoaXMuZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcik7XG5cbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzVmFsdWUobWFuYWdlcikpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgICAgICAgKCkgPT4gKG1hbmFnZXIgYXMgSGVscGVyTWFuYWdlcldpdGhWYWx1ZTx1bmtub3duPikuZ2V0VmFsdWUoYnVja2V0KSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIERFQlVHICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lKGRlZmluaXRpb24pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVU5ERUZJTkVEX1JFRkVSRU5DRTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
import { setInternalComponentManager, setInternalHelperManager, setInternalModifierManager } from '../internal/index';
import { CustomComponentManager } from './component';
import { DEBUG } from '@glimmer/env';
import { FROM_CAPABILITIES } from '../util/capabilities';
import { CustomModifierManager } from './modifier';
import { CustomHelperManager } from './helper';
export function setComponentManager(factory, obj) {
return setInternalComponentManager(owner => {
let manager = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom component managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.4' | '3.13')\` (imported via \`import { capabilities } from '@ember/component';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return new CustomComponentManager(manager);
}, obj);
return setInternalComponentManager(new CustomComponentManager(factory), obj);
}
export function setModifierManager(factory, obj) {
return setInternalModifierManager(owner => {
let manager = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom modifier managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.13' | '3.22')\` (imported via \`import { capabilities } from '@ember/modifier';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return new CustomModifierManager(owner, manager);
}, obj);
return setInternalModifierManager(new CustomModifierManager(factory), obj);
}
export function setHelperManager(factory, obj) {
return setInternalHelperManager(owner => {
let manager = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(manager.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom helper managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.23')\` (imported via \`import { capabilities } from '@ember/helper';\`). Received: \`${JSON.stringify(manager.capabilities)}\` for: \`${manager}\``);
}
return manager;
}, obj);
return setInternalHelperManager(new CustomHelperManager(factory), obj);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUNFLDJCQURGLEVBRUUsd0JBRkYsRUFHRSwwQkFIRixRQUlPLG1CQUpQO0FBS0EsU0FBUyxzQkFBVCxRQUF1QyxhQUF2QztBQUNBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUNBLFNBQVMsaUJBQVQsUUFBa0Msc0JBQWxDO0FBQ0EsU0FBUyxxQkFBVCxRQUFzQyxZQUF0QztBQU1BLE9BQU0sU0FBVSxtQkFBVixDQUNKLE9BREksRUFFSixHQUZJLEVBRUU7QUFFTixTQUFPLDJCQUEyQixDQUFFLEtBQUQsSUFBYTtBQUM5QyxRQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBRCxDQUFyQjs7QUFFQSxRQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFrQixDQUFDLEdBQW5CLENBQXVCLE9BQU8sQ0FBQyxZQUEvQixDQUFkLEVBQTREO0FBQzFEO0FBQ0EsWUFBTSxJQUFJLEtBQUosQ0FDSix1TkFBdU4sSUFBSSxDQUFDLFNBQUwsQ0FDck4sT0FBTyxDQUFDLFlBRDZNLENBRXROLGFBQWEsT0FBTyxJQUhqQixDQUFOO0FBS0Q7O0FBRUQsV0FBTyxJQUFJLHNCQUFKLENBQTJCLE9BQTNCLENBQVA7QUFDRCxHQWJpQyxFQWEvQixHQWIrQixDQUFsQztBQWNEO0FBRUQsT0FBTSxTQUFVLGtCQUFWLENBQ0osT0FESSxFQUVKLEdBRkksRUFFRTtBQUVOLFNBQU8sMEJBQTBCLENBQUUsS0FBRCxJQUFhO0FBQzdDLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFELENBQXJCOztBQUVBLFFBQUksS0FBSyxJQUFJLENBQUMsaUJBQWtCLENBQUMsR0FBbkIsQ0FBdUIsT0FBTyxDQUFDLFlBQS9CLENBQWQsRUFBNEQ7QUFDMUQ7QUFDQSxZQUFNLElBQUksS0FBSixDQUNKLHNOQUFzTixJQUFJLENBQUMsU0FBTCxDQUNwTixPQUFPLENBQUMsWUFENE0sQ0FFck4sYUFBYSxPQUFPLElBSGpCLENBQU47QUFLRDs7QUFFRCxXQUFPLElBQUkscUJBQUosQ0FBMEIsS0FBMUIsRUFBaUMsT0FBakMsQ0FBUDtBQUNELEdBYmdDLEVBYTlCLEdBYjhCLENBQWpDO0FBY0Q7QUFFRCxPQUFNLFNBQVUsZ0JBQVYsQ0FDSixPQURJLEVBRUosR0FGSSxFQUVFO0FBRU4sU0FBTyx3QkFBd0IsQ0FBRSxLQUFELElBQXlCO0FBQ3ZELFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFELENBQXJCOztBQUVBLFFBQUksS0FBSyxJQUFJLENBQUMsaUJBQWtCLENBQUMsR0FBbkIsQ0FBdUIsT0FBTyxDQUFDLFlBQS9CLENBQWQsRUFBNEQ7QUFDMUQ7QUFDQSxZQUFNLElBQUksS0FBSixDQUNKLHlNQUF5TSxJQUFJLENBQUMsU0FBTCxDQUN2TSxPQUFPLENBQUMsWUFEK0wsQ0FFeE0sYUFBYSxPQUFPLElBSGpCLENBQU47QUFLRDs7QUFFRCxXQUFPLE9BQVA7QUFDRCxHQWI4QixFQWE1QixHQWI0QixDQUEvQjtBQWNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX1dlYWtTZXQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IENvbXBvbmVudE1hbmFnZXIsIEhlbHBlck1hbmFnZXIsIE1vZGlmaWVyTWFuYWdlciwgT3duZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW5kZXgnO1xuaW1wb3J0IHsgQ3VzdG9tQ29tcG9uZW50TWFuYWdlciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIH0gZnJvbSAnLi9tb2RpZmllcic7XG5cbnR5cGUgTWFuYWdlciA9IENvbXBvbmVudE1hbmFnZXI8dW5rbm93bj4gfCBNb2RpZmllck1hbmFnZXI8dW5rbm93bj4gfCBIZWxwZXJNYW5hZ2VyPHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBNYW5hZ2VyRmFjdG9yeTxPLCBEIGV4dGVuZHMgTWFuYWdlciA9IE1hbmFnZXI+ID0gKG93bmVyOiBPKSA9PiBEO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29tcG9uZW50TWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPLCBDb21wb25lbnRNYW5hZ2VyPHVua25vd24+PixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcigob3duZXI6IE8pID0+IHtcbiAgICBsZXQgbWFuYWdlciA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKG1hbmFnZXIuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDdXN0b20gY29tcG9uZW50IG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjQnIHwgJzMuMTMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQnO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIG1hbmFnZXIuY2FwYWJpbGl0aWVzXG4gICAgICAgICl9XFxgIGZvcjogXFxgJHttYW5hZ2VyfVxcYGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDdXN0b21Db21wb25lbnRNYW5hZ2VyKG1hbmFnZXIpO1xuICB9LCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjx1bmtub3duPj4sXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcigob3duZXI6IE8pID0+IHtcbiAgICBsZXQgbWFuYWdlciA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKG1hbmFnZXIuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbWFuYWdlci5jYXBhYmlsaXRpZXNcbiAgICAgICAgKX1cXGAgZm9yOiBcXGAke21hbmFnZXJ9XFxgYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcihvd25lciwgbWFuYWdlcik7XG4gIH0sIG9iaik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRIZWxwZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8gfCB1bmRlZmluZWQsIEhlbHBlck1hbmFnZXI8dW5rbm93bj4+LFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyKChvd25lcjogTyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGxldCBtYW5hZ2VyID0gZmFjdG9yeShvd25lcik7XG5cbiAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMobWFuYWdlci5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIG1hbmFnZXIuY2FwYWJpbGl0aWVzXG4gICAgICAgICl9XFxgIGZvcjogXFxgJHttYW5hZ2VyfVxcYGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hbmFnZXI7XG4gIH0sIG9iaik7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUNFLDJCQURGLEVBRUUsd0JBRkYsRUFHRSwwQkFIRixRQUlPLG1CQUpQO0FBS0EsU0FBUyxzQkFBVCxRQUF1QyxhQUF2QztBQUNBLFNBQVMscUJBQVQsUUFBc0MsWUFBdEM7QUFDQSxTQUFTLG1CQUFULFFBQW9DLFVBQXBDO0FBTUEsT0FBTSxTQUFVLG1CQUFWLENBQ0osT0FESSxFQUVKLEdBRkksRUFFRTtBQUVOLFNBQU8sMkJBQTJCLENBQUMsSUFBSSxzQkFBSixDQUEyQixPQUEzQixDQUFELEVBQXNDLEdBQXRDLENBQWxDO0FBQ0Q7QUFFRCxPQUFNLFNBQVUsa0JBQVYsQ0FDSixPQURJLEVBRUosR0FGSSxFQUVFO0FBRU4sU0FBTywwQkFBMEIsQ0FBQyxJQUFJLHFCQUFKLENBQTBCLE9BQTFCLENBQUQsRUFBcUMsR0FBckMsQ0FBakM7QUFDRDtBQUVELE9BQU0sU0FBVSxnQkFBVixDQUNKLE9BREksRUFFSixHQUZJLEVBRUU7QUFFTixTQUFPLHdCQUF3QixDQUFDLElBQUksbUJBQUosQ0FBd0IsT0FBeEIsQ0FBRCxFQUFtQyxHQUFuQyxDQUEvQjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX1dlYWtTZXQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IENvbXBvbmVudE1hbmFnZXIsIEhlbHBlck1hbmFnZXIsIE1vZGlmaWVyTWFuYWdlciwgT3duZXIgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIHNldEludGVybmFsQ29tcG9uZW50TWFuYWdlcixcbiAgc2V0SW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW5kZXgnO1xuaW1wb3J0IHsgQ3VzdG9tQ29tcG9uZW50TWFuYWdlciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbU1vZGlmaWVyTWFuYWdlciB9IGZyb20gJy4vbW9kaWZpZXInO1xuaW1wb3J0IHsgQ3VzdG9tSGVscGVyTWFuYWdlciB9IGZyb20gJy4vaGVscGVyJztcblxudHlwZSBNYW5hZ2VyID0gQ29tcG9uZW50TWFuYWdlcjx1bmtub3duPiB8IE1vZGlmaWVyTWFuYWdlcjx1bmtub3duPiB8IEhlbHBlck1hbmFnZXI8dW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIE1hbmFnZXJGYWN0b3J5PE8sIEQgZXh0ZW5kcyBNYW5hZ2VyID0gTWFuYWdlcj4gPSAob3duZXI6IE8pID0+IEQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb21wb25lbnRNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIENvbXBvbmVudE1hbmFnZXI8dW5rbm93bj4+LFxuICBvYmo6IFRcbik6IFQge1xuICByZXR1cm4gc2V0SW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyKG5ldyBDdXN0b21Db21wb25lbnRNYW5hZ2VyKGZhY3RvcnkpLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgVCBleHRlbmRzIG9iamVjdD4oXG4gIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjx1bmtub3duPj4sXG4gIG9iajogVFxuKTogVCB7XG4gIHJldHVybiBzZXRJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcihuZXcgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyKGZhY3RvcnkpLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SGVscGVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PixcbiAgb2JqOiBUXG4pOiBUIHtcbiAgcmV0dXJuIHNldEludGVybmFsSGVscGVyTWFuYWdlcihuZXcgQ3VzdG9tSGVscGVyTWFuYWdlcihmYWN0b3J5KSwgb2JqKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

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

import { createUpdatableTag, deprecateMutationsInTrackingTransaction, untrack } from '@glimmer/validator';
import { buildCapabilities } from '../util/capabilities';
import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';
import { argsProxyFor } from '../util/args-proxy';

@@ -49,11 +49,32 @@ export function modifierCapabilities(managerAPI, optionalFeatures = {}) {

export class CustomModifierManager {
constructor(owner, delegate) {
this.owner = owner;
this.delegate = delegate;
constructor(factory) {
this.factory = factory;
this.componentManagerDelegates = new WeakMap();
}
create(element, definition, vmArgs) {
getDelegateFor(owner) {
let {
delegate
componentManagerDelegates
} = this;
let delegate = componentManagerDelegates.get(owner);
if (delegate === undefined) {
let {
factory
} = this;
delegate = factory(owner);
if (DEBUG && !FROM_CAPABILITIES.has(delegate.capabilities)) {
// TODO: This error message should make sense in both Ember and Glimmer https://github.com/glimmerjs/glimmer-vm/issues/1200
throw new Error(`Custom modifier managers must have a \`capabilities\` property that is the result of calling the \`capabilities('3.13' | '3.22')\` (imported via \`import { capabilities } from '@ember/modifier';\`). Received: \`${JSON.stringify(delegate.capabilities)}\` for: \`${delegate}\``);
}
componentManagerDelegates.set(owner, delegate);
}
return delegate;
}
create(owner, element, definition, vmArgs) {
let delegate = this.getDelegateFor(owner);
let capturedArgs = vmArgs.capture();

@@ -69,7 +90,4 @@ let {

if (passFactoryToCreate) {
let {
owner
} = this; // Make a fake factory. While not perfect, this should generally prevent
// Make a fake factory. While not perfect, this should generally prevent
// breakage in users of older modifier capabilities.
factoryOrDefinition = {

@@ -101,2 +119,3 @@ create(args) {

element,
delegate,
args,

@@ -110,2 +129,3 @@ modifier: instance

modifier: instance,
delegate,

@@ -142,8 +162,6 @@ get args() {

args,
modifier
modifier,
delegate
}) {
let {
delegate
} = this;
let {
capabilities

@@ -161,8 +179,6 @@ } = delegate;

args,
modifier
modifier,
delegate
}) {
let {
delegate
} = this;
let {
capabilities

@@ -199,2 +215,2 @@ } = delegate;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFXQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsUUFBVCxRQUF5QixnQkFBekI7QUFDQSxTQUFTLFdBQVQsUUFBNEIsb0JBQTVCO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FDRSxrQkFERixFQUVFLHVDQUZGLEVBR0UsT0FIRixRQUtPLG9CQUxQO0FBT0EsU0FBUyxpQkFBVCxRQUFrQyxzQkFBbEM7QUFDQSxTQUFTLFlBQVQsUUFBNkIsb0JBQTdCO0FBRUEsT0FBTSxTQUFVLG9CQUFWLENBQ0osVUFESSxFQUVKLGdCQUFBLEdBQTBELEVBRnRELEVBRXdEO0FBRTVELE1BQUksS0FBSyxJQUFJLFVBQVUsS0FBSyxNQUF4QixJQUFrQyxVQUFVLEtBQUssTUFBckQsRUFBNkQ7QUFDM0QsVUFBTSxJQUFJLEtBQUosQ0FBVSxrREFBVixDQUFOO0FBQ0Q7O0FBRUQsU0FBTyxpQkFBaUIsQ0FBQztBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbEIsQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQUssTUFBZixHQUF3QixLQUF4QixHQUFnQyxJQUZ2QjtBQUl2QjtBQUNBO0FBQ0EsSUFBQSxtQkFBbUIsRUFBRSxVQUFVLEtBQUs7QUFOYixHQUFELENBQXhCO0FBUUQ7QUFjRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxPQUFNLE1BQU8scUJBQVAsQ0FBNEI7QUFFaEMsRUFBQSxXQUFBLENBQW9CLEtBQXBCLEVBQTBDLFFBQTFDLEVBQXFGO0FBQWpFLFNBQUEsS0FBQSxHQUFBLEtBQUE7QUFBc0IsU0FBQSxRQUFBLEdBQUEsUUFBQTtBQUErQzs7QUFFekYsRUFB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R0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmaWVyQ2FwYWJpbGl0aWVzPFZlcnNpb24gZXh0ZW5kcyBrZXlvZiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uYWxGZWF0dXJlczogTW9kaWZpZXJDYXBhYmlsaXRpZXNWZXJzaW9uc1tWZXJzaW9uXSA9IHt9XG4pOiBNb2RpZmllckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4xMycgJiYgbWFuYWdlckFQSSAhPT0gJzMuMjInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGlmaWVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIHJldHVybiBidWlsZENhcGFiaWxpdGllcyh7XG4gICAgZGlzYWJsZUF1dG9UcmFja2luZzogQm9vbGVhbihvcHRpb25hbEZlYXR1cmVzLmRpc2FibGVBdXRvVHJhY2tpbmcpLFxuICAgIHVzZUFyZ3NQcm94eTogbWFuYWdlckFQSSA9PT0gJzMuMTMnID8gZmFsc2UgOiB0cnVlLFxuXG4gICAgLy8gVGhpcyBjYXBhYmlsaXR5IGlzIHVzZWQgaW4gRW1iZXIsIGV4Y2x1c2l2ZWx5IGluIHJlc29sdXRpb24gbW9kZS4gU2VlIHRoZVxuICAgIC8vIEVtYmVyIGdsaW1tZXIgcmVzb2x2ZXIgZm9yIGRldGFpbHMuXG4gICAgcGFzc0ZhY3RvcnlUb0NyZWF0ZTogbWFuYWdlckFQSSA9PT0gJzMuMTMnLFxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+IHtcbiAgdGFnOiBVcGRhdGFibGVUYWc7XG4gIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQ7XG4gIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlO1xuICBhcmdzOiBBcmd1bWVudHM7XG4gIGRlYnVnTmFtZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEZhY3Rvcnkge1xuICBjcmVhdGUocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IG9iamVjdDtcbn1cblxuLyoqXG4gIFRoZSBDdXN0b21Nb2RpZmllck1hbmFnZXIgYWxsb3dzIGFkZG9ucyB0byBwcm92aWRlIGN1c3RvbSBtb2RpZmllclxuICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbnRlZ3JhdGUgc2VhbWxlc3NseSBpbnRvIEVtYmVyLiBUaGlzIGlzIGFjY29tcGxpc2hlZFxuICB0aHJvdWdoIGEgZGVsZWdhdGUsIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIHdoaWNoXG4gIGltcGxlbWVudHMgYSBzZXQgb2YgaG9va3MgdGhhdCBkZXRlcm1pbmUgbW9kaWZpZXIgYmVoYXZpb3IuXG4gIFRvIGNyZWF0ZSBhIGN1c3RvbSBtb2RpZmllciBtYW5hZ2VyLCBpbnN0YW50aWF0ZSBhIG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXJcbiAgY2xhc3MgYW5kIHBhc3MgdGhlIGRlbGVnYXRlIGFzIHRoZSBmaXJzdCBhcmd1bWVudDpcblxuICBgYGBqc1xuICBsZXQgbWFuYWdlciA9IG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXIoe1xuICAgIC8vIC4uLmRlbGVnYXRlIGltcGxlbWVudGF0aW9uLi4uXG4gIH0pO1xuICBgYGBcblxuICAjIyBEZWxlZ2F0ZSBIb29rc1xuXG4gIFRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBhIG1vZGlmaWVyLCB0aGUgbW9kaWZpZXIgbWFuYWdlciB3aWxsIGludm9rZVxuICBkZWxlZ2F0ZSBob29rcyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Igc3VyZmFjaW5nIHRob3NlIGxpZmVjeWNsZSBjaGFuZ2VzIHRvXG4gIHRoZSBlbmQgZGV2ZWxvcGVyLlxuICAqIGBjcmVhdGVNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiBhIG5ldyBpbnN0YW5jZSBvZiBhIG1vZGlmaWVyIHNob3VsZCBiZSBjcmVhdGVkXG4gICogYGluc3RhbGxNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgaW5zdGFsbGVkIG9uIHRoZSBlbGVtZW50XG4gICogYHVwZGF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgbW9kaWZpZXIgY2hhbmdlXG4gICogYGRlc3Ryb3lNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkXG4qL1xuZXhwb3J0IGNsYXNzIEN1c3RvbU1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvd25lcjogT3duZXIsIHByaXZhdGUgZGVsZWdhdGU6IE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPikge31cblxuICBjcmVhdGUoZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IHsgZGVsZWdhdGUgfSA9IHRoaXM7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICBsZXQgeyBvd25lciB9ID0gdGhpcztcbiAgICAgIC8vIE1ha2UgYSBmYWtlIGZhY3RvcnkuIFdoaWxlIG5vdCBwZXJmZWN0LCB0aGlzIHNob3VsZCBnZW5lcmFsbHkgcHJldmVudFxuICAgICAgLy8gYnJlYWthZ2UgaW4gdXNlcnMgb2Ygb2xkZXIgbW9kaWZpZXIgY2FwYWJpbGl0aWVzLlxuICAgICAgZmFjdG9yeU9yRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgY3JlYXRlKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgICAgICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGFyZ3MsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBlbGVtZW50LCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHsgYXJncywgbW9kaWZpZXIgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGRlbGVnYXRlIH0gPSB0aGlzO1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGdldERlc3Ryb3lhYmxlKHN0YXRlOiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWlmeUFyZ3Moe1xuICBuYW1lZCxcbiAgcG9zaXRpb25hbCxcbn06IENhcHR1cmVkQXJndW1lbnRzKTogeyBuYW1lZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47IHBvc2l0aW9uYWw6IHVua25vd25bXSB9IHtcbiAgbGV0IHJlaWZpZWROYW1lZCA9IGRpY3QoKTtcblxuICBmb3IgKGxldCBrZXkgaW4gbmFtZWQpIHtcbiAgICByZWlmaWVkTmFtZWRba2V5XSA9IHZhbHVlRm9yUmVmKG5hbWVkW2tleV0pO1xuICB9XG5cbiAgbGV0IHJlaWZpZWRQb3NpdGlvbmFsID0gcG9zaXRpb25hbC5tYXAodmFsdWVGb3JSZWYpO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZWQ6IHJlaWZpZWROYW1lZCxcbiAgICBwb3NpdGlvbmFsOiByZWlmaWVkUG9zaXRpb25hbCxcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFXQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsUUFBVCxRQUF5QixnQkFBekI7QUFDQSxTQUFTLFdBQVQsUUFBNEIsb0JBQTVCO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FDRSxrQkFERixFQUVFLHVDQUZGLEVBR0UsT0FIRixRQUtPLG9CQUxQO0FBT0EsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE9BQU0sU0FBVSxvQkFBVixDQUNKLFVBREksRUFFSixnQkFBQSxHQUEwRCxFQUZ0RCxFQUV3RDtBQUU1RCxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQUssTUFBeEIsSUFBa0MsVUFBVSxLQUFLLE1BQXJELEVBQTZEO0FBQzNELFVBQU0sSUFBSSxLQUFKLENBQVUsa0RBQVYsQ0FBTjtBQUNEOztBQUVELFNBQU8saUJBQWlCLENBQUM7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQWxCLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFLLE1BQWYsR0FBd0IsS0FBeEIsR0FBZ0MsSUFGdkI7QUFJdkI7QUFDQTtBQUNBLElBQUEsbUJBQW1CLEVBQUUsVUFBVSxLQUFLO0FBTmIsR0FBRCxDQUF4QjtBQVFEO0FBZUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTSxNQUFPLHFCQUFQLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFvQixPQUFwQixFQUFpRjtBQUE3RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRlosU0FBQSx5QkFBQSxHQUE0QixJQUFJLE9BQUosRUFBNUI7QUFF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QUFQLENBQVA7QUFDRCxLQUZELE1BRU87QUFDTCxNQUFBLFFBQVEsQ0FBQyxjQUFULENBQXdCLFFBQXhCLEVBQWtDLElBQWxDO0FBQ0Q7QUFDRjs7QUFFRCxFQUFBLGNBQWMsQ0FBQyxLQUFELEVBQTZDO0FBQ3pELFdBQU8sS0FBUDtBQUNEOztBQTlIK0I7QUFpSWxDLE9BQU0sU0FBVSxTQUFWLENBQW9CO0FBQ3hCLEVBQUEsS0FEd0I7QUFFeEIsRUFBQTtBQUZ3QixDQUFwQixFQUdjO0FBQ2xCLE1BQUksWUFBWSxHQUFHLElBQUksRUFBdkI7O0FBRUEsT0FBSyxJQUFJLEdBQVQsSUFBZ0IsS0FBaEIsRUFBdUI7QUFDckIsSUFBQSxZQUFZLENBQUMsR0FBRCxDQUFaLEdBQW9CLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRCxDQUFOLENBQS9CO0FBQ0Q7O0FBRUQsTUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBWCxDQUFlLFdBQWYsQ0FBeEI7QUFFQSxTQUFPO0FBQ0wsSUFBQSxLQUFLLEVBQUUsWUFERjtBQUVMLElBQUEsVUFBVSxFQUFFO0FBRlAsR0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBhcmdzKTtcbiAgICAgICAgICBzZXRPd25lcihwYXJhbXMsIG93bmVyKTtcblxuICAgICAgICAgIHJldHVybiAoZGVmaW5pdGlvbiBhcyBGYWN0b3J5KS5jcmVhdGUoYXJncyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xhc3M6IGRlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZWxlZ2F0ZS5jcmVhdGVNb2RpZmllcihmYWN0b3J5T3JEZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIGxldCB0YWcgPSBjcmVhdGVVcGRhdGFibGVUYWcoKTtcbiAgICBsZXQgc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT47XG5cbiAgICBpZiAodXNlQXJnc1Byb3h5KSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkZWxlZ2F0ZSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS5pbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIGVsZW1lbnQsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -5,3 +5,3 @@ export { setInternalHelperManager, setInternalModifierManager, setInternalComponentManager, getInternalHelperManager, getInternalModifierManager, getInternalComponentManager, hasInternalHelperManager, hasInternalModifierManager, hasInternalComponentManager, } from './lib/internal/index';

export { modifierCapabilities, CustomModifierManager } from './lib/public/modifier';
export { helperCapabilities, hasDestroyable, hasValue, customHelper } from './lib/public/helper';
export { helperCapabilities, hasDestroyable, hasValue, CustomHelperManager, } from './lib/public/helper';
export { getComponentTemplate, setComponentTemplate } from './lib/public/template';

@@ -8,0 +8,0 @@ export { capabilityFlagsFrom, hasCapability, managerHasCapability } from './lib/util/capabilities';

@@ -1,17 +0,14 @@

import { Owner } from '@glimmer/interfaces';
import { InternalComponentManager, InternalModifierManager, HelperManager, Helper } from '@glimmer/interfaces';
declare type InternalManager = InternalComponentManager | InternalModifierManager | HelperManager<unknown> | Helper;
export declare type InternalManagerFactory<O, D extends InternalManager = InternalManager> = (owner: O) => D;
export declare function setInternalModifierManager<O extends Owner, T extends object>(factory: InternalManagerFactory<O, InternalModifierManager>, definition: T): T;
export declare function getInternalModifierManager(owner: Owner | undefined, definition: object): InternalModifierManager;
export declare function setInternalHelperManager<O extends Owner, T extends object>(factory: InternalManagerFactory<O | undefined, HelperManager<unknown> | Helper>, definition: T): T;
export declare function getInternalHelperManager(owner: Owner | undefined, definition: object): HelperManager<unknown> | Helper;
export declare function getInternalHelperManager(owner: Owner | undefined, definition: object, isOptional: true | undefined): HelperManager<unknown> | Helper | null;
export declare function setInternalComponentManager<O extends Owner, T extends object>(factory: InternalManagerFactory<O, InternalComponentManager>, obj: T): T;
export declare function getInternalComponentManager(owner: Owner | undefined, definition: object): InternalComponentManager;
export declare function getInternalComponentManager(owner: Owner | undefined, definition: object, isOptional: true | undefined): InternalComponentManager | null;
import { InternalComponentManager, InternalModifierManager, Helper, Owner } from '@glimmer/interfaces';
import { CustomHelperManager } from '../public/helper';
export declare function setInternalModifierManager<T extends object>(manager: InternalModifierManager, definition: T): T;
export declare function getInternalModifierManager(definition: object): InternalModifierManager;
export declare function setInternalHelperManager<T extends object, O extends Owner>(manager: CustomHelperManager<O> | Helper, definition: T): T;
export declare function getInternalHelperManager(definition: object): CustomHelperManager | Helper;
export declare function getInternalHelperManager(definition: object, isOptional: true | undefined): CustomHelperManager | Helper | null;
export declare function setInternalComponentManager<T extends object>(factory: InternalComponentManager, obj: T): T;
export declare function getInternalComponentManager(definition: object): InternalComponentManager;
export declare function getInternalComponentManager(definition: object, isOptional: true | undefined): InternalComponentManager | null;
export declare function hasInternalComponentManager(definition: object): boolean;
export declare function hasInternalHelperManager(definition: object): boolean;
export declare function hasInternalModifierManager(definition: object): boolean;
export {};
//# sourceMappingURL=index.d.ts.map

@@ -1,3 +0,4 @@

import { Arguments, ComponentCapabilities, ComponentCapabilitiesVersions, ComponentDefinitionState, ComponentManager, ComponentManagerWithAsyncLifeCycleCallbacks, ComponentManagerWithAsyncUpdateHook, ComponentManagerWithDestructors, ComponentManagerWithUpdateHook, Destroyable, Environment, InternalComponentCapabilities, InternalComponentManager, Option, VMArguments } from '@glimmer/interfaces';
import { Arguments, ComponentCapabilities, ComponentCapabilitiesVersions, ComponentDefinitionState, ComponentManager, ComponentManagerWithAsyncLifeCycleCallbacks, ComponentManagerWithAsyncUpdateHook, ComponentManagerWithDestructors, ComponentManagerWithUpdateHook, Destroyable, InternalComponentCapabilities, InternalComponentManager, Option, Owner, VMArguments } from '@glimmer/interfaces';
import { Reference } from '@glimmer/reference';
import { ManagerFactory } from './index';
export declare function componentCapabilities<Version extends keyof ComponentCapabilitiesVersions>(managerAPI: Version, options?: ComponentCapabilitiesVersions[Version]): ComponentCapabilities;

@@ -33,13 +34,15 @@ export declare function hasAsyncLifeCycleCallbacks<ComponentInstance>(delegate: ComponentManager<ComponentInstance>): delegate is ComponentManagerWithAsyncLifeCycleCallbacks<ComponentInstance>;

*/
export declare class CustomComponentManager<ComponentInstance> implements InternalComponentManager<CustomComponentState<ComponentInstance>> {
private delegate;
constructor(delegate: ComponentManager<ComponentInstance>);
create(env: Environment, definition: ComponentDefinitionState, vmArgs: VMArguments): CustomComponentState<ComponentInstance>;
export declare class CustomComponentManager<O extends Owner, ComponentInstance> implements InternalComponentManager<CustomComponentState<ComponentInstance>> {
private factory;
private componentManagerDelegates;
constructor(factory: ManagerFactory<O, ComponentManager<ComponentInstance>>);
private getDelegateFor;
create(owner: O, definition: ComponentDefinitionState, vmArgs: VMArguments): CustomComponentState<ComponentInstance>;
getDebugName(definition: ComponentDefinitionState): string;
update(bucket: CustomComponentState<ComponentInstance>): void;
didCreate({ component }: CustomComponentState<ComponentInstance>): void;
didUpdate({ component }: CustomComponentState<ComponentInstance>): void;
didCreate({ component, delegate }: CustomComponentState<ComponentInstance>): void;
didUpdate({ component, delegate }: CustomComponentState<ComponentInstance>): void;
didRenderLayout(): void;
didUpdateLayout(): void;
getSelf({ component }: CustomComponentState<ComponentInstance>): Reference;
getSelf({ component, delegate }: CustomComponentState<ComponentInstance>): Reference;
getDestroyable(bucket: CustomComponentState<ComponentInstance>): Option<Destroyable>;

@@ -53,6 +56,6 @@ getCapabilities(): InternalComponentCapabilities;

component: ComponentInstance;
delegate: ComponentManager<ComponentInstance>;
args: Arguments;
env: Environment;
constructor(component: ComponentInstance, args: Arguments, env: Environment);
constructor(component: ComponentInstance, delegate: ComponentManager<ComponentInstance>, args: Arguments);
}
//# sourceMappingURL=component.d.ts.map

@@ -1,6 +0,15 @@

import { Helper as GlimmerHelper, HelperCapabilities, HelperCapabilitiesVersions, HelperManager, HelperManagerWithDestroyable, HelperManagerWithValue } from '@glimmer/interfaces';
import { Helper, HelperCapabilities, HelperCapabilitiesVersions, HelperDefinitionState, HelperManager, HelperManagerWithDestroyable, HelperManagerWithValue, InternalHelperManager, Owner } from '@glimmer/interfaces';
import { ManagerFactory } from './index';
export declare function helperCapabilities<Version extends keyof HelperCapabilitiesVersions>(managerAPI: Version, options?: Partial<HelperCapabilities>): HelperCapabilities;
export declare function hasValue(manager: HelperManager<unknown>): manager is HelperManagerWithValue<unknown>;
export declare function hasDestroyable(manager: HelperManager<unknown>): manager is HelperManagerWithDestroyable<unknown>;
export declare function customHelper(manager: HelperManager<unknown>, definition: object): GlimmerHelper;
export declare class CustomHelperManager<O extends Owner = Owner> implements InternalHelperManager<O> {
private factory;
constructor(factory: ManagerFactory<O | undefined, HelperManager<unknown>>);
private helperManagerDelegates;
private undefinedDelegate;
private getDelegateForOwner;
getDelegateFor(owner: O | undefined): HelperManager<unknown>;
getHelper(definition: HelperDefinitionState): Helper;
}
//# sourceMappingURL=helper.d.ts.map
import { Arguments, CapturedArguments, InternalModifierManager, ModifierCapabilities, ModifierCapabilitiesVersions, ModifierManager, Owner, VMArguments } from '@glimmer/interfaces';
import { UpdatableTag } from '@glimmer/validator';
import { SimpleElement } from '@simple-dom/interface';
import { ManagerFactory } from '.';
export declare function modifierCapabilities<Version extends keyof ModifierCapabilitiesVersions>(managerAPI: Version, optionalFeatures?: ModifierCapabilitiesVersions[Version]): ModifierCapabilities;

@@ -9,2 +10,3 @@ export interface CustomModifierState<ModifierInstance> {

modifier: ModifierInstance;
delegate: ModifierManager<ModifierInstance>;
args: Arguments;

@@ -37,11 +39,12 @@ debugName?: string;

*/
export declare class CustomModifierManager<ModifierInstance> implements InternalModifierManager<CustomModifierState<ModifierInstance>> {
private owner;
private delegate;
constructor(owner: Owner, delegate: ModifierManager<ModifierInstance>);
create(element: SimpleElement, definition: object, vmArgs: VMArguments): CustomModifierState<ModifierInstance>;
export declare class CustomModifierManager<O extends Owner, ModifierInstance> implements InternalModifierManager<CustomModifierState<ModifierInstance>> {
private factory;
private componentManagerDelegates;
constructor(factory: ManagerFactory<O, ModifierManager<ModifierInstance>>);
private getDelegateFor;
create(owner: O, element: SimpleElement, definition: object, vmArgs: VMArguments): CustomModifierState<ModifierInstance>;
getDebugName({ debugName }: CustomModifierState<ModifierInstance>): string;
getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;
install({ element, args, modifier }: CustomModifierState<ModifierInstance>): void;
update({ args, modifier }: CustomModifierState<ModifierInstance>): void;
install({ element, args, modifier, delegate }: CustomModifierState<ModifierInstance>): void;
update({ args, modifier, delegate }: CustomModifierState<ModifierInstance>): void;
getDestroyable(state: CustomModifierState<ModifierInstance>): CustomModifierState<ModifierInstance>;

@@ -48,0 +51,0 @@ }

{
"name": "@glimmer/manager",
"version": "0.70.0",
"version": "0.71.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/program",
"dependencies": {
"@glimmer/env": "0.1.7",
"@glimmer/interfaces": "0.70.0",
"@glimmer/destroyable": "0.70.0",
"@glimmer/reference": "0.70.0",
"@glimmer/validator": "0.70.0",
"@glimmer/util": "0.70.0"
"@glimmer/interfaces": "0.71.0",
"@glimmer/destroyable": "0.71.0",
"@glimmer/reference": "0.71.0",
"@glimmer/validator": "0.71.0",
"@glimmer/util": "0.71.0"
},

@@ -13,0 +13,0 @@ "main": "dist/commonjs/es2017/index.js",

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

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