Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ngneat/reactive-forms

Package Overview
Dependencies
Maintainers
3
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngneat/reactive-forms - npm Package Compare versions

Comparing version 1.1.0 to 1.2.0

287

bundles/ngneat-reactive-forms.umd.js

@@ -5,3 +5,3 @@ (function (global, factory) {

(global = global || self, factory((global.ngneat = global.ngneat || {}, global.ngneat['reactive-forms'] = {}), global.ng.forms, global.rxjs, global.rxjs.operators, global.ng.core));
}(this, (function (exports, forms, rxjs, operators, core) { 'use strict';
}(this, (function (exports, forms, rxjs, operators, i0) { 'use strict';

@@ -23,10 +23,10 @@ /*! *****************************************************************************

/* global Reflect, Promise */
var extendStatics = function(d, b) {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
function (d, b) { for (var p in b)
if (b.hasOwnProperty(p))
d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {

@@ -37,8 +37,9 @@ extendStatics(d, b);

}
var __assign = function() {
var __assign = function () {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}

@@ -49,7 +50,7 @@ return t;

};
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")

@@ -62,23 +63,34 @@ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
r = Reflect.decorate(decorators, target, key, desc);
else
for (var i = decorators.length - 1; i >= 0; i--)
if (d = decorators[i])
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
return function (target, key) { decorator(target, key, paramIndex); };
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function fulfilled(value) { try {
step(generator.next(value));
}
catch (e) {
reject(e);
} }
function rejected(value) { try {
step(generator["throw"](value));
}
catch (e) {
reject(e);
} }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }

@@ -88,69 +100,123 @@ step((generator = generator.apply(thisArg, _arguments || [])).next());

}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
var _ = { label: 0, sent: function () { if (t[0] & 1)
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
if (f)
throw new TypeError("Generator is already executing.");
while (_)
try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
return t;
if (y = 0, t)
op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2])
_.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
catch (e) {
op = [6, e];
y = 0;
}
finally {
f = t = 0;
}
if (op[0] & 5)
throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __createBinding(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var __createBinding = Object.create ? (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
}) : (function (o, m, k, k2) {
if (k2 === undefined)
k2 = k;
o[k2] = m[k];
}
});
function __exportStar(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
for (var p in m)
if (p !== "default" && !exports.hasOwnProperty(p))
__createBinding(exports, m, p);
}
function __values(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
if (m)
return m.call(o);
if (o && typeof o.length === "number")
return {
next: function () {
if (o && i >= o.length)
o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
if (!m)
return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
ar.push(r.value);
}
catch (error) { e = { error: error }; }
catch (error) {
e = { error: error };
}
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
if (r && !r.done && (m = i["return"]))
m.call(i);
}
finally { if (e) throw e.error; }
finally {
if (e)
throw e.error;
}
}
return ar;
}
function __spread() {

@@ -161,5 +227,5 @@ for (var ar = [], i = 0; i < arguments.length; i++)

}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)

@@ -169,20 +235,26 @@ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

return r;
};
}
;
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function verb(n) { if (g[n])
i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try {
step(g[n](v));
}
catch (e) {
settle(q[0][3], e);
} }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
function settle(f, v) { if (f(v), q.shift(), q.length)
resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {

@@ -193,28 +265,39 @@ var i, p;

}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
if (!Symbol.asyncIterator)
throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
if (Object.defineProperty) {
Object.defineProperty(cooked, "raw", { value: raw });
}
else {
cooked.raw = raw;
}
return cooked;
}
;
var __setModuleDefault = Object.create ? (function (o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function (o, v) {
o["default"] = v;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
if (mod && mod.__esModule)
return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
if (mod != null)
for (var k in mod)
if (Object.hasOwnProperty.call(mod, k))
__createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
function __classPrivateFieldGet(receiver, privateMap) {

@@ -226,3 +309,2 @@ if (!privateMap.has(receiver)) {

}
function __classPrivateFieldSet(receiver, privateMap, value) {

@@ -467,2 +549,13 @@ if (!privateMap.has(receiver)) {

};
FormArray.prototype.remove = function (value) {
this.removeWhen(function (v) { return v.value === value; });
};
FormArray.prototype.removeWhen = function (predicate) {
var toRemove = [];
for (var i = this.length - 1; i >= 0; --i) {
if (predicate(this.at(i))) {
this.removeAt(i);
}
}
};
return FormArray;

@@ -726,8 +819,6 @@ }(forms.FormArray));

var persistManager = manager || new LocalStorageManager();
return this.restore(key, persistManager, arrControlFactory).pipe(operators.switchMap(function () {
return persistValue$(_this, key, {
debounceTime: debounceTime || 250,
manager: persistManager
});
}));
return this.restore(key, persistManager, arrControlFactory).pipe(operators.switchMap(function () { return persistValue$(_this, key, {
debounceTime: debounceTime || 250,
manager: persistManager
}); }));
};

@@ -784,8 +875,8 @@ FormGroup.prototype.restore = function (key, manager, arrControlFactory) {

};
FormBuilder.ɵprov = core.ɵɵdefineInjectable({ factory: function FormBuilder_Factory() { return new FormBuilder(); }, token: FormBuilder, providedIn: "root" });
FormBuilder = __decorate([
core.Injectable({ providedIn: 'root' })
], FormBuilder);
return FormBuilder;
}(forms.FormBuilder));
FormBuilder.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormBuilder_Factory() { return new FormBuilder(); }, token: FormBuilder, providedIn: "root" });
FormBuilder.decorators = [
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
];

@@ -819,2 +910,6 @@ var ControlValueAccessor = /** @class */ (function () {

/**
* Generated bundle index. Do not edit.
*/
exports.ControlValueAccessor = ControlValueAccessor;

@@ -821,0 +916,0 @@ exports.FormArray = FormArray;

@@ -15,3 +15,3 @@ !function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@ngneat/reactive-forms",["exports","@angular/forms","rxjs","rxjs/operators","@angular/core"],r):r(((t=t||self).ngneat=t.ngneat||{},t.ngneat["reactive-forms"]={}),t.ng.forms,t.rxjs,t.rxjs.operators,t.ng.core)}(this,(function(t,r,e,o,n){"use strict";

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var i=function(t,r){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])})(t,r)};function a(t,r){function e(){this.constructor=t}i(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}function s(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var o,n,i=e.call(t),a=[];try{for(;(void 0===r||r-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(n)throw n.error}}return a}function u(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(s(arguments[r]));return t}function p(t){return Array.isArray(t)?t:[t]}function l(t){return null==t}function c(t){return e.isObservable(t)||function(t){return"function"==typeof(null==t?void 0:t.then)}(t)?e.from(t):e.of(t)}function h(t){return t.getRawValue?t.getRawValue():t.value}function y(t){return e.merge(e.defer((function(){return e.of(h(t))})),t.valueChanges.pipe(o.map((function(){return h(t)}))))}function f(t){return e.merge(e.defer((function(){return e.of(t.disabled)})),t.statusChanges.pipe(o.map((function(){return t.disabled})),o.distinctUntilChanged()))}function d(t){return e.merge(e.defer((function(){return e.of(t.enabled)})),t.statusChanges.pipe(o.map((function(){return t.enabled})),o.distinctUntilChanged()))}function g(t){return e.merge(e.defer((function(){return e.of(t.status)})),t.statusChanges.pipe(o.map((function(){return t.status})),o.distinctUntilChanged()))}function b(t){return e.merge(e.defer((function(){return e.of(t.errors)})),t.valueChanges.pipe(o.map((function(){return t.errors})),o.distinctUntilChanged((function(t,r){return function(t,r){return l(t)||l(r)?t===r:JSON.stringify(t)===JSON.stringify(r)}(t,r)}))))}function v(t,r,e){r?t.enable(e):t.disable(e)}function m(t,r,e){v(t,!r,e)}function V(t,r,e){return r.subscribe((function(r){return m(t,r,e)}))}function A(t,r,e){return r.subscribe((function(r){return v(t,r,e)}))}function C(t,r){t.setValidators(u([t.validator],p(r))),t.updateValueAndValidity()}function O(t,r){return r.subscribe((function(r){t.setErrors(r)}))}function E(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.touched}function k(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.dirty}function w(t){t.markAsDirty({onlySelf:!0}),t._forEachChild((function(t){return t.markAllAsDirty()}))}var j=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=b(a),a}return a(r,t),r.prototype.select=function(t){return this.value$.pipe(o.map(t),o.distinctUntilChanged())},r.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},r.prototype.at=function(r){return t.prototype.at.call(this,r)},r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.push=function(r){return t.prototype.push.call(this,r)},r.prototype.insert=function(r,e){return t.prototype.insert.call(this,r,e)},r.prototype.setControl=function(r,e){return t.prototype.setControl.call(this,r,e)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){w(this)},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){var r=this;return t.subscribe((function(t){r.setErrors(t)}))},r.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t,r){return E(this,t,r)},r.prototype.hasErrorAndDirty=function(t,r){return k(this,t,r)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),v(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r}(r.FormArray),S=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=b(a),a}return a(r,t),r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){this.markAsDirty({onlySelf:!0})},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){return O(this,t)},r.prototype.getError=function(r){return t.prototype.getError.call(this,r)},r.prototype.hasError=function(r){return t.prototype.hasError.call(this,r)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t){return E(this,t)},r.prototype.hasErrorAndDirty=function(t){return k(this,t)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),v(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r}(r.FormControl),$=function(){function t(){}return t.prototype.setValue=function(t,r){return localStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(localStorage.getItem(t)||"{}")},t}(),x=function(t){function n(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=b(a),a}return a(n,t),n.prototype.select=function(t){return function(t,r){return t.value$.pipe(o.map(r),o.distinctUntilChanged())}(this,t)},n.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},n.prototype.get=function(r){return t.prototype.get.call(this,r)},n.prototype.getControl=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return this.get(t.join("."))},n.prototype.addControl=function(r,e){t.prototype.addControl.call(this,r,e)},n.prototype.removeControl=function(r){t.prototype.removeControl.call(this,r)},n.prototype.contains=function(r){return t.prototype.contains.call(this,r)},n.prototype.setControl=function(r,e){t.prototype.setControl.call(this,r,e)},n.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},n.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},n.prototype.disabledWhile=function(t,r){return V(this,t,r)},n.prototype.enabledWhile=function(t,r){return A(this,t,r)},n.prototype.mergeValidators=function(t){C(this,t)},n.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},n.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},n.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},n.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},n.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},n.prototype.markAllAsDirty=function(){w(this)},n.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},n.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.validateOn=function(t){return O(this,t)},n.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},n.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},n.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},n.prototype.hasErrorAndTouched=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return E.apply(void 0,u([this,t],r))},n.prototype.hasErrorAndDirty=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return k.apply(void 0,u([this,t],r))},n.prototype.setEnable=function(t,r){void 0===t&&(t=!0),v(this,t,r)},n.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},n.prototype.persist=function(t,r){var e=this,n=r.debounceTime,i=r.manager,a=r.arrControlFactory,s=i||new $;return this.restore(t,s,a).pipe(o.switchMap((function(){return function(t,r,e){return t.valueChanges.pipe(o.debounceTime(e.debounceTime),o.switchMap((function(t){return c(e.manager.setValue(r,t))})))}(e,t,{debounceTime:n||250,manager:s})})))},n.prototype.restore=function(t,e,n){var i=this;return c(e.getValue(t)).pipe(o.take(1),o.tap((function(t){t&&(!function(t,e,o){Object.keys(e).forEach((function(n){var i=e[n];if(Array.isArray(i)&&t.get(n)instanceof r.FormArray){if(!o||o&&!(n in o))throw new Error("Please provide arrControlFactory for "+n);var a=t.get(n),s=o[n];!function(t){for(;0!==t.length;)t.removeAt(0)}(a),i.forEach((function(t,r){return a.insert(r,s(t))}))}}))}(i,t,n),i.patchValue(t,{emitEvent:!1}))})))},n}(r.FormGroup);var D=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return a(r,t),r.prototype.group=function(t,r){var e,o=this._reduceControls(t),n=null,i=null;return null!=r&&(!function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(r)?(n=null!=r.validator?r.validator:null,i=null!=r.asyncValidator?r.asyncValidator:null):(n=null!=r.validators?r.validators:null,i=null!=r.asyncValidators?r.asyncValidators:null,e=null!=r.updateOn?r.updateOn:void 0)),new x(o,{asyncValidators:i,updateOn:e,validators:n})},r.prototype.control=function(t,r,e){return new S(t,r,e)},r.prototype.array=function(t,r,e){var o=this,n=t.map((function(t){return o._createControl(t)}));return new j(n,r,e)},r.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new r},token:r,providedIn:"root"}),r=function(t,r,e,o){var n,i=arguments.length,a=i<3?r:null===o?o=Object.getOwnPropertyDescriptor(r,e):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,r,e,o);else for(var s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(r,e,a):n(r,e))||a);return i>3&&a&&Object.defineProperty(r,e,a),a}([n.Injectable({providedIn:"root"})],r)}(r.FormBuilder),U=function(){function t(){this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),T=function(){function t(){}return t.prototype.setValue=function(t,r){return sessionStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(sessionStorage.getItem(t)||"{}")},t}();t.ControlValueAccessor=U,t.FormArray=j,t.FormBuilder=D,t.FormControl=S,t.FormGroup=x,t.LocalStorageManager=$,t.SessionStorageManager=T,Object.defineProperty(t,"__esModule",{value:!0})}));
***************************************************************************** */var i=function(t,r){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])})(t,r)};function a(t,r){function e(){this.constructor=t}i(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}Object.create;function s(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var o,n,i=e.call(t),a=[];try{for(;(void 0===r||r-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(n)throw n.error}}return a}function u(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(s(arguments[r]));return t}Object.create;function p(t){return Array.isArray(t)?t:[t]}function l(t){return null==t}function c(t){return e.isObservable(t)||function(t){return"function"==typeof(null==t?void 0:t.then)}(t)?e.from(t):e.of(t)}function h(t){return t.getRawValue?t.getRawValue():t.value}function y(t){return e.merge(e.defer((function(){return e.of(h(t))})),t.valueChanges.pipe(o.map((function(){return h(t)}))))}function f(t){return e.merge(e.defer((function(){return e.of(t.disabled)})),t.statusChanges.pipe(o.map((function(){return t.disabled})),o.distinctUntilChanged()))}function d(t){return e.merge(e.defer((function(){return e.of(t.enabled)})),t.statusChanges.pipe(o.map((function(){return t.enabled})),o.distinctUntilChanged()))}function g(t){return e.merge(e.defer((function(){return e.of(t.status)})),t.statusChanges.pipe(o.map((function(){return t.status})),o.distinctUntilChanged()))}function v(t){return e.merge(e.defer((function(){return e.of(t.errors)})),t.valueChanges.pipe(o.map((function(){return t.errors})),o.distinctUntilChanged((function(t,r){return function(t,r){return l(t)||l(r)?t===r:JSON.stringify(t)===JSON.stringify(r)}(t,r)}))))}function b(t,r,e){r?t.enable(e):t.disable(e)}function m(t,r,e){b(t,!r,e)}function V(t,r,e){return r.subscribe((function(r){return m(t,r,e)}))}function A(t,r,e){return r.subscribe((function(r){return b(t,r,e)}))}function C(t,r){t.setValidators(u([t.validator],p(r))),t.updateValueAndValidity()}function E(t,r){return r.subscribe((function(r){t.setErrors(r)}))}function O(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.touched}function k(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.dirty}function w(t){t.markAsDirty({onlySelf:!0}),t._forEachChild((function(t){return t.markAllAsDirty()}))}var S=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(r,t),r.prototype.select=function(t){return this.value$.pipe(o.map(t),o.distinctUntilChanged())},r.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},r.prototype.at=function(r){return t.prototype.at.call(this,r)},r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.push=function(r){return t.prototype.push.call(this,r)},r.prototype.insert=function(r,e){return t.prototype.insert.call(this,r,e)},r.prototype.setControl=function(r,e){return t.prototype.setControl.call(this,r,e)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){w(this)},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){var r=this;return t.subscribe((function(t){r.setErrors(t)}))},r.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t,r){return O(this,t,r)},r.prototype.hasErrorAndDirty=function(t,r){return k(this,t,r)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r.prototype.remove=function(t){this.removeWhen((function(r){return r.value===t}))},r.prototype.removeWhen=function(t){for(var r=this.length-1;r>=0;--r)t(this.at(r))&&this.removeAt(r)},r}(r.FormArray),$=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(r,t),r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){this.markAsDirty({onlySelf:!0})},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){return E(this,t)},r.prototype.getError=function(r){return t.prototype.getError.call(this,r)},r.prototype.hasError=function(r){return t.prototype.hasError.call(this,r)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t){return O(this,t)},r.prototype.hasErrorAndDirty=function(t){return k(this,t)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r}(r.FormControl),j=function(){function t(){}return t.prototype.setValue=function(t,r){return localStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(localStorage.getItem(t)||"{}")},t}(),x=function(t){function n(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(n,t),n.prototype.select=function(t){return function(t,r){return t.value$.pipe(o.map(r),o.distinctUntilChanged())}(this,t)},n.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},n.prototype.get=function(r){return t.prototype.get.call(this,r)},n.prototype.getControl=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return this.get(t.join("."))},n.prototype.addControl=function(r,e){t.prototype.addControl.call(this,r,e)},n.prototype.removeControl=function(r){t.prototype.removeControl.call(this,r)},n.prototype.contains=function(r){return t.prototype.contains.call(this,r)},n.prototype.setControl=function(r,e){t.prototype.setControl.call(this,r,e)},n.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},n.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},n.prototype.disabledWhile=function(t,r){return V(this,t,r)},n.prototype.enabledWhile=function(t,r){return A(this,t,r)},n.prototype.mergeValidators=function(t){C(this,t)},n.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},n.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},n.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},n.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},n.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},n.prototype.markAllAsDirty=function(){w(this)},n.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},n.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.validateOn=function(t){return E(this,t)},n.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},n.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},n.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},n.prototype.hasErrorAndTouched=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return O.apply(void 0,u([this,t],r))},n.prototype.hasErrorAndDirty=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return k.apply(void 0,u([this,t],r))},n.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},n.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},n.prototype.persist=function(t,r){var e=this,n=r.debounceTime,i=r.manager,a=r.arrControlFactory,s=i||new j;return this.restore(t,s,a).pipe(o.switchMap((function(){return function(t,r,e){return t.valueChanges.pipe(o.debounceTime(e.debounceTime),o.switchMap((function(t){return c(e.manager.setValue(r,t))})))}(e,t,{debounceTime:n||250,manager:s})})))},n.prototype.restore=function(t,e,n){var i=this;return c(e.getValue(t)).pipe(o.take(1),o.tap((function(t){t&&(!function(t,e,o){Object.keys(e).forEach((function(n){var i=e[n];if(Array.isArray(i)&&t.get(n)instanceof r.FormArray){if(!o||o&&!(n in o))throw new Error("Please provide arrControlFactory for "+n);var a=t.get(n),s=o[n];!function(t){for(;0!==t.length;)t.removeAt(0)}(a),i.forEach((function(t,r){return a.insert(r,s(t))}))}}))}(i,t,n),i.patchValue(t,{emitEvent:!1}))})))},n}(r.FormGroup);var D=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return a(r,t),r.prototype.group=function(t,r){var e,o=this._reduceControls(t),n=null,i=null;return null!=r&&(!function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(r)?(n=null!=r.validator?r.validator:null,i=null!=r.asyncValidator?r.asyncValidator:null):(n=null!=r.validators?r.validators:null,i=null!=r.asyncValidators?r.asyncValidators:null,e=null!=r.updateOn?r.updateOn:void 0)),new x(o,{asyncValidators:i,updateOn:e,validators:n})},r.prototype.control=function(t,r,e){return new $(t,r,e)},r.prototype.array=function(t,r,e){var o=this,n=t.map((function(t){return o._createControl(t)}));return new S(n,r,e)},r}(r.FormBuilder);D.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new D},token:D,providedIn:"root"}),D.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}];var U=function(){function t(){this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),T=function(){function t(){}return t.prototype.setValue=function(t,r){return sessionStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(sessionStorage.getItem(t)||"{}")},t}();t.ControlValueAccessor=U,t.FormArray=S,t.FormBuilder=D,t.FormControl=$,t.FormGroup=x,t.LocalStorageManager=j,t.SessionStorageManager=T,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngneat-reactive-forms.umd.min.js.map

@@ -95,2 +95,2 @@ import { FormArray as NgFormArray } from '@angular/forms';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC9yZWFjdGl2ZS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9sLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFPLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWF6RixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVqRSxTQUFTLGVBQWUsQ0FBSSxPQUEyQjtJQUNyRCxJQUFLLE9BQWUsQ0FBQyxXQUFXLEVBQUU7UUFDaEMsT0FBUSxPQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDdkM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLENBQTBCLEVBQUUsQ0FBMEI7SUFDM0UsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNoQjtJQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUksT0FBMkI7SUFDakUsT0FBTyxLQUFLLENBQ1YsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUN6QyxPQUFPLENBQUMs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QUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQWdCLENBQUM7WUFDeEQsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFvQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycywgRm9ybUFycmF5IGFzIE5nRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVmZXIsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YXAsIGRlYm91bmNlVGltZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnLi9mb3JtQXJyYXknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICcuL2Zvcm1Db250cm9sJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJy4vZm9ybUdyb3VwJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbE9wdGlvbnMsXG4gIENvbnRyb2xTdGF0ZSxcbiAgVmFsaWRhdG9yRm4sXG4gIENvbnRyb2xQYXRoLFxuICBQZXJzaXN0T3B0aW9ucyxcbiAgQ29udHJvbEZhY3RvcnlNYXBcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSwgaXNOaWwsIHdyYXBJbnRvT2JzZXJ2YWJsZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBnZXRDb250cm9sVmFsdWU8VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogVCB7XG4gIGlmICgoY29udHJvbCBhcyBhbnkpLmdldFJhd1ZhbHVlKSB7XG4gICAgcmV0dXJuIChjb250cm9sIGFzIGFueSkuZ2V0UmF3VmFsdWUoKTtcbiAgfVxuICByZXR1cm4gY29udHJvbC52YWx1ZTtcbn1cblxuZnVuY3Rpb24gY29tcGFyZUVycm9ycyhhOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgYjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcbiAgaWYgKGlzTmlsKGEpIHx8IGlzTmlsKGIpKSB7XG4gICAgcmV0dXJuIGEgPT09IGI7XG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gbWVyZ2UoXG4gICAgZGVmZXIoKCkgPT4gb2YoZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wpKSksXG4gICAgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKCkgPT4gZ2V0Q29udHJvbFZhbHVlKGNvbnRyb2wpKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xEaXNhYmxlZCQ8VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gIHJldHVybiBtZXJnZShcbiAgICBkZWZlcigoKSA9PiBvZihjb250cm9sLmRpc2FibGVkKSksXG4gICAgY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gY29udHJvbC5kaXNhYmxlZCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbEVuYWJsZWQkPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gbWVyZ2UoXG4gICAgZGVmZXIoKCkgPT4gb2YoY29udHJvbC5lbmFibGVkKSksXG4gICAgY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gY29udHJvbC5lbmFibGVkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sU3RhdHVzQ2hhbmdlcyQ8VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogT2JzZXJ2YWJsZTxDb250cm9sU3RhdGU+IHtcbiAgcmV0dXJuIG1lcmdlKFxuICAgIGRlZmVyKCgpID0+IG9mKGNvbnRyb2wuc3RhdHVzIGFzIENvbnRyb2xTdGF0ZSkpLFxuICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuc3RhdHVzIGFzIENvbnRyb2xTdGF0ZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogT2JzZXJ2YWJsZTxFIHwgbnVsbD4ge1xuICByZXR1cm4gbWVyZ2UoXG4gICAgZGVmZXIoKCkgPT4gb2YoY29udHJvbC5lcnJvcnMgYXMgRSkpLFxuICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gY29udHJvbC5lcnJvcnMgYXMgRSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gY29tcGFyZUVycm9ycyhhLCBiKSlcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVDb250cm9sPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPiwgZW5hYmxlZDogYm9vbGVhbiwgb3B0cz86IENvbnRyb2xPcHRpb25zKTogdm9pZCB7XG4gIGlmIChlbmFibGVkKSB7XG4gICAgY29udHJvbC5lbmFibGUob3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgY29udHJvbC5kaXNhYmxlKG9wdHMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlQ29udHJvbDxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sIGRpc2FibGVkOiBib29sZWFuLCBvcHRzPzogQ29udHJvbE9wdGlvbnMpOiB2b2lkIHtcbiAgZW5hYmxlQ29udHJvbChjb250cm9sLCAhZGlzYWJsZWQsIG9wdHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbERpc2FibGVkV2hpbGU8VD4oXG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPixcbiAgb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPixcbiAgb3B0cz86IENvbnRyb2xPcHRpb25zXG4pOiBTdWJzY3JpcHRpb24ge1xuICByZXR1cm4gb2JzZXJ2YWJsZS5zdWJzY3JpYmUoaXNEaXNhYmxlZCA9PiBkaXNhYmxlQ29udHJvbChjb250cm9sLCBpc0Rpc2FibGVkLCBvcHRzKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sRW5hYmxlZFdoaWxlPFQ+KFxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sXG4gIG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gIG9wdHM/OiBDb250cm9sT3B0aW9uc1xuKTogU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIG9ic2VydmFibGUuc3Vic2NyaWJlKGlzRW5hYmxlZCA9PiBlbmFibGVDb250cm9sKGNvbnRyb2wsIGlzRW5hYmxlZCwgb3B0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VDb250cm9sVmFsaWRhdG9yczxULCBDb250cm9sIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPFQ+PihcbiAgY29udHJvbDogQ29udHJvbCxcbiAgdmFsaWRhdG9yczogVmFsaWRhdG9yRm48VD4gfCBWYWxpZGF0b3JGbjxUPltdXG4pOiB2b2lkIHtcbiAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFtjb250cm9sLnZhbGlkYXRvciwgLi4uY29lcmNlQXJyYXkodmFsaWRhdG9ycyldKTtcbiAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvbnRyb2xPbjxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sIHZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pOiBTdWJzY3JpcHRpb24ge1xuICByZXR1cm4gdmFsaWRhdGlvbi5zdWJzY3JpYmUobWF5YmVFcnJvciA9PiB7XG4gICAgY29udHJvbC5zZXRFcnJvcnMobWF5YmVFcnJvcik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRXJyb3JBbmRUb3VjaGVkPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPiwgZXJyb3I6IHN0cmluZywgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29udHJvbC5oYXNFcnJvcihlcnJvciwgIXBhdGggfHwgcGF0aC5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiBwYXRoKTtcbiAgcmV0dXJuIGhhc0Vycm9yICYmIGNvbnRyb2wudG91Y2hlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Vycm9yQW5kRGlydHk8VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+LCBlcnJvcjogc3RyaW5nLCBwYXRoPzogQ29udHJvbFBhdGgpOiBib29sZWFuIHtcbiAgY29uc3QgaGFzRXJyb3IgPSBjb250cm9sLmhhc0Vycm9yKGVycm9yLCAhcGF0aCB8fCBwYXRoLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHBhdGgpO1xuICByZXR1cm4gaGFzRXJyb3IgJiYgY29udHJvbC5kaXJ0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtBbGxEaXJ0eTxUPihjb250cm9sOiBGb3JtQXJyYXk8VD4gfCBGb3JtR3JvdXA8VD4pOiB2b2lkIHtcbiAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAoY29udHJvbCBhcyBhbnkpLl9mb3JFYWNoQ2hpbGQoY29udHJvbCA9PiBjb250cm9sLm1hcmtBbGxBc0RpcnR5KCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0Q29udHJvbFZhbHVlJDxULCBSPihcbiAgY29udHJvbDogRm9ybUdyb3VwPFQ+IHwgRm9ybUFycmF5PFQ+IHwgRm9ybUNvbnRyb2w8VD4sXG4gIG1hcEZuOiAoc3RhdGU6IFQgfCBUW10pID0+IFJcbik6IE9ic2VydmFibGU8Uj4ge1xuICByZXR1cm4gKGNvbnRyb2wudmFsdWUkIGFzIE9ic2VydmFibGU8YW55PikucGlwZShtYXAobWFwRm4pLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcnNpc3RWYWx1ZSQ8VD4oY29udHJvbDogRm9ybUdyb3VwPFQ+LCBrZXk6IHN0cmluZywgb3B0aW9uczogUGVyc2lzdE9wdGlvbnM8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKG9wdGlvbnMuZGVib3VuY2VUaW1lKSxcbiAgICBzd2l0Y2hNYXAodmFsdWUgPT4gd3JhcEludG9PYnNlcnZhYmxlKG9wdGlvbnMubWFuYWdlci5zZXRWYWx1ZShrZXksIHZhbHVlKSkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGb3JtQXJyYXlzPFQ+KFxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sXG4gIGZvcm1WYWx1ZTogVCxcbiAgYXJyQ29udHJvbEZhY3Rvcnk6IENvbnRyb2xGYWN0b3J5TWFwPFQ+XG4pIHtcbiAgT2JqZWN0LmtleXMoZm9ybVZhbHVlKS5mb3JFYWNoKGNvbnRyb2xOYW1lID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGZvcm1WYWx1ZVtjb250cm9sTmFtZV07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIGNvbnRyb2wuZ2V0KGNvbnRyb2xOYW1lKSBpbnN0YW5jZW9mIE5nRm9ybUFycmF5KSB7XG4gICAgICBpZiAoIWFyckNvbnRyb2xGYWN0b3J5IHx8IChhcnJDb250cm9sRmFjdG9yeSAmJiAhKGNvbnRyb2xOYW1lIGluIGFyckNvbnRyb2xGYWN0b3J5KSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgcHJvdmlkZSBhcnJDb250cm9sRmFjdG9yeSBmb3IgJHtjb250cm9sTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBjb250cm9sLmdldChjb250cm9sTmFtZSkgYXMgTmdGb3JtQXJyYXk7XG4gICAgICBjb25zdCBmYyA9IGFyckNvbnRyb2xGYWN0b3J5W2NvbnRyb2xOYW1lXTtcbiAgICAgIGNsZWFyRm9ybUFycmF5KGN1cnJlbnQpO1xuICAgICAgdmFsdWUuZm9yRWFjaCgodiwgaSkgPT4gY3VycmVudC5pbnNlcnQoaSwgZmModikpKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJGb3JtQXJyYXkoY29udHJvbDogTmdGb3JtQXJyYXkpIHtcbiAgd2hpbGUgKGNvbnRyb2wubGVuZ3RoICE9PSAwKSB7XG4gICAgY29udHJvbC5yZW1vdmVBdCgwKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvY29udHJvbC1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxJQUFJLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBTyxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFhekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakUsU0FBUyxlQUFlLENBQUksT0FBMkI7SUFDckQsSUFBSyxPQUFlLENBQUMsV0FBVyxFQUFFO1FBQ2hDLE9BQVEsT0FBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxDQUEwQixFQUFFLENBQTBCO0lBQzNFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEI7SUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLE9BQTJCO0lBQ2pFLE9BQU8sS0FBSyxDQUNWLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFD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Q0FBQzthQUN4RTtZQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFnQixDQUFDO1lBQ3hELE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBb0I7SUFDakQsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUMzQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMsIEZvcm1BcnJheSBhcyBOZ0Zvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlZmVyLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFwLCBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJy4vZm9ybUFycmF5JztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnLi9mb3JtQ29udHJvbCc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICcuL2Zvcm1Hcm91cCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sU3RhdGUsXG4gIFZhbGlkYXRvckZuLFxuICBDb250cm9sUGF0aCxcbiAgUGVyc2lzdE9wdGlvbnMsXG4gIENvbnRyb2xGYWN0b3J5TWFwXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIGlzTmlsLCB3cmFwSW50b09ic2VydmFibGUgfSBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZ2V0Q29udHJvbFZhbHVlPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IFQge1xuICBpZiAoKGNvbnRyb2wgYXMgYW55KS5nZXRSYXdWYWx1ZSkge1xuICAgIHJldHVybiAoY29udHJvbCBhcyBhbnkpLmdldFJhd1ZhbHVlKCk7XG4gIH1cbiAgcmV0dXJuIGNvbnRyb2wudmFsdWU7XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVFcnJvcnMoYTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwsIGI6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XG4gIGlmIChpc05pbChhKSB8fCBpc05pbChiKSkge1xuICAgIHJldHVybiBhID09PSBiO1xuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sVmFsdWVDaGFuZ2VzJDxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG1lcmdlKFxuICAgIGRlZmVyKCgpID0+IG9mKGdldENvbnRyb2xWYWx1ZShjb250cm9sKSkpLFxuICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUobWFwKCgpID0+IGdldENvbnRyb2xWYWx1ZShjb250cm9sKSkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sRGlzYWJsZWQkPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICByZXR1cm4gbWVyZ2UoXG4gICAgZGVmZXIoKCkgPT4gb2YoY29udHJvbC5kaXNhYmxlZCkpLFxuICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuZGlzYWJsZWQpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xFbmFibGVkJDxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIG1lcmdlKFxuICAgIGRlZmVyKCgpID0+IG9mKGNvbnRyb2wuZW5hYmxlZCkpLFxuICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuZW5hYmxlZCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbFN0YXR1c0NoYW5nZXMkPFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPiB7XG4gIHJldHVybiBtZXJnZShcbiAgICBkZWZlcigoKSA9PiBvZihjb250cm9sLnN0YXR1cyBhcyBDb250cm9sU3RhdGUpKSxcbiAgICBjb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgIG1hcCgoKSA9PiBjb250cm9sLnN0YXR1cyBhcyBDb250cm9sU3RhdGUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xFcnJvckNoYW5nZXMkPEU+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE9ic2VydmFibGU8RSB8IG51bGw+IHtcbiAgcmV0dXJuIG1lcmdlKFxuICAgIGRlZmVyKCgpID0+IG9mKGNvbnRyb2wuZXJyb3JzIGFzIEUpKSxcbiAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgbWFwKCgpID0+IGNvbnRyb2wuZXJyb3JzIGFzIEUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGNvbXBhcmVFcnJvcnMoYSwgYikpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlQ29udHJvbDxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sIGVuYWJsZWQ6IGJvb2xlYW4sIG9wdHM/OiBDb250cm9sT3B0aW9ucyk6IHZvaWQge1xuICBpZiAoZW5hYmxlZCkge1xuICAgIGNvbnRyb2wuZW5hYmxlKG9wdHMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRyb2wuZGlzYWJsZShvcHRzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZUNvbnRyb2w8VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+LCBkaXNhYmxlZDogYm9vbGVhbiwgb3B0cz86IENvbnRyb2xPcHRpb25zKTogdm9pZCB7XG4gIGVuYWJsZUNvbnRyb2woY29udHJvbCwgIWRpc2FibGVkLCBvcHRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xEaXNhYmxlZFdoaWxlPFQ+KFxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sXG4gIG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sXG4gIG9wdHM/OiBDb250cm9sT3B0aW9uc1xuKTogU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIG9ic2VydmFibGUuc3Vic2NyaWJlKGlzRGlzYWJsZWQgPT4gZGlzYWJsZUNvbnRyb2woY29udHJvbCwgaXNEaXNhYmxlZCwgb3B0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbEVuYWJsZWRXaGlsZTxUPihcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+LFxuICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuICBvcHRzPzogQ29udHJvbE9wdGlvbnNcbik6IFN1YnNjcmlwdGlvbiB7XG4gIHJldHVybiBvYnNlcnZhYmxlLnN1YnNjcmliZShpc0VuYWJsZWQgPT4gZW5hYmxlQ29udHJvbChjb250cm9sLCBpc0VuYWJsZWQsIG9wdHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ29udHJvbFZhbGlkYXRvcnM8VCwgQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbDxUPj4oXG4gIGNvbnRyb2w6IENvbnRyb2wsXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuPFQ+IHwgVmFsaWRhdG9yRm48VD5bXVxuKTogdm9pZCB7XG4gIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbY29udHJvbC52YWxpZGF0b3IsIC4uLmNvZXJjZUFycmF5KHZhbGlkYXRvcnMpXSk7XG4gIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDb250cm9sT248VD4oY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+LCB2YWxpZGF0aW9uOiBPYnNlcnZhYmxlPG51bGwgfCBvYmplY3Q+KTogU3Vic2NyaXB0aW9uIHtcbiAgcmV0dXJuIHZhbGlkYXRpb24uc3Vic2NyaWJlKG1heWJlRXJyb3IgPT4ge1xuICAgIGNvbnRyb2wuc2V0RXJyb3JzKG1heWJlRXJyb3IpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Vycm9yQW5kVG91Y2hlZDxUPihjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4sIGVycm9yOiBzdHJpbmcsIHBhdGg/OiBDb250cm9sUGF0aCk6IGJvb2xlYW4ge1xuICBjb25zdCBoYXNFcnJvciA9IGNvbnRyb2wuaGFzRXJyb3IoZXJyb3IsICFwYXRoIHx8IHBhdGgubGVuZ3RoID09PSAwID8gdW5kZWZpbmVkIDogcGF0aCk7XG4gIHJldHVybiBoYXNFcnJvciAmJiBjb250cm9sLnRvdWNoZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNFcnJvckFuZERpcnR5PFQ+KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPiwgZXJyb3I6IHN0cmluZywgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gIGNvbnN0IGhhc0Vycm9yID0gY29udHJvbC5oYXNFcnJvcihlcnJvciwgIXBhdGggfHwgcGF0aC5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiBwYXRoKTtcbiAgcmV0dXJuIGhhc0Vycm9yICYmIGNvbnRyb2wuZGlydHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQWxsRGlydHk8VD4oY29udHJvbDogRm9ybUFycmF5PFQ+IHwgRm9ybUdyb3VwPFQ+KTogdm9pZCB7XG4gIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgKGNvbnRyb2wgYXMgYW55KS5fZm9yRWFjaENoaWxkKGNvbnRyb2wgPT4gY29udHJvbC5tYXJrQWxsQXNEaXJ0eSgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdENvbnRyb2xWYWx1ZSQ8VCwgUj4oXG4gIGNvbnRyb2w6IEZvcm1Hcm91cDxUPiB8IEZvcm1BcnJheTxUPiB8IEZvcm1Db250cm9sPFQ+LFxuICBtYXBGbjogKHN0YXRlOiBUIHwgVFtdKSA9PiBSXG4pOiBPYnNlcnZhYmxlPFI+IHtcbiAgcmV0dXJuIChjb250cm9sLnZhbHVlJCBhcyBPYnNlcnZhYmxlPGFueT4pLnBpcGUobWFwKG1hcEZuKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwZXJzaXN0VmFsdWUkPFQ+KGNvbnRyb2w6IEZvcm1Hcm91cDxUPiwga2V5OiBzdHJpbmcsIG9wdGlvbnM6IFBlcnNpc3RPcHRpb25zPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgIGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlVGltZSksXG4gICAgc3dpdGNoTWFwKHZhbHVlID0+IHdyYXBJbnRvT2JzZXJ2YWJsZShvcHRpb25zLm1hbmFnZXIuc2V0VmFsdWUoa2V5LCB2YWx1ZSkpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRm9ybUFycmF5czxUPihcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+LFxuICBmb3JtVmFsdWU6IFQsXG4gIGFyckNvbnRyb2xGYWN0b3J5OiBDb250cm9sRmFjdG9yeU1hcDxUPlxuKSB7XG4gIE9iamVjdC5rZXlzKGZvcm1WYWx1ZSkuZm9yRWFjaChjb250cm9sTmFtZSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBmb3JtVmFsdWVbY29udHJvbE5hbWVdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBjb250cm9sLmdldChjb250cm9sTmFtZSkgaW5zdGFuY2VvZiBOZ0Zvcm1BcnJheSkge1xuICAgICAgaWYgKCFhcnJDb250cm9sRmFjdG9yeSB8fCAoYXJyQ29udHJvbEZhY3RvcnkgJiYgIShjb250cm9sTmFtZSBpbiBhcnJDb250cm9sRmFjdG9yeSkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYXJyQ29udHJvbEZhY3RvcnkgZm9yICR7Y29udHJvbE5hbWV9YCk7XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50ID0gY29udHJvbC5nZXQoY29udHJvbE5hbWUpIGFzIE5nRm9ybUFycmF5O1xuICAgICAgY29uc3QgZmMgPSBhcnJDb250cm9sRmFjdG9yeVtjb250cm9sTmFtZV07XG4gICAgICBjbGVhckZvcm1BcnJheShjdXJyZW50KTtcbiAgICAgIHZhbHVlLmZvckVhY2goKHYsIGkpID0+IGN1cnJlbnQuaW5zZXJ0KGksIGZjKHYpKSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyRm9ybUFycmF5KGNvbnRyb2w6IE5nRm9ybUFycmF5KSB7XG4gIHdoaWxlIChjb250cm9sLmxlbmd0aCAhPT0gMCkge1xuICAgIGNvbnRyb2wucmVtb3ZlQXQoMCk7XG4gIH1cbn1cbiJdfQ==

@@ -13,2 +13,2 @@ export class ControlValueAccessor {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbFZhbHVlQWNjZXNzb3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL2NvbnRyb2xWYWx1ZUFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0Isb0JBQW9CO0lBQTFDO1FBR0UsYUFBUSxHQUFJLENBQUMsS0FBZSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFJLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVN4QixDQUFDO0lBUEMsZ0JBQWdCLENBQUMsRUFBNkI7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgYXMgTmdDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRyb2xWYWx1ZUFjY2Vzc29yPFQgPSBhbnk+IGltcGxlbWVudHMgTmdDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkO1xuXG4gIG9uQ2hhbmdlPyA9ICh2YWx1ZTogVCB8IG51bGwpID0+IHt9O1xuICBvblRvdWNoZWQ/ID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbFZhbHVlQWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9jb250cm9sVmFsdWVBY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLG9CQUFvQjtJQUExQztRQUdFLGFBQVEsR0FBSSxDQUFDLEtBQWUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3BDLGNBQVMsR0FBSSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFTeEIsQ0FBQztJQVBDLGdCQUFnQixDQUFDLEVBQTZCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIGFzIE5nQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250cm9sVmFsdWVBY2Nlc3NvcjxUID0gYW55PiBpbXBsZW1lbnRzIE5nQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBhYnN0cmFjdCB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZDtcblxuICBvbkNoYW5nZT8gPSAodmFsdWU6IFQgfCBudWxsKSA9PiB7fTtcbiAgb25Ub3VjaGVkPyA9ICgpID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbn1cbiJdfQ==

@@ -119,3 +119,14 @@ import { FormArray as NgFormArray } from '@angular/forms';

}
remove(value) {
this.removeWhen(v => v.value === value);
}
removeWhen(predicate) {
const toRemove = [];
for (let i = this.length - 1; i >= 0; --i) {
if (predicate(this.at(i))) {
this.removeAt(i);
}
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUFycmF5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC9yZWFjdGl2ZS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtQXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixzQkFBc0IsRUFDdkIsTUFBTSxtQkFBbUIsQ0FBQztBQWMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sT0FBTyxTQUEyQyxTQUFRLFdBQVc7SUFtQnpFLFlBQ1MsUUFBbUMsRUFDMUMsZUFBaUMsRUFDakMsY0FBK0I7UUFFL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFKMUMsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFicEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVyQyxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0Is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QUMsU0FBNEIsRUFBRSxJQUFrQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBeUIsRUFBRSxPQUFrQixFQUFFO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBOEIsU0FBWSxFQUFFLElBQWtCO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFnQixDQUFDO0lBQ3hELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUE0QixFQUFFLElBQWtCO1FBQ2pFLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBNEIsRUFBRSxJQUFrQjtRQUMvRCxPQUFPLGdCQUFnQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLElBQTBCO1FBQ2pELGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxJQUEwQjtRQUNuRCxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXkgYXMgTmdGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNvbnRyb2xEaXNhYmxlZCQsXG4gIGNvbnRyb2xEaXNhYmxlZFdoaWxlLFxuICBjb250cm9sRW5hYmxlZCQsXG4gIGNvbnRyb2xFbmFibGVkV2hpbGUsXG4gIGNvbnRyb2xFcnJvckNoYW5nZXMkLFxuICBjb250cm9sU3RhdHVzQ2hhbmdlcyQsXG4gIGNvbnRyb2xWYWx1ZUNoYW5nZXMkLFxuICBkaXNhYmxlQ29udHJvbCxcbiAgZW5hYmxlQ29udHJvbCxcbiAgaGFzRXJyb3JBbmREaXJ0eSxcbiAgaGFzRXJyb3JBbmRUb3VjaGVkLFxuICBtYXJrQWxsRGlydHksXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnNcbn0gZnJvbSAnLi9jb250cm9sLWFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBBc3luY1ZhbGlkYXRvcixcbiAgQ29udHJvbEV2ZW50T3B0aW9ucyxcbiAgQ29udHJvbE9wdGlvbnMsXG4gIENvbnRyb2xQYXRoLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIE9ubHlTZWxmLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0c1xufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtQXJyYXk8VCA9IGFueSwgRSBleHRlbmRzIG9iamVjdCA9IGFueT4gZXh0ZW5kcyBOZ0Zvcm1BcnJheSB7XG4gIHJlYWRvbmx5IHZhbHVlOiBUW107XG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUW10+O1xuICByZWFkb25seSBzdGF0dXM6IENvbnRyb2xTdGF0ZTtcbiAgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxDb250cm9sU3RhdGU+O1xuICByZWFkb25seSBlcnJvcnM6IEUgfCBudWxsO1xuXG4gIHByaXZhdGUgdG91Y2hDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBkaXJ0eUNoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IHRvdWNoJCA9IHRoaXMudG91Y2hDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIHJlYWRvbmx5IGRpcnR5JCA9IHRoaXMuZGlydHlDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gY29udHJvbFZhbHVlQ2hhbmdlcyQ8VFtdPih0aGlzKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gY29udHJvbERpc2FibGVkJCh0aGlzKTtcbiAgcmVhZG9ubHkgZW5hYmxlZCQgPSBjb250cm9sRW5hYmxlZCQodGhpcyk7XG4gIHJlYWRvbmx5IHN0YXR1cyQgPSBjb250cm9sU3RhdHVzQ2hhbmdlcyQodGhpcyk7XG4gIHJlYWRvbmx5IGVycm9ycyQgPSBjb250cm9sRXJyb3JDaGFuZ2VzJDxFPih0aGlzKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29udHJvbHM6IEFycmF5PEFic3RyYWN0Q29udHJvbDxUPj4sXG4gICAgdmFsaWRhdG9yT3JPcHRzPzogVmFsaWRhdG9yT3JPcHRzLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JcbiAgKSB7XG4gICAgc3VwZXIoY29udHJvbHMsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cbiAgc2VsZWN0PFI+KG1hcEZuOiAoc3RhdGU6IFRbXSkgPT4gUik6IE9ic2VydmFibGU8Uj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlJC5waXBlKG1hcChtYXBGbiksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0UmF3VmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIGF0KGluZGV4OiBudW1iZXIpOiBBYnN0cmFjdENvbnRyb2w8VD4ge1xuICAgIHJldHVybiBzdXBlci5hdChpbmRleCkgYXMgQWJzdHJhY3RDb250cm9sPFQ+O1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VFtdPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBUW10sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IFRbXSB8IE9ic2VydmFibGU8VFtdPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5zZXRWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VFtdPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IFRbXSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBhbnksIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKHZhbHVlOiBUW10pID0+IHN1cGVyLnBhdGNoVmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5wYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlIGFzIFRbXSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdXNoKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IHZvaWQge1xuICAgIHJldHVybiBzdXBlci5wdXNoKGNvbnRyb2wpO1xuICB9XG5cbiAgaW5zZXJ0KGluZGV4OiBudW1iZXIsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IHZvaWQge1xuICAgIHJldHVybiBzdXBlci5pbnNlcnQoaW5kZXgsIGNvbnRyb2wpO1xuICB9XG5cbiAgc2V0Q29udHJvbChpbmRleDogbnVtYmVyLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gc3VwZXIuc2V0Q29udHJvbChpbmRleCwgY29udHJvbCk7XG4gIH1cblxuICBkaXNhYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRGlzYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbEVuYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIG1lcmdlVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3IpIHtcbiAgICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzKHRoaXMsIHZhbGlkYXRvcnMpO1xuICB9XG5cbiAgbWVyZ2VBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3IpIHtcbiAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9ycyhbdGhpcy5hc3luY1ZhbGlkYXRvciwgLi4uY29lcmNlQXJyYXkodmFsaWRhdG9ycyldKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1VudG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzRGlydHkob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBbGxBc0RpcnR5KCk6IHZvaWQge1xuICAgIG1hcmtBbGxEaXJ0eSh0aGlzKTtcbiAgfVxuXG4gIHJlc2V0KHZhbHVlPzogVFtdLCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQge1xuICAgIHN1cGVyLnJlc2V0KHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogQXN5bmNWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICB2YWxpZGF0ZU9uKG9ic2VydmFibGVWYWxpZGF0aW9uOiBPYnNlcnZhYmxlPG51bGwgfCBvYmplY3Q+KSB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVWYWxpZGF0aW9uLnN1YnNjcmliZShtYXliZUVycm9yID0+IHtcbiAgICAgIHRoaXMuc2V0RXJyb3JzKG1heWJlRXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzRXJyb3IoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IENvbnRyb2xQYXRoKSB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gIH1cblxuICBzZXRFcnJvcnMoZXJyb3JzOiBQYXJ0aWFsPEU+IHwgbnVsbCwgb3B0czogRW1pdEV2ZW50ID0ge30pIHtcbiAgICByZXR1cm4gc3VwZXIuc2V0RXJyb3JzKGVycm9ycywgb3B0cyk7XG4gIH1cblxuICBnZXRFcnJvcjxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8RT4+KGVycm9yQ29kZTogSywgcGF0aD86IENvbnRyb2xQYXRoKSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldEVycm9yKGVycm9yQ29kZSwgcGF0aCkgYXMgRVtLXSB8IG51bGw7XG4gIH1cblxuICBoYXNFcnJvckFuZFRvdWNoZWQoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kVG91Y2hlZCh0aGlzLCBlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogQ29udHJvbFBhdGgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgc2V0RW5hYmxlKGVuYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZW5hYmxlQ29udHJvbCh0aGlzLCBlbmFibGUsIG9wdHMpO1xuICB9XG5cbiAgc2V0RGlzYWJsZShkaXNhYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBkaXNhYmxlQ29udHJvbCh0aGlzLCBkaXNhYmxlLCBvcHRzKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxNQUFNLE9BQU8sU0FBMkMsU0FBUSxXQUFXO0lBbUJ6RSxZQUNTLFFBQW1DLEVBQzFDLGVBQWlDLEVBQ2pDLGNBQStCO1FBRS9CLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSjFDLGFBQVEsR0FBUixRQUFRLENBQTJCO1FBYnBDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLFdBQU0sR0FBRyxvQkFBb0IsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUN6QyxjQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsWUFBTyxHQUFHLG9CQUFvQixDQUFJLElBQUksQ0FBQyxDQUFDO0lBUWpELENBQUM7SUFFRCxNQUFNLENBQUksS0FBd0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELEVBQUUsQ0FBQyxLQUFhO1FBQ2QsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBdUIsQ0FBQztJQUMvQyxDQUFDO0lBSUQsUUFBUSxDQUFDLGlCQUF3QyxFQUFFLE9BQTZCO1FBQzlFLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDbkMsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSUQsVUFBVSxDQUFDLGlCQUFzQixFQUFFLE9BQTZCO1FBQzlELElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDbkMsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDdEY7UUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUF3QixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBMkI7UUFDOUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLE9BQTJCO1FBQy9DLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBMkI7UUFDbkQsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQStCLEVBQUUsT0FBd0I7UUFDckUsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUFZLENBQUMsVUFBK0IsRUFBRSxPQUF3QjtRQUNwRSxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFxQjtRQUNuQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQTBCO1FBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBZTtRQUMzQixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBZTtRQUM3QixLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZTtRQUM1QixLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjO1FBQ1osWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBVyxFQUFFLE9BQTZCO1FBQzlDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhLENBQUMsWUFBdUI7UUFDbkMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBNEI7UUFDN0MsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsb0JBQStDO1FBQ3hELE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQTRCLEVBQUUsSUFBa0I7UUFDdkQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXlCLEVBQUUsT0FBa0IsRUFBRTtRQUN2RCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQThCLFNBQVksRUFBRSxJQUFrQjtRQUNwRSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBZ0IsQ0FBQztJQUN4RCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsU0FBNEIsRUFBRSxJQUFrQjtRQUNqRSxPQUFPLGtCQUFrQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQTRCLEVBQUUsSUFBa0I7UUFDL0QsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxJQUEwQjtRQUNqRCxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsSUFBMEI7UUFDbkQsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFtRDtRQUM1RCxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3pDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUFycmF5IGFzIE5nRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWFya0FsbERpcnR5LFxuICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sUGF0aCxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBPbmx5U2VsZixcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JPck9wdHNcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybUFycmF5PFQgPSBhbnksIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgTmdGb3JtQXJyYXkge1xuICByZWFkb25seSB2YWx1ZTogVFtdO1xuICByZWFkb25seSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VFtdPjtcbiAgcmVhZG9ubHkgc3RhdHVzOiBDb250cm9sU3RhdGU7XG4gIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPjtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcblxuICBwcml2YXRlIHRvdWNoQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZGlydHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB0b3VjaCQgPSB0aGlzLnRvdWNoQ2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBkaXJ0eSQgPSB0aGlzLmRpcnR5Q2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFRbXT4odGhpcyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IGNvbnRyb2xEaXNhYmxlZCQodGhpcyk7XG4gIHJlYWRvbmx5IGVuYWJsZWQkID0gY29udHJvbEVuYWJsZWQkKHRoaXMpO1xuICByZWFkb25seSBzdGF0dXMkID0gY29udHJvbFN0YXR1c0NoYW5nZXMkKHRoaXMpO1xuICByZWFkb25seSBlcnJvcnMkID0gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4odGhpcyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRyb2xzOiBBcnJheTxBYnN0cmFjdENvbnRyb2w8VD4+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvck9yT3B0cyxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNlbGVjdDxSPihtYXBGbjogKHN0YXRlOiBUW10pID0+IFIpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQucGlwZShtYXAobWFwRm4pLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldFJhd1ZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuICBhdChpbmRleDogbnVtYmVyKTogQWJzdHJhY3RDb250cm9sPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuYXQoaW5kZXgpIGFzIEFic3RyYWN0Q29udHJvbDxUPjtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVFtdLCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBUW10gfCBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIuc2V0VmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBUW10sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKCh2YWx1ZTogVFtdKSA9PiBzdXBlci5wYXRjaFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSBhcyBUW10sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVzaChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gc3VwZXIucHVzaChjb250cm9sKTtcbiAgfVxuXG4gIGluc2VydChpbmRleDogbnVtYmVyLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gc3VwZXIuaW5zZXJ0KGluZGV4LCBjb250cm9sKTtcbiAgfVxuXG4gIHNldENvbnRyb2woaW5kZXg6IG51bWJlciwgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogdm9pZCB7XG4gICAgcmV0dXJuIHN1cGVyLnNldENvbnRyb2woaW5kZXgsIGNvbnRyb2wpO1xuICB9XG5cbiAgZGlzYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbERpc2FibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlbmFibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xFbmFibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBtZXJnZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yKSB7XG4gICAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyh0aGlzLCB2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIG1lcmdlQXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgdGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuYXN5bmNWYWxpZGF0b3IsIC4uLmNvZXJjZUFycmF5KHZhbGlkYXRvcnMpXSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1RvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBc1VudG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQWxsQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICBtYXJrQWxsRGlydHkodGhpcyk7XG4gIH1cblxuICByZXNldCh2YWx1ZT86IFRbXSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldCh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgdmFsaWRhdGVPbihvYnNlcnZhYmxlVmFsaWRhdGlvbjogT2JzZXJ2YWJsZTxudWxsIHwgb2JqZWN0Pikge1xuICAgIHJldHVybiBvYnNlcnZhYmxlVmFsaWRhdGlvbi5zdWJzY3JpYmUobWF5YmVFcnJvciA9PiB7XG4gICAgICB0aGlzLnNldEVycm9ycyhtYXliZUVycm9yKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0Vycm9yKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBDb250cm9sUGF0aCkge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgc2V0RXJyb3JzKGVycm9yczogUGFydGlhbDxFPiB8IG51bGwsIG9wdHM6IEVtaXRFdmVudCA9IHt9KSB7XG4gICAgcmV0dXJuIHN1cGVyLnNldEVycm9ycyhlcnJvcnMsIG9wdHMpO1xuICB9XG5cbiAgZ2V0RXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEssIHBhdGg/OiBDb250cm9sUGF0aCkge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUsIHBhdGgpIGFzIEVbS10gfCBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBDb250cm9sUGF0aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kRGlydHkoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kRGlydHkodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIHNldEVuYWJsZShlbmFibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGVuYWJsZUNvbnRyb2wodGhpcywgZW5hYmxlLCBvcHRzKTtcbiAgfVxuXG4gIHNldERpc2FibGUoZGlzYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZGlzYWJsZUNvbnRyb2wodGhpcywgZGlzYWJsZSwgb3B0cyk7XG4gIH1cblxuICByZW1vdmUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVdoZW4odiA9PiB2LnZhbHVlID09PSB2YWx1ZSk7XG4gIH1cblxuICByZW1vdmVXaGVuKHByZWRpY2F0ZTogKGVsZW1lbnQ6IEFic3RyYWN0Q29udHJvbDxUPikgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHRvUmVtb3ZlOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICBpZiAocHJlZGljYXRlKHRoaXMuYXQoaSkpKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXQoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=

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

import { __decorate } from "tslib";
import { Injectable } from '@angular/core';

@@ -13,3 +12,3 @@ import { FormBuilder as NgFormBuilder } from '@angular/forms';

}
let FormBuilder = class FormBuilder extends NgFormBuilder {
export class FormBuilder extends NgFormBuilder {
group(controlsConfig, options) {

@@ -42,8 +41,7 @@ const controls = this._reduceControls(controlsConfig);

}
};
}
FormBuilder.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormBuilder_Factory() { return new FormBuilder(); }, token: FormBuilder, providedIn: "root" });
FormBuilder = __decorate([
Injectable({ providedIn: 'root' })
], FormBuilder);
export { FormBuilder };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUJ1aWxkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL2Zvcm1CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3hDLFNBQVMsd0JBQXdCLENBQy9CLE9BQTJEO0lBRTNELE9BQU8sQ0FDdUIsT0FBUSxDQUFDLGVBQWUsS0FBSyxTQUFTO1FBQ3RDLE9BQVEsQ0FBQyxVQUFVLEtBQUssU0FBUztRQUNqQyxPQUFRLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FDNUQsQ0FBQztBQUNKLENBQUM7QUFhRCxJQUFhLFdBQVcsR0FBeEIsTUFBYSxXQUFZLFNBQVEsYUFBYTtJQUM1QyxLQUFLLENBQ0gsY0FBMkIsRUFDM0IsT0FNUTtRQUVSLE1BQU0sUUFBUSxHQUFJLElBQVksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0QsSUFBSSxVQUFVLEdBQXVDLElBQUksQ0FBQztRQUMxRCxJQUFJLGVBQWUsR0FBaUQsSUFBSSxDQUFDO1FBQ3pFLElBQUksUUFBMkQsQ0FBQztRQUVoRSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDbkIsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BFLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuRixRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUNwRTtpQkFBTTtnQkFDTCwwQ0FBMEM7Z0JBQzFDLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUN4RjtTQUNGO1FBRUQsMkJBQTJCO1FBQzNCLE9BQU8sSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxPQUFPLENBQ0wsU0FBMEIsRUFDMUIsZUFBNkUsRUFDN0UsY0FBNkQ7UUFFN0QsT0FBTyxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQ0gsY0FBb0MsRUFDcEMsZUFBNkUsRUFDN0UsY0FBNkQ7UUFFN0QsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLElBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGLENBQUE7O0FBakRZLFdBQVc7SUFEdkIsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLFdBQVcsQ0FpRHZCO1NBakRZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciBhcyBOZ0Zvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnLi9mb3JtQXJyYXknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICcuL2Zvcm1Db250cm9sJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJy4vZm9ybUdyb3VwJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbE9wdGlvbnMsIEFzeW5jVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbCwgT3JCb3hlZFZhbHVlLCBWYWxpZGF0b3JGbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5mdW5jdGlvbiBpc0Fic3RyYWN0Q29udHJvbE9wdGlvbnM8VD4oXG4gIG9wdGlvbnM6IEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VD4gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4pOiBvcHRpb25zIGlzIEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VD4ge1xuICByZXR1cm4gKFxuICAgICg8QWJzdHJhY3RDb250cm9sT3B0aW9uczxUPj5vcHRpb25zKS5hc3luY1ZhbGlkYXRvcnMgIT09IHVuZGVmaW5lZCB8fFxuICAgICg8QWJzdHJhY3RDb250cm9sT3B0aW9uczxUPj5vcHRpb25zKS52YWxpZGF0b3JzICE9PSB1bmRlZmluZWQgfHxcbiAgICAoPEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VD4+b3B0aW9ucykudXBkYXRlT24gIT09IHVuZGVmaW5lZFxuICApO1xufVxuXG5leHBvcnQgdHlwZSBGYkNvbnRyb2xDb25maWc8VCA9IGFueT4gPVxuICB8IEFic3RyYWN0Q29udHJvbDxUPlxuICB8IFtPckJveGVkVmFsdWU8VD4sIFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGwsIEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsXVxuICB8IFtPckJveGVkVmFsdWU8VD4sIFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsXVxuICB8IFtUIHwgT3JCb3hlZFZhbHVlPFQ+XVxuICB8IE9yQm94ZWRWYWx1ZTxUPlxuICB8IFQ7XG5cbmV4cG9ydCB0eXBlIEZiR3JvdXBDb25maWc8VCA9IGFueT4gPSB7IFtrZXkgaW4ga2V5b2YgVF06IEZiQ29udHJvbENvbmZpZzxUW2tleV0+IH07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRm9ybUJ1aWxkZXIgZXh0ZW5kcyBOZ0Zvcm1CdWlsZGVyIHtcbiAgZ3JvdXA8VCBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIG9iamVjdCA9IGFueSwgR3JvdXBDb25maWcgZXh0ZW5kcyBGYkdyb3VwQ29uZmlnPFQ+ID0gRmJHcm91cENvbmZpZzxUPj4oXG4gICAgY29udHJvbHNDb25maWc6IEdyb3VwQ29uZmlnLFxuICAgIG9wdGlvbnM/OlxuICAgICAgfCBBYnN0cmFjdENvbnRyb2xPcHRpb25zPFQ+XG4gICAgICB8IHtcbiAgICAgICAgICB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW107XG4gICAgICAgICAgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdO1xuICAgICAgICB9XG4gICAgICB8IG51bGxcbiAgKTogRm9ybUdyb3VwPFQsIEU+IHtcbiAgICBjb25zdCBjb250cm9scyA9ICh0aGlzIGFzIGFueSkuX3JlZHVjZUNvbnRyb2xzKGNvbnRyb2xzQ29uZmlnKTtcblxuICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHVwZGF0ZU9uOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zPFQ+Wyd1cGRhdGVPbiddIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKG9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgaWYgKGlzQWJzdHJhY3RDb250cm9sT3B0aW9ucyhvcHRpb25zKSkge1xuICAgICAgICB2YWxpZGF0b3JzID0gb3B0aW9ucy52YWxpZGF0b3JzICE9IG51bGwgPyBvcHRpb25zLnZhbGlkYXRvcnMgOiBudWxsO1xuICAgICAgICBhc3luY1ZhbGlkYXRvcnMgPSBvcHRpb25zLmFzeW5jVmFsaWRhdG9ycyAhPSBudWxsID8gb3B0aW9ucy5hc3luY1ZhbGlkYXRvcnMgOiBudWxsO1xuICAgICAgICB1cGRhdGVPbiA9IG9wdGlvbnMudXBkYXRlT24gIT0gbnVsbCA/IG9wdGlvbnMudXBkYXRlT24gOiB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBgb3B0aW9uc2AgYXJlIGxlZ2FjeSBmb3JtIGdyb3VwIG9wdGlvbnNcbiAgICAgICAgdmFsaWRhdG9ycyA9IG9wdGlvbnNbJ3ZhbGlkYXRvciddICE9IG51bGwgPyBvcHRpb25zWyd2YWxpZGF0b3InXSA6IG51bGw7XG4gICAgICAgIGFzeW5jVmFsaWRhdG9ycyA9IG9wdGlvbnNbJ2FzeW5jVmFsaWRhdG9yJ10gIT0gbnVsbCA/IG9wdGlvbnNbJ2FzeW5jVmFsaWRhdG9yJ10gOiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRvZG86IGRhbiByZW1vdmUgdGhlIGFueVxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGNvbnRyb2xzLCB7IGFzeW5jVmFsaWRhdG9ycywgdXBkYXRlT24sIHZhbGlkYXRvcnMgfSk7XG4gIH1cblxuICBjb250cm9sPFQsIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+KFxuICAgIGZvcm1TdGF0ZTogT3JCb3hlZFZhbHVlPFQ+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGxcbiAgKTogRm9ybUNvbnRyb2w8VCwgRT4ge1xuICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2woZm9ybVN0YXRlLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIGFycmF5PFQsIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+KFxuICAgIGNvbnRyb2xzQ29uZmlnOiBGYkNvbnRyb2xDb25maWc8VD5bXSxcbiAgICB2YWxpZGF0b3JPck9wdHM/OiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHwgbnVsbCxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsXG4gICk6IEZvcm1BcnJheTxULCBFPiB7XG4gICAgY29uc3QgY29udHJvbHMgPSBjb250cm9sc0NvbmZpZy5tYXAoYyA9PiAodGhpcyBhcyBhbnkpLl9jcmVhdGVDb250cm9sKGMpKTtcbiAgICByZXR1cm4gbmV3IEZvcm1BcnJheShjb250cm9scywgdmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcik7XG4gIH1cbn1cbiJdfQ==
FormBuilder.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9mb3JtQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3hDLFNBQVMsd0JBQXdCLENBQy9CLE9BQTJEO0lBRTNELE9BQU8sQ0FDdUIsT0FBUSxDQUFDLGVBQWUsS0FBSyxTQUFTO1FBQ3RDLE9BQVEsQ0FBQyxVQUFVLEtBQUssU0FBUztRQUNqQyxPQUFRLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FDNUQsQ0FBQztBQUNKLENBQUM7QUFhRCxNQUFNLE9BQU8sV0FBWSxTQUFRLGFBQWE7SUFDNUMsS0FBSyxDQUNILGNBQTJCLEVBQzNCLE9BTVE7UUFFUixNQUFNLFFBQVEsR0FBSSxJQUFZLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRS9ELElBQUksVUFBVSxHQUF1QyxJQUFJLENBQUM7UUFDMUQsSUFBSSxlQUFlLEdBQWlELElBQUksQ0FBQztRQUN6RSxJQUFJLFFBQTJELENBQUM7UUFFaEUsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLElBQUksd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3JDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNwRSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkYsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0wsMENBQTBDO2dCQUMxQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hFLGVBQWUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDeEY7U0FDRjtRQUVELDJCQUEyQjtRQUMzQixPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsT0FBTyxDQUNMLFNBQTBCLEVBQzFCLGVBQTZFLEVBQzdFLGNBQTZEO1FBRTdELE9BQU8sSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsS0FBSyxDQUNILGNBQW9DLEVBQ3BDLGVBQTZFLEVBQzdFLGNBQTZEO1FBRTdELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxJQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Ozs7WUFqREYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIGFzIE5nRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICcuL2Zvcm1BcnJheSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJy4vZm9ybUNvbnRyb2wnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnLi9mb3JtR3JvdXAnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sT3B0aW9ucywgQXN5bmNWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sLCBPckJveGVkVmFsdWUsIFZhbGlkYXRvckZuIH0gZnJvbSAnLi90eXBlcyc7XG5cbmZ1bmN0aW9uIGlzQWJzdHJhY3RDb250cm9sT3B0aW9uczxUPihcbiAgb3B0aW9uczogQWJzdHJhY3RDb250cm9sT3B0aW9uczxUPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH1cbik6IG9wdGlvbnMgaXMgQWJzdHJhY3RDb250cm9sT3B0aW9uczxUPiB7XG4gIHJldHVybiAoXG4gICAgKDxBYnN0cmFjdENvbnRyb2xPcHRpb25zPFQ+Pm9wdGlvbnMpLmFzeW5jVmFsaWRhdG9ycyAhPT0gdW5kZWZpbmVkIHx8XG4gICAgKDxBYnN0cmFjdENvbnRyb2xPcHRpb25zPFQ+Pm9wdGlvbnMpLnZhbGlkYXRvcnMgIT09IHVuZGVmaW5lZCB8fFxuICAgICg8QWJzdHJhY3RDb250cm9sT3B0aW9uczxUPj5vcHRpb25zKS51cGRhdGVPbiAhPT0gdW5kZWZpbmVkXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIEZiQ29udHJvbENvbmZpZzxUID0gYW55PiA9XG4gIHwgQWJzdHJhY3RDb250cm9sPFQ+XG4gIHwgW09yQm94ZWRWYWx1ZTxUPiwgVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgbnVsbCwgQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGxdXG4gIHwgW09yQm94ZWRWYWx1ZTxUPiwgVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IG51bGxdXG4gIHwgW1QgfCBPckJveGVkVmFsdWU8VD5dXG4gIHwgT3JCb3hlZFZhbHVlPFQ+XG4gIHwgVDtcblxuZXhwb3J0IHR5cGUgRmJHcm91cENvbmZpZzxUID0gYW55PiA9IHsgW2tleSBpbiBrZXlvZiBUXTogRmJDb250cm9sQ29uZmlnPFRba2V5XT4gfTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIE5nRm9ybUJ1aWxkZXIge1xuICBncm91cDxUIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgb2JqZWN0ID0gYW55LCBHcm91cENvbmZpZyBleHRlbmRzIEZiR3JvdXBDb25maWc8VD4gPSBGYkdyb3VwQ29uZmlnPFQ+PihcbiAgICBjb250cm9sc0NvbmZpZzogR3JvdXBDb25maWcsXG4gICAgb3B0aW9ucz86XG4gICAgICB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VD5cbiAgICAgIHwge1xuICAgICAgICAgIHZhbGlkYXRvcj86IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXTtcbiAgICAgICAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW107XG4gICAgICAgIH1cbiAgICAgIHwgbnVsbFxuICApOiBGb3JtR3JvdXA8VCwgRT4ge1xuICAgIGNvbnN0IGNvbnRyb2xzID0gKHRoaXMgYXMgYW55KS5fcmVkdWNlQ29udHJvbHMoY29udHJvbHNDb25maWcpO1xuXG4gICAgbGV0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgdXBkYXRlT246IEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VD5bJ3VwZGF0ZU9uJ10gfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAob3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICBpZiAoaXNBYnN0cmFjdENvbnRyb2xPcHRpb25zKG9wdGlvbnMpKSB7XG4gICAgICAgIHZhbGlkYXRvcnMgPSBvcHRpb25zLnZhbGlkYXRvcnMgIT0gbnVsbCA/IG9wdGlvbnMudmFsaWRhdG9ycyA6IG51bGw7XG4gICAgICAgIGFzeW5jVmFsaWRhdG9ycyA9IG9wdGlvbnMuYXN5bmNWYWxpZGF0b3JzICE9IG51bGwgPyBvcHRpb25zLmFzeW5jVmFsaWRhdG9ycyA6IG51bGw7XG4gICAgICAgIHVwZGF0ZU9uID0gb3B0aW9ucy51cGRhdGVPbiAhPSBudWxsID8gb3B0aW9ucy51cGRhdGVPbiA6IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGBvcHRpb25zYCBhcmUgbGVnYWN5IGZvcm0gZ3JvdXAgb3B0aW9uc1xuICAgICAgICB2YWxpZGF0b3JzID0gb3B0aW9uc1sndmFsaWRhdG9yJ10gIT0gbnVsbCA/IG9wdGlvbnNbJ3ZhbGlkYXRvciddIDogbnVsbDtcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzID0gb3B0aW9uc1snYXN5bmNWYWxpZGF0b3InXSAhPSBudWxsID8gb3B0aW9uc1snYXN5bmNWYWxpZGF0b3InXSA6IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVG9kbzogZGFuIHJlbW92ZSB0aGUgYW55XG4gICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoY29udHJvbHMsIHsgYXN5bmNWYWxpZGF0b3JzLCB1cGRhdGVPbiwgdmFsaWRhdG9ycyB9KTtcbiAgfVxuXG4gIGNvbnRyb2w8VCwgRSBleHRlbmRzIG9iamVjdCA9IGFueT4oXG4gICAgZm9ybVN0YXRlOiBPckJveGVkVmFsdWU8VD4sXG4gICAgdmFsaWRhdG9yT3JPcHRzPzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IG51bGwsXG4gICAgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbFxuICApOiBGb3JtQ29udHJvbDxULCBFPiB7XG4gICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbChmb3JtU3RhdGUsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cbiAgYXJyYXk8VCwgRSBleHRlbmRzIG9iamVjdCA9IGFueT4oXG4gICAgY29udHJvbHNDb25maWc6IEZiQ29udHJvbENvbmZpZzxUPltdLFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGxcbiAgKTogRm9ybUFycmF5PFQsIEU+IHtcbiAgICBjb25zdCBjb250cm9scyA9IGNvbnRyb2xzQ29uZmlnLm1hcChjID0+ICh0aGlzIGFzIGFueSkuX2NyZWF0ZUNvbnRyb2woYykpO1xuICAgIHJldHVybiBuZXcgRm9ybUFycmF5KGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxufVxuIl19

@@ -99,2 +99,2 @@ import { FormControl as NgFormControl } from '@angular/forms';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2wuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL2Zvcm1Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLElBQUksYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDbEIsTUFBTSxtQkFBbUIsQ0FBQztBQWMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sT0FBTyxXQUE2QyxTQUFRLGFBQWE7SUFvQjdFLFlBQVksU0FBMkIsRUFBRSxlQUFpQyxFQUFFLGNBQStCO1FBQ3pHLEtBQUssQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBYjVDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLFdBQU0sR0FBRyxv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LElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sIGFzIE5nRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyxcbiAgdmFsaWRhdGVDb250cm9sT25cbn0gZnJvbSAnLi9jb250cm9sLWFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIE9ubHlTZWxmLFxuICBPckJveGVkVmFsdWUsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yT3JPcHRzXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sPFQgPSBhbnksIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgTmdGb3JtQ29udHJvbCB7XG4gIHJlYWRvbmx5IHZhbHVlOiBUO1xuICByZWFkb25seSBlcnJvcnM6IEUgfCBudWxsO1xuICByZWFkb25seSBhc3luY1ZhbGlkYXRvcjogQXN5bmNWYWxpZGF0b3JGbjxUPjtcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPFQ+O1xuICByZWFkb25seSBzdGF0dXM6IENvbnRyb2xTdGF0ZTtcbiAgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxDb250cm9sU3RhdGU+O1xuXG4gIHByaXZhdGUgdG91Y2hDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBkaXJ0eUNoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IHRvdWNoJCA9IHRoaXMudG91Y2hDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIHJlYWRvbmx5IGRpcnR5JCA9IHRoaXMuZGlydHlDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gY29udHJvbFZhbHVlQ2hhbmdlcyQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IGNvbnRyb2xEaXNhYmxlZCQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGVuYWJsZWQkID0gY29udHJvbEVuYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBzdGF0dXMkID0gY29udHJvbFN0YXR1c0NoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlcnJvcnMkID0gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4odGhpcyk7XG5cbiAgY29uc3RydWN0b3IoZm9ybVN0YXRlPzogT3JCb3hlZFZhbHVlPFQ+LCB2YWxpZGF0b3JPck9wdHM/OiBWYWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3IpIHtcbiAgICBzdXBlcihmb3JtU3RhdGUsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IFQsIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBhbnksIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnNldFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBULCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiB2b2lkO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBhbnksIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnBhdGNoVmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5wYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGRpc2FibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xEaXNhYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5hYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRW5hYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgbWVyZ2VWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvcikge1xuICAgIG1lcmdlQ29udHJvbFZhbGlkYXRvcnModGhpcywgdmFsaWRhdG9ycyk7XG4gIH1cblxuICBtZXJnZUFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvcikge1xuICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLmFzeW5jVmFsaWRhdG9yLCAuLi5jb2VyY2VBcnJheSh2YWxpZGF0b3JzKV0pO1xuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNUb3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzUHJpc3RpbmUob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FsbEFzRGlydHkoKTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICB9XG5cbiAgcmVzZXQoZm9ybVN0YXRlPzogT3JCb3hlZFZhbHVlPFQ+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQge1xuICAgIHN1cGVyLnJlc2V0KGZvcm1TdGF0ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgdmFsaWRhdGVPbihvYnNlcnZhYmxlVmFsaWRhdGlvbjogT2JzZXJ2YWJsZTxudWxsIHwgb2JqZWN0Pikge1xuICAgIHJldHVybiB2YWxpZGF0ZUNvbnRyb2xPbih0aGlzLCBvYnNlcnZhYmxlVmFsaWRhdGlvbik7XG4gIH1cblxuICBnZXRFcnJvcjxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8RT4+KGVycm9yQ29kZTogSyk6IEVbS10gfCBudWxsIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0RXJyb3IoZXJyb3JDb2RlKSBhcyBFW0tdIHwgbnVsbDtcbiAgfVxuXG4gIGhhc0Vycm9yPEsgZXh0ZW5kcyBFeHRyYWN0U3RyaW5nczxFPj4oZXJyb3JDb2RlOiBLKSB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9yKGVycm9yQ29kZSk7XG4gIH1cblxuICBzZXRFcnJvcnMoZXJyb3JzOiBQYXJ0aWFsPEU+IHwgbnVsbCwgb3B0czogRW1pdEV2ZW50ID0ge30pIHtcbiAgICByZXR1cm4gc3VwZXIuc2V0RXJyb3JzKGVycm9ycywgb3B0cyk7XG4gIH1cblxuICBoYXNFcnJvckFuZFRvdWNoZWQoZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kVG91Y2hlZCh0aGlzLCBlcnJvcik7XG4gIH1cblxuICBoYXNFcnJvckFuZERpcnR5KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZERpcnR5KHRoaXMsIGVycm9yKTtcbiAgfVxuXG4gIHNldEVuYWJsZShlbmFibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGVuYWJsZUNvbnRyb2wodGhpcywgZW5hYmxlLCBvcHRzKTtcbiAgfVxuXG4gIHNldERpc2FibGUoZGlzYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZGlzYWJsZUNvbnRyb2wodGhpcywgZGlzYWJsZSwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9mb3JtQ29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxNQUFNLE9BQU8sV0FBNkMsU0FBUSxhQUFhO0lBb0I3RSxZQUFZLFNBQTJCLEVBQUUsZUFBaUMsRUFBRSxjQUErQjtRQUN6RyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQWI1QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkUsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMs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QUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCBhcyBOZ0Zvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgY29udHJvbERpc2FibGVkJCxcbiAgY29udHJvbERpc2FibGVkV2hpbGUsXG4gIGNvbnRyb2xFbmFibGVkJCxcbiAgY29udHJvbEVuYWJsZWRXaGlsZSxcbiAgY29udHJvbEVycm9yQ2hhbmdlcyQsXG4gIGNvbnRyb2xTdGF0dXNDaGFuZ2VzJCxcbiAgY29udHJvbFZhbHVlQ2hhbmdlcyQsXG4gIGRpc2FibGVDb250cm9sLFxuICBlbmFibGVDb250cm9sLFxuICBoYXNFcnJvckFuZERpcnR5LFxuICBoYXNFcnJvckFuZFRvdWNoZWQsXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnMsXG4gIHZhbGlkYXRlQ29udHJvbE9uXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFzeW5jVmFsaWRhdG9yLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBDb250cm9sRXZlbnRPcHRpb25zLFxuICBDb250cm9sT3B0aW9ucyxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBPbmx5U2VsZixcbiAgT3JCb3hlZFZhbHVlLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0c1xufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbDxUID0gYW55LCBFIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIE5nRm9ybUNvbnRyb2wge1xuICByZWFkb25seSB2YWx1ZTogVDtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcbiAgcmVhZG9ubHkgYXN5bmNWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yRm48VD47XG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUPjtcbiAgcmVhZG9ubHkgc3RhdHVzOiBDb250cm9sU3RhdGU7XG4gIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPjtcblxuICBwcml2YXRlIHRvdWNoQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZGlydHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB0b3VjaCQgPSB0aGlzLnRvdWNoQ2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBkaXJ0eSQgPSB0aGlzLmRpcnR5Q2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBkaXNhYmxlZCQgPSBjb250cm9sRGlzYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlbmFibGVkJCA9IGNvbnRyb2xFbmFibGVkJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgc3RhdHVzJCA9IGNvbnRyb2xTdGF0dXNDaGFuZ2VzJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IGNvbnRyb2xFcnJvckNoYW5nZXMkPEU+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKGZvcm1TdGF0ZT86IE9yQm94ZWRWYWx1ZTxUPiwgdmFsaWRhdG9yT3JPcHRzPzogVmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgc3VwZXIoZm9ybVN0YXRlLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBULCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiB2b2lkO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5zZXRWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVCwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5wYXRjaFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBkaXNhYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRGlzYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbEVuYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIG1lcmdlVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3IpIHtcbiAgICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzKHRoaXMsIHZhbGlkYXRvcnMpO1xuICB9XG5cbiAgbWVyZ2VBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3IpIHtcbiAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9ycyhbdGhpcy5hc3luY1ZhbGlkYXRvciwgLi4uY29lcmNlQXJyYXkodmFsaWRhdG9ycyldKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1VudG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzRGlydHkob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBbGxBc0RpcnR5KCk6IHZvaWQge1xuICAgIHRoaXMubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlc2V0KGZvcm1TdGF0ZT86IE9yQm94ZWRWYWx1ZTxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldChmb3JtU3RhdGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IFZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHZhbGlkYXRlT24ob2JzZXJ2YWJsZVZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pIHtcbiAgICByZXR1cm4gdmFsaWRhdGVDb250cm9sT24odGhpcywgb2JzZXJ2YWJsZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgZ2V0RXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEspOiBFW0tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldEVycm9yKGVycm9yQ29kZSkgYXMgRVtLXSB8IG51bGw7XG4gIH1cblxuICBoYXNFcnJvcjxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8RT4+KGVycm9yQ29kZTogSykge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcihlcnJvckNvZGUpO1xuICB9XG5cbiAgc2V0RXJyb3JzKGVycm9yczogUGFydGlhbDxFPiB8IG51bGwsIG9wdHM6IEVtaXRFdmVudCA9IHt9KSB7XG4gICAgcmV0dXJuIHN1cGVyLnNldEVycm9ycyhlcnJvcnMsIG9wdHMpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvcik7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG59XG4iXX0=

@@ -140,2 +140,2 @@ import { FormGroup as NgFormGroup } from '@angular/forms';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUdyb3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC9yZWFjdGl2ZS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtR3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLEVBQTRCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sbUJBQW1CLENBQUM7QUFrQjNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUQsTUFBTSxPQUFPLFNBQXVELFNBQVEsV0FBVztJQW1CckYsWUFDUyxRQUF3RCxFQUMvRCxlQUFpQyxFQUNqQyxjQUErQjtRQUUvQixLQUFLLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUoxQyxhQUFRLEdBQVIsUUFBUSxDQUFnRDtRQWJ6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTlDLFdBQU0sR0FBRyxJQUFJLENB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Q0FBQztJQUN0QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXFCO1FBQ2xGLE1BQU0sY0FBYyxHQUFHLE9BQU8sSUFBSSxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDYixhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUN2QixZQUFZLEVBQUUsWUFBWSxJQUFJLEdBQUc7WUFDakMsT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBVyxFQUFFLE9BQTBCLEVBQUUsaUJBQXVDO1FBQzlGLE9BQU8sa0JBQWtCLENBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU87WUFDbkIsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCBhcyBOZ0Zvcm1Hcm91cCwgRm9ybUFycmF5IGFzIE5nRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAsIHRha2UsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNvbnRyb2xEaXNhYmxlZCQsXG4gIGNvbnRyb2xEaXNhYmxlZFdoaWxlLFxuICBjb250cm9sRW5hYmxlZCQsXG4gIGNvbnRyb2xFbmFibGVkV2hpbGUsXG4gIGNvbnRyb2xFcnJvckNoYW5nZXMkLFxuICBjb250cm9sU3RhdHVzQ2hhbmdlcyQsXG4gIGNvbnRyb2xWYWx1ZUNoYW5nZXMkLFxuICBkaXNhYmxlQ29udHJvbCxcbiAgZW5hYmxlQ29udHJvbCxcbiAgaGFzRXJyb3JBbmREaXJ0eSxcbiAgaGFzRXJyb3JBbmRUb3VjaGVkLFxuICBtYXJrQWxsRGlydHksXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnMsXG4gIHNlbGVjdENvbnRyb2xWYWx1ZSQsXG4gIHZhbGlkYXRlQ29udHJvbE9uLFxuICBwZXJzaXN0VmFsdWUkLFxuICBoYW5kbGVGb3JtQXJyYXlzXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdEFic3RyYWN0Q29udHJvbCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIEtleVZhbHVlQ29udHJvbHMsXG4gIE9iaixcbiAgT25seVNlbGYsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yT3JPcHRzLFxuICBQZXJzaXN0T3B0aW9ucyxcbiAgQ29udHJvbEZhY3RvcnlNYXBcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSwgd3JhcEludG9PYnNlcnZhYmxlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQZXJzaXN0TWFuYWdlciB9IGZyb20gJy4vcGVyc2lzdE1hbmFnZXInO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlTWFuYWdlciB9IGZyb20gJy4vbG9jYWxTdG9yYWdlTWFuYWdlcic7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICcuL2Zvcm1BcnJheSc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXA8VCBleHRlbmRzIE9iaiA9IGFueSwgRSBleHRlbmRzIG9iamVjdCA9IGFueT4gZXh0ZW5kcyBOZ0Zvcm1Hcm91cCB7XG4gIHJlYWRvbmx5IHZhbHVlOiBUO1xuICByZWFkb25seSBlcnJvcnM6IEUgfCBudWxsO1xuICByZWFkb25seSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VD47XG4gIHJlYWRvbmx5IHN0YXR1czogQ29udHJvbFN0YXRlO1xuICByZWFkb25seSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPENvbnRyb2xTdGF0ZT47XG5cbiAgcHJpdmF0ZSB0b3VjaENoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGRpcnR5Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgdG91Y2gkID0gdGhpcy50b3VjaENoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgZGlydHkkID0gdGhpcy5kaXJ0eUNoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSBjb250cm9sVmFsdWVDaGFuZ2VzJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gY29udHJvbERpc2FibGVkJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZW5hYmxlZCQgPSBjb250cm9sRW5hYmxlZCQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IHN0YXR1cyQgPSBjb250cm9sU3RhdHVzQ2hhbmdlcyQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGVycm9ycyQgPSBjb250cm9sRXJyb3JDaGFuZ2VzJDxFPih0aGlzKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29udHJvbHM6IEV4dHJhY3RBYnN0cmFjdENvbnRyb2w8S2V5VmFsdWVDb250cm9sczxUPiwgVD4sXG4gICAgdmFsaWRhdG9yT3JPcHRzPzogVmFsaWRhdG9yT3JPcHRzLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JcbiAgKSB7XG4gICAgc3VwZXIoY29udHJvbHMsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cbiAgc2VsZWN0PFI+KG1hcEZuOiAoc3RhdGU6IFQpID0+IFIpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gc2VsZWN0Q29udHJvbFZhbHVlJCh0aGlzLCBtYXBGbik7XG4gIH1cblxuICBnZXRSYXdWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIGdldDxLMSBleHRlbmRzIGtleW9mIFQ+KHBhdGg/OiBbSzFdKTogQWJzdHJhY3RDb250cm9sPFRbSzFdPjtcbiAgZ2V0PEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXT4ocGF0aD86IFtLMSwgSzJdKTogQWJzdHJhY3RDb250cm9sPFRbSzFdW0syXT47XG4gIGdldDxLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdPihcbiAgICBwYXRoPzogW0sxLCBLMiwgSzNdXG4gICk6IEFic3RyYWN0Q29udHJvbDxUW0sxXVtLMl1bSzNdPjtcbiAgZ2V0KHBhdGg/OiBzdHJpbmcpOiBBYnN0cmFjdENvbnRyb2w7XG4gIGdldChwYXRoOiBhbnkpIHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHBhdGgpO1xuICB9XG5cbiAgZ2V0Q29udHJvbDxQMSBleHRlbmRzIGtleW9mIFQ+KHByb3AxOiBQMSk6IEFic3RyYWN0Q29udHJvbDxUW1AxXT47XG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdPihwcm9wMTogUDEsIHByb3AyOiBQMik6IEFic3RyYWN0Q29udHJvbDxUW1AxXVtQMl0+O1xuICBnZXRDb250cm9sPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSwgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0+KFxuICAgIHByb3AxOiBQMSxcbiAgICBwcm9wMjogUDIsXG4gICAgcHJvcDM6IFAzXG4gICk6IEFic3RyYWN0Q29udHJvbDxUW1AxXVtQMl1bUDNdPjtcbiAgZ2V0Q29udHJvbDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sIFAzIGV4dGVuZHMga2V5b2YgVFtQMV1bUDJdLCBQNCBleHRlbmRzIGtleW9mIFRbUDFdW1AyXVtQM10+KFxuICAgIHByb3AxOiBQMSxcbiAgICBwcm9wMjogUDIsXG4gICAgcHJvcDM6IFAzLFxuICAgIHByb3A0OiBQNFxuICApOiBBYnN0cmFjdENvbnRyb2w8VFtQMV1bUDJdW1AzXVtQNF0+O1xuICBnZXRDb250cm9sKC4uLm5hbWVzOiBhbnkpOiBBYnN0cmFjdENvbnRyb2w8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG5hbWVzLmpvaW4oJy4nKSk7XG4gIH1cblxuICBhZGRDb250cm9sPEsgZXh0ZW5kcyBFeHRyYWN0U3RyaW5nczxUPj4obmFtZTogSywgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFRbS10+KTogdm9pZCB7XG4gICAgc3VwZXIuYWRkQ29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgfVxuXG4gIHJlbW92ZUNvbnRyb2wobmFtZTogRXh0cmFjdFN0cmluZ3M8VD4pOiB2b2lkIHtcbiAgICBzdXBlci5yZW1vdmVDb250cm9sKG5hbWUpO1xuICB9XG5cbiAgY29udGFpbnMoY29udHJvbE5hbWU6IEV4dHJhY3RTdHJpbmdzPFQ+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKGNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIHNldENvbnRyb2w8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPFQ+PihuYW1lOiBLLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VFtLXT4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXRDb250cm9sKG5hbWUsIGNvbnRyb2wpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVCwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IGFueSB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIuc2V0VmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFBhcnRpYWw8VD4+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogUGFydGlhbDxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBhbnksIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZGlzYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbERpc2FibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlbmFibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xFbmFibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBtZXJnZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yKSB7XG4gICAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyh0aGlzLCB2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIG1lcmdlQXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgdGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuYXN5bmNWYWxpZGF0b3IsIC4uLmNvZXJjZUFycmF5KHZhbGlkYXRvcnMpXSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1RvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBc1VudG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQWxsQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICBtYXJrQWxsRGlydHkodGhpcyk7XG4gIH1cblxuICByZXNldChmb3JtU3RhdGU/OiBQYXJ0aWFsPFQ+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQge1xuICAgIHN1cGVyLnJlc2V0KGZvcm1TdGF0ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgdmFsaWRhdGVPbihvYnNlcnZhYmxlVmFsaWRhdGlvbjogT2JzZXJ2YWJsZTxudWxsIHwgb2JqZWN0Pikge1xuICAgIHJldHVybiB2YWxpZGF0ZUNvbnRyb2xPbih0aGlzLCBvYnNlcnZhYmxlVmFsaWRhdGlvbik7XG4gIH1cblxuICBoYXNFcnJvcjxLMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBbSzFdKTogYm9vbGVhbjtcbiAgaGFzRXJyb3I8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdPihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogW0sxLCBLMl0pOiBib29sZWFuO1xuICBoYXNFcnJvcjxLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdPihcbiAgICBlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHBhdGg/OiBbSzEsIEsyLCBLM11cbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3IoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IHN0cmluZyk6IGJvb2xlYW47XG4gIGhhc0Vycm9yKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIHNldEVycm9ycyhlcnJvcnM6IFBhcnRpYWw8RT4gfCBudWxsLCBvcHRzOiBFbWl0RXZlbnQgPSB7fSkge1xuICAgIHJldHVybiBzdXBlci5zZXRFcnJvcnMoZXJyb3JzLCBvcHRzKTtcbiAgfVxuXG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yQ29kZTogSywgcGF0aD86IFtLMV0pOiBFW0tdIHwgbnVsbDtcbiAgZ2V0RXJyb3I8SyBleHRlbmRzIGtleW9mIEUsIEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXT4oZXJyb3JDb2RlOiBLLCBwYXRoPzogW0sxLCBLMl0pOiBFW0tdIHwgbnVsbDtcbiAgZ2V0RXJyb3I8SyBleHRlbmRzIGtleW9mIEUsIEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSwgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0+KFxuICAgIGVycm9yQ29kZTogSyxcbiAgICBwYXRoPzogW0sxLCBLMiwgSzNdXG4gICk6IEVbS10gfCBudWxsO1xuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRT4oZXJyb3JDb2RlOiBLLCBwYXRoPzogc3RyaW5nKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFPihlcnJvckNvZGU6IEssIHBhdGg/OiBhbnkpOiBFW0tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldEVycm9yKGVycm9yQ29kZSBhcyBhbnksIHBhdGgpIGFzIEVbS10gfCBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkPFAxIGV4dGVuZHMga2V5b2YgVD4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXT4oXG4gICAgZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHByb3AxPzogUDEsXG4gICAgcHJvcDI/OiBQMlxuICApOiBib29sZWFuO1xuICBoYXNFcnJvckFuZFRvdWNoZWQ8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXT4oXG4gICAgZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHByb3AxPzogUDEsXG4gICAgcHJvcDI/OiBQMixcbiAgICBwcm9wMz86IFAzXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxcbiAgICBQMSBleHRlbmRzIGtleW9mIFQsXG4gICAgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSxcbiAgICBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXSxcbiAgICBQNCBleHRlbmRzIGtleW9mIFRbUDFdW1AyXVtQM11cbiAgPihlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sIHByb3AxPzogUDEsIHByb3AyPzogUDIsIHByb3AzPzogUDMsIHByb3A0PzogUDQpOiBib29sZWFuO1xuICBoYXNFcnJvckFuZFRvdWNoZWQoZXJyb3I6IGFueSwgLi4ucGF0aDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kVG91Y2hlZCh0aGlzLCBlcnJvciwgLi4ucGF0aCk7XG4gIH1cblxuICBoYXNFcnJvckFuZERpcnR5PFAxIGV4dGVuZHMga2V5b2YgVD4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eTxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDJcbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eTxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sIFAzIGV4dGVuZHMga2V5b2YgVFtQMV1bUDJdPihcbiAgICBlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sXG4gICAgcHJvcDE/OiBQMSxcbiAgICBwcm9wMj86IFAyLFxuICAgIHByb3AzPzogUDNcbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eTxcbiAgICBQMSBleHRlbmRzIGtleW9mIFQsXG4gICAgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSxcbiAgICBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXSxcbiAgICBQNCBleHRlbmRzIGtleW9mIFRbUDFdW1AyXVtQM11cbiAgPihlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sIHByb3AxPzogUDEsIHByb3AyPzogUDIsIHByb3AzPzogUDMsIHByb3A0PzogUDQpOiBib29sZWFuO1xuICBoYXNFcnJvckFuZERpcnR5KGVycm9yOiBhbnksIC4uLnBhdGg6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZERpcnR5KHRoaXMsIGVycm9yLCAuLi5wYXRoKTtcbiAgfVxuXG4gIHNldEVuYWJsZShlbmFibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGVuYWJsZUNvbnRyb2wodGhpcywgZW5hYmxlLCBvcHRzKTtcbiAgfVxuXG4gIHNldERpc2FibGUoZGlzYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZGlzYWJsZUNvbnRyb2wodGhpcywgZGlzYWJsZSwgb3B0cyk7XG4gIH1cblxuICBwZXJzaXN0KGtleTogc3RyaW5nLCB7IGRlYm91bmNlVGltZSwgbWFuYWdlciwgYXJyQ29udHJvbEZhY3RvcnkgfTogUGVyc2lzdE9wdGlvbnM8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBwZXJzaXN0TWFuYWdlciA9IG1hbmFnZXIgfHwgbmV3IExvY2FsU3RvcmFnZU1hbmFnZXIoKTtcbiAgICByZXR1cm4gdGhpcy5yZXN0b3JlKGtleSwgcGVyc2lzdE1hbmFnZXIsIGFyckNvbnRyb2xGYWN0b3J5KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHBlcnNpc3RWYWx1ZSQodGhpcywga2V5LCB7XG4gICAgICAgICAgZGVib3VuY2VUaW1lOiBkZWJvdW5jZVRpbWUgfHwgMjUwLFxuICAgICAgICAgIG1hbmFnZXI6IHBlcnNpc3RNYW5hZ2VyXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZShrZXk6IHN0cmluZywgbWFuYWdlcjogUGVyc2lzdE1hbmFnZXI8VD4sIGFyckNvbnRyb2xGYWN0b3J5OiBDb250cm9sRmFjdG9yeU1hcDxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB3cmFwSW50b09ic2VydmFibGU8VD4obWFuYWdlci5nZXRWYWx1ZShrZXkpKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgICAgaGFuZGxlRm9ybUFycmF5cyh0aGlzLCB2YWx1ZSwgYXJyQ29udHJvbEZhY3RvcnkpO1xuICAgICAgICB0aGlzLnBhdGNoVmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBa0IzQixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzVELE1BQU0sT0FBTyxTQUF1RCxTQUFRLFdBQVc7SUFtQnJGLFlBQ1MsUUFBd0QsRUFDL0QsZUFBaUMsRUFDakMsY0FBK0I7UUFFL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFKMUMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0Q7UUFiekQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztR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RSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFxQjtRQUNsRixNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUM5RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ2IsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDdkIsWUFBWSxFQUFFLFlBQVksSUFBSSxHQUFHO1lBQ2pDLE9BQU8sRUFBRSxjQUFjO1NBQ3hCLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUEwQixFQUFFLGlCQUF1QztRQUM5RixPQUFPLGtCQUFrQixDQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ25CLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgYXMgTmdGb3JtR3JvdXAsIEZvcm1BcnJheSBhcyBOZ0Zvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCB0YWtlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWFya0FsbERpcnR5LFxuICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzLFxuICBzZWxlY3RDb250cm9sVmFsdWUkLFxuICB2YWxpZGF0ZUNvbnRyb2xPbixcbiAgcGVyc2lzdFZhbHVlJCxcbiAgaGFuZGxlRm9ybUFycmF5c1xufSBmcm9tICcuL2NvbnRyb2wtYWN0aW9ucyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEFzeW5jVmFsaWRhdG9yLFxuICBDb250cm9sRXZlbnRPcHRpb25zLFxuICBDb250cm9sT3B0aW9ucyxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RBYnN0cmFjdENvbnRyb2wsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBLZXlWYWx1ZUNvbnRyb2xzLFxuICBPYmosXG4gIE9ubHlTZWxmLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0cyxcbiAgUGVyc2lzdE9wdGlvbnMsXG4gIENvbnRyb2xGYWN0b3J5TWFwXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIHdyYXBJbnRvT2JzZXJ2YWJsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGVyc2lzdE1hbmFnZXIgfSBmcm9tICcuL3BlcnNpc3RNYW5hZ2VyJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZU1hbmFnZXIgfSBmcm9tICcuL2xvY2FsU3RvcmFnZU1hbmFnZXInO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnLi9mb3JtQXJyYXknO1xuXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwPFQgZXh0ZW5kcyBPYmogPSBhbnksIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgTmdGb3JtR3JvdXAge1xuICByZWFkb25seSB2YWx1ZTogVDtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPFQ+O1xuICByZWFkb25seSBzdGF0dXM6IENvbnRyb2xTdGF0ZTtcbiAgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxDb250cm9sU3RhdGU+O1xuXG4gIHByaXZhdGUgdG91Y2hDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBkaXJ0eUNoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHRvdWNoJCA9IHRoaXMudG91Y2hDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIGRpcnR5JCA9IHRoaXMuZGlydHlDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gY29udHJvbFZhbHVlQ2hhbmdlcyQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IGNvbnRyb2xEaXNhYmxlZCQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGVuYWJsZWQkID0gY29udHJvbEVuYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBzdGF0dXMkID0gY29udHJvbFN0YXR1c0NoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlcnJvcnMkID0gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4odGhpcyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRyb2xzOiBFeHRyYWN0QWJzdHJhY3RDb250cm9sPEtleVZhbHVlQ29udHJvbHM8VD4sIFQ+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvck9yT3B0cyxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNlbGVjdDxSPihtYXBGbjogKHN0YXRlOiBUKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHNlbGVjdENvbnRyb2xWYWx1ZSQodGhpcywgbWFwRm4pO1xuICB9XG5cbiAgZ2V0UmF3VmFsdWUoKTogVCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuICBnZXQ8SzEgZXh0ZW5kcyBrZXlvZiBUPihwYXRoPzogW0sxXSk6IEFic3RyYWN0Q29udHJvbDxUW0sxXT47XG4gIGdldDxLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KHBhdGg/OiBbSzEsIEsyXSk6IEFic3RyYWN0Q29udHJvbDxUW0sxXVtLMl0+O1xuICBnZXQ8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdLCBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXT4oXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBBYnN0cmFjdENvbnRyb2w8VFtLMV1bSzJdW0szXT47XG4gIGdldChwYXRoPzogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sO1xuICBnZXQocGF0aDogYW55KSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldChwYXRoKTtcbiAgfVxuXG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBUPihwcm9wMTogUDEpOiBBYnN0cmFjdENvbnRyb2w8VFtQMV0+O1xuICBnZXRDb250cm9sPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXT4ocHJvcDE6IFAxLCBwcm9wMjogUDIpOiBBYnN0cmFjdENvbnRyb2w8VFtQMV1bUDJdPjtcbiAgZ2V0Q29udHJvbDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sIFAzIGV4dGVuZHMga2V5b2YgVFtQMV1bUDJdPihcbiAgICBwcm9wMTogUDEsXG4gICAgcHJvcDI6IFAyLFxuICAgIHByb3AzOiBQM1xuICApOiBBYnN0cmFjdENvbnRyb2w8VFtQMV1bUDJdW1AzXT47XG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXSwgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdPihcbiAgICBwcm9wMTogUDEsXG4gICAgcHJvcDI6IFAyLFxuICAgIHByb3AzOiBQMyxcbiAgICBwcm9wNDogUDRcbiAgKTogQWJzdHJhY3RDb250cm9sPFRbUDFdW1AyXVtQM11bUDRdPjtcbiAgZ2V0Q29udHJvbCguLi5uYW1lczogYW55KTogQWJzdHJhY3RDb250cm9sPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldChuYW1lcy5qb2luKCcuJykpO1xuICB9XG5cbiAgYWRkQ29udHJvbDxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8VD4+KG5hbWU6IEssIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUW0tdPik6IHZvaWQge1xuICAgIHN1cGVyLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gIH1cblxuICByZW1vdmVDb250cm9sKG5hbWU6IEV4dHJhY3RTdHJpbmdzPFQ+KTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlQ29udHJvbChuYW1lKTtcbiAgfVxuXG4gIGNvbnRhaW5zKGNvbnRyb2xOYW1lOiBFeHRyYWN0U3RyaW5nczxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5jb250YWlucyhjb250cm9sTmFtZSk7XG4gIH1cblxuICBzZXRDb250cm9sPEsgZXh0ZW5kcyBFeHRyYWN0U3RyaW5nczxUPj4obmFtZTogSywgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFRbS10+KTogdm9pZCB7XG4gICAgc3VwZXIuc2V0Q29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IFQsIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBhbnkge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnNldFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+Piwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IFBhcnRpYWw8VD4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnBhdGNoVmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5wYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGRpc2FibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xEaXNhYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5hYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRW5hYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgbWVyZ2VWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvcikge1xuICAgIG1lcmdlQ29udHJvbFZhbGlkYXRvcnModGhpcywgdmFsaWRhdG9ycyk7XG4gIH1cblxuICBtZXJnZUFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvcikge1xuICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLmFzeW5jVmFsaWRhdG9yLCAuLi5jb2VyY2VBcnJheSh2YWxpZGF0b3JzKV0pO1xuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNUb3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzUHJpc3RpbmUob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FsbEFzRGlydHkoKTogdm9pZCB7XG4gICAgbWFya0FsbERpcnR5KHRoaXMpO1xuICB9XG5cbiAgcmVzZXQoZm9ybVN0YXRlPzogUGFydGlhbDxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldChmb3JtU3RhdGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IFZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHZhbGlkYXRlT24ob2JzZXJ2YWJsZVZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pIHtcbiAgICByZXR1cm4gdmFsaWRhdGVDb250cm9sT24odGhpcywgb2JzZXJ2YWJsZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgaGFzRXJyb3I8SzEgZXh0ZW5kcyBrZXlvZiBUPihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogW0sxXSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yPEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXT4oZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IFtLMSwgSzJdKTogYm9vbGVhbjtcbiAgaGFzRXJyb3I8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdLCBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXT4oXG4gICAgZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwYXRoPzogW0sxLCBLMiwgSzNdXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXNFcnJvcihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gIH1cblxuICBzZXRFcnJvcnMoZXJyb3JzOiBQYXJ0aWFsPEU+IHwgbnVsbCwgb3B0czogRW1pdEV2ZW50ID0ge30pIHtcbiAgICByZXR1cm4gc3VwZXIuc2V0RXJyb3JzKGVycm9ycywgb3B0cyk7XG4gIH1cblxuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRSwgSzEgZXh0ZW5kcyBrZXlvZiBUPihlcnJvckNvZGU6IEssIHBhdGg/OiBbSzFdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KGVycm9yQ29kZTogSywgcGF0aD86IFtLMSwgSzJdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdPihcbiAgICBlcnJvckNvZGU6IEssXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBFW0tdIHwgbnVsbDtcbiAgZ2V0RXJyb3I8SyBleHRlbmRzIGtleW9mIEU+KGVycm9yQ29kZTogSywgcGF0aD86IHN0cmluZyk6IEVbS10gfCBudWxsO1xuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRT4oZXJyb3JDb2RlOiBLLCBwYXRoPzogYW55KTogRVtLXSB8IG51bGwge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUgYXMgYW55LCBwYXRoKSBhcyBFW0tdIHwgbnVsbDtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDJcbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSwgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDIsXG4gICAgcHJvcDM/OiBQM1xuICApOiBib29sZWFuO1xuICBoYXNFcnJvckFuZFRvdWNoZWQ8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBhbnksIC4uLnBhdGg6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IsIC4uLnBhdGgpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eTxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdPihcbiAgICBlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sXG4gICAgcHJvcDE/OiBQMSxcbiAgICBwcm9wMj86IFAyXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXT4oXG4gICAgZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHByb3AxPzogUDEsXG4gICAgcHJvcDI/OiBQMixcbiAgICBwcm9wMz86IFAzXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogYW55LCAuLi5wYXRoOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvciwgLi4ucGF0aCk7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG5cbiAgcGVyc2lzdChrZXk6IHN0cmluZywgeyBkZWJvdW5jZVRpbWUsIG1hbmFnZXIsIGFyckNvbnRyb2xGYWN0b3J5IH06IFBlcnNpc3RPcHRpb25zPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcGVyc2lzdE1hbmFnZXIgPSBtYW5hZ2VyIHx8IG5ldyBMb2NhbFN0b3JhZ2VNYW5hZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXMucmVzdG9yZShrZXksIHBlcnNpc3RNYW5hZ2VyLCBhcnJDb250cm9sRmFjdG9yeSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBwZXJzaXN0VmFsdWUkKHRoaXMsIGtleSwge1xuICAgICAgICAgIGRlYm91bmNlVGltZTogZGVib3VuY2VUaW1lIHx8IDI1MCxcbiAgICAgICAgICBtYW5hZ2VyOiBwZXJzaXN0TWFuYWdlclxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmUoa2V5OiBzdHJpbmcsIG1hbmFnZXI6IFBlcnNpc3RNYW5hZ2VyPFQ+LCBhcnJDb250cm9sRmFjdG9yeTogQ29udHJvbEZhY3RvcnlNYXA8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gd3JhcEludG9PYnNlcnZhYmxlPFQ+KG1hbmFnZXIuZ2V0VmFsdWUoa2V5KSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIGhhbmRsZUZvcm1BcnJheXModGhpcywgdmFsdWUsIGFyckNvbnRyb2xGYWN0b3J5KTtcbiAgICAgICAgdGhpcy5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==

@@ -10,2 +10,2 @@ export class LocalStorageManager {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvcmVhY3RpdmUtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvbG9jYWxTdG9yYWdlTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBTztRQUMzQixZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGVyc2lzdE1hbmFnZXIgfSBmcm9tICcuL3BlcnNpc3RNYW5hZ2VyJztcblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZU1hbmFnZXI8VD4gaW1wbGVtZW50cyBQZXJzaXN0TWFuYWdlcjxUPiB7XG4gIHNldFZhbHVlKGtleTogc3RyaW5nLCBkYXRhOiBUKTogVCB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBnZXRWYWx1ZShrZXk6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkgfHwgJ3t9Jyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nbmVhdC9yZWFjdGl2ZS1mb3Jtcy9zcmMvbGliL2xvY2FsU3RvcmFnZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixRQUFRLENBQUMsR0FBVyxFQUFFLElBQU87UUFDM0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNpc3RNYW5hZ2VyIH0gZnJvbSAnLi9wZXJzaXN0TWFuYWdlcic7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VNYW5hZ2VyPFQ+IGltcGxlbWVudHMgUGVyc2lzdE1hbmFnZXI8VD4ge1xuICBzZXRWYWx1ZShrZXk6IHN0cmluZywgZGF0YTogVCk6IFQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZ2V0VmFsdWUoa2V5OiBzdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpIHx8ICd7fScpO1xuICB9XG59XG4iXX0=

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

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdE1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3BlcnNpc3RNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc2lzdE1hbmFnZXI8VD4ge1xuICBzZXRWYWx1ZShrZXk6IHN0cmluZywgZGF0YTogVCk6IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPjtcbiAgZ2V0VmFsdWUoa2V5OiBzdHJpbmcpOiBUIHwgUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD47XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9wZXJzaXN0TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNpc3RNYW5hZ2VyPFQ+IHtcbiAgc2V0VmFsdWUoa2V5OiBzdHJpbmcsIGRhdGE6IFQpOiBUIHwgUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD47XG4gIGdldFZhbHVlKGtleTogc3RyaW5nKTogVCB8IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+O1xufVxuIl19

@@ -10,2 +10,2 @@ export class SessionStorageManager {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC9yZWFjdGl2ZS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9zZXNzaW9uU3RvcmFnZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQU87UUFDM0IsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcnNpc3RNYW5hZ2VyIH0gZnJvbSAnLi9wZXJzaXN0TWFuYWdlcic7XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RvcmFnZU1hbmFnZXI8VD4gaW1wbGVtZW50cyBQZXJzaXN0TWFuYWdlcjxUPiB7XG4gIHNldFZhbHVlKGtleTogc3RyaW5nLCBkYXRhOiBUKTogVCB7XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldFZhbHVlKGtleTogc3RyaW5nKTogVCB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpIHx8ICd7fScpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvc2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsUUFBUSxDQUFDLEdBQVcsRUFBRSxJQUFPO1FBQzNCLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQZXJzaXN0TWFuYWdlciB9IGZyb20gJy4vcGVyc2lzdE1hbmFnZXInO1xuXG5leHBvcnQgY2xhc3MgU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyPFQ+IGltcGxlbWVudHMgUGVyc2lzdE1hbmFnZXI8VD4ge1xuICBzZXRWYWx1ZShrZXk6IHN0cmluZywgZGF0YTogVCk6IFQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBnZXRWYWx1ZShrZXk6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KSB8fCAne30nKTtcbiAgfVxufVxuIl19

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

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wgYXMgTmdBYnN0cmFjdENvbnRyb2wsXG4gIEFic3RyYWN0Q29udHJvbE9wdGlvbnMgYXMgTmdBYnN0cmFjdENvbnRyb2xPcHRpb25zLFxuICBWYWxpZGF0aW9uRXJyb3JzIGFzIE5nVmFsaWRhdGlvbkVycm9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICcuL2Zvcm1BcnJheSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJy4vZm9ybUNvbnRyb2wnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnLi9mb3JtR3JvdXAnO1xuaW1wb3J0IHsgUGVyc2lzdE1hbmFnZXIgfSBmcm9tICcuL3BlcnNpc3RNYW5hZ2VyJztcblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVycm9yczxUID0gTmdWYWxpZGF0aW9uRXJyb3JzPiA9IFQ7XG5leHBvcnQgdHlwZSBWYWxpZGF0b3JGbjxUID0gYW55LCBFID0gYW55PiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pID0+IFZhbGlkYXRpb25FcnJvcnM8RT4gfCBudWxsO1xuZXhwb3J0IHR5cGUgQXN5bmNWYWxpZGF0b3JGbjxUID0gYW55LCBFID0gYW55PiA9IChcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+XG4pID0+IFByb21pc2U8VmFsaWRhdGlvbkVycm9yczxFPiB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzPEU+IHwgbnVsbD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDb250cm9sT3B0aW9uczxUID0gYW55LCBFID0gYW55PiBleHRlbmRzIE5nQWJzdHJhY3RDb250cm9sT3B0aW9ucyB7XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbjxULCBFPiB8IFZhbGlkYXRvckZuPFQsIEU+W10gfCBudWxsO1xuICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuPFQsIEU+IHwgQXN5bmNWYWxpZGF0b3JGbjxULCBFPltdIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yT3JPcHRzID0gVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgQWJzdHJhY3RDb250cm9sT3B0aW9ucyB8IG51bGw7XG5leHBvcnQgdHlwZSBBc3luY1ZhbGlkYXRvciA9IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsO1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yID0gVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xPcHRpb25zIHtcbiAgb25seVNlbGY/OiBib29sZWFuO1xuICBlbWl0RXZlbnQ/OiBib29sZWFuO1xuICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U/OiBib29sZWFuO1xuICBlbWl0Vmlld1RvTW9kZWxDaGFuZ2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBDb250cm9sRXZlbnRPcHRpb25zID0gUGljazxDb250cm9sT3B0aW9ucywgJ2VtaXRFdmVudCcgfCAnb25seVNlbGYnPjtcbmV4cG9ydCB0eXBlIE9ubHlTZWxmID0gUGljazxDb250cm9sT3B0aW9ucywgJ29ubHlTZWxmJz47XG5leHBvcnQgdHlwZSBFbWl0RXZlbnQgPSBQaWNrPENvbnRyb2xPcHRpb25zLCAnZW1pdEV2ZW50Jz47XG5leHBvcnQgdHlwZSBDb250cm9sUGF0aCA9IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmc7XG5leHBvcnQgdHlwZSBDb250cm9sU3RhdGUgPSAnVkFMSUQnIHwgJ0lOVkFMSUQnIHwgJ1BFTkRJTkcnIHwgJ0RJU0FCTEVEJztcblxuZXhwb3J0IGludGVyZmFjZSBBYnN0cmFjdENvbnRyb2w8VCA9IGFueT4gZXh0ZW5kcyBOZ0Fic3RyYWN0Q29udHJvbCB7XG4gIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgdHlwZSBFeHRyYWN0U3RyaW5nczxUPiA9IEV4dHJhY3Q8a2V5b2YgVCwgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBOZ1ZhbGlkYXRvcnNFcnJvcnMge1xuICByZXF1aXJlZDogdHJ1ZTtcbiAgZW1haWw6IHRydWU7XG4gIHBhdHRlcm46IHsgcmVxdWlyZWRQYXR0ZXJuOiBzdHJpbmc7IGFjdHVhbFZhbHVlOiBzdHJpbmcgfTtcbiAgbWlubGVuZ3RoOiB7IHJlcXVpcmVkTGVuZ3RoOiBudW1iZXI7IGFjdHVhbExlbmd0aDogbnVtYmVyIH07XG4gIG1heGxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogbnVtYmVyOyBhY3R1YWxMZW5ndGg6IG51bWJlciB9O1xuICBtaW46IHsgbWluOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH07XG4gIG1heDogeyBtYXg6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IHR5cGUgQm94ZWRWYWx1ZTxUPiA9IHsgdmFsdWU6IFQ7IGRpc2FibGVkPzogYm9vbGVhbiB9O1xuZXhwb3J0IHR5cGUgT3JCb3hlZFZhbHVlPFQ+ID0gVCB8IEJveGVkVmFsdWU8VD47XG5cbmV4cG9ydCB0eXBlIE9iaiA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XG50eXBlIEFycmF5VHlwZTxUPiA9IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBSPiA/IFIgOiBhbnk7XG5cbmV4cG9ydCB0eXBlIEtleVZhbHVlQ29udHJvbHM8VCBleHRlbmRzIE9iaj4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgRm9ybUNvbnRyb2w8VFtLXT5cbiAgICA/IEZvcm1Db250cm9sPFRbS10+XG4gICAgOiBUW0tdIGV4dGVuZHMgRm9ybUdyb3VwPFRbS10+XG4gICAgPyBGb3JtR3JvdXA8VFtLXT5cbiAgICA6IFRbS10gZXh0ZW5kcyBGb3JtQXJyYXk8QXJyYXlUeXBlPFRbS10+PlxuICAgID8gRm9ybUFycmF5PEFycmF5VHlwZTxUW0tdPj5cbiAgICA6IEFic3RyYWN0Q29udHJvbDxUW0tdPjtcbn07XG5leHBvcnQgdHlwZSBFeHRyYWN0QWJzdHJhY3RDb250cm9sPFQsIFU+ID0gVCBleHRlbmRzIEtleVZhbHVlQ29udHJvbHM8YW55PlxuICA/IHsgW0sgaW4ga2V5b2YgVV06IEFic3RyYWN0Q29udHJvbDxVW0tdPiB9XG4gIDogVDtcblxuZXhwb3J0IHR5cGUgQXJyYXlLZXlzPFQ+ID0geyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEFycmF5PGFueT4gPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIENvbnRyb2xGYWN0b3J5PFQ+ID0gKHZhbHVlOiBUKSA9PiBBYnN0cmFjdENvbnRyb2w8VD47XG5leHBvcnQgdHlwZSBDb250cm9sRmFjdG9yeU1hcDxUPiA9IHtcbiAgW0sgaW4gQXJyYXlLZXlzPFQ+XT86IENvbnRyb2xGYWN0b3J5PEFycmF5VHlwZTxUW0tdPj47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNpc3RPcHRpb25zPFQ+IHtcbiAgZGVib3VuY2VUaW1lPzogbnVtYmVyO1xuICBtYW5hZ2VyPzogUGVyc2lzdE1hbmFnZXI8VD47XG4gIGFyckNvbnRyb2xGYWN0b3J5PzogQ29udHJvbEZhY3RvcnlNYXA8VD47XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sIGFzIE5nQWJzdHJhY3RDb250cm9sLFxuICBBYnN0cmFjdENvbnRyb2xPcHRpb25zIGFzIE5nQWJzdHJhY3RDb250cm9sT3B0aW9ucyxcbiAgVmFsaWRhdGlvbkVycm9ycyBhcyBOZ1ZhbGlkYXRpb25FcnJvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnLi9mb3JtQXJyYXknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICcuL2Zvcm1Db250cm9sJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJy4vZm9ybUdyb3VwJztcbmltcG9ydCB7IFBlcnNpc3RNYW5hZ2VyIH0gZnJvbSAnLi9wZXJzaXN0TWFuYWdlcic7XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvcnM8VCA9IE5nVmFsaWRhdGlvbkVycm9ycz4gPSBUO1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRm48VCA9IGFueSwgRSA9IGFueT4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KSA9PiBWYWxpZGF0aW9uRXJyb3JzPEU+IHwgbnVsbDtcbmV4cG9ydCB0eXBlIEFzeW5jVmFsaWRhdG9yRm48VCA9IGFueSwgRSA9IGFueT4gPSAoXG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPlxuKSA9PiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnM8RT4gfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9yczxFPiB8IG51bGw+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0Q29udHJvbE9wdGlvbnM8VCA9IGFueSwgRSA9IGFueT4gZXh0ZW5kcyBOZ0Fic3RyYWN0Q29udHJvbE9wdGlvbnMge1xuICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm48VCwgRT4gfCBWYWxpZGF0b3JGbjxULCBFPltdIHwgbnVsbDtcbiAgYXN5bmNWYWxpZGF0b3JzPzogQXN5bmNWYWxpZGF0b3JGbjxULCBFPiB8IEFzeW5jVmFsaWRhdG9yRm48VCwgRT5bXSB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRvck9yT3B0cyA9IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsO1xuZXhwb3J0IHR5cGUgQXN5bmNWYWxpZGF0b3IgPSBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbDtcbmV4cG9ydCB0eXBlIFZhbGlkYXRvciA9IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXTtcblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sT3B0aW9ucyB7XG4gIG9ubHlTZWxmPzogYm9vbGVhbjtcbiAgZW1pdEV2ZW50PzogYm9vbGVhbjtcbiAgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlPzogYm9vbGVhbjtcbiAgZW1pdFZpZXdUb01vZGVsQ2hhbmdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ29udHJvbEV2ZW50T3B0aW9ucyA9IFBpY2s8Q29udHJvbE9wdGlvbnMsICdlbWl0RXZlbnQnIHwgJ29ubHlTZWxmJz47XG5leHBvcnQgdHlwZSBPbmx5U2VsZiA9IFBpY2s8Q29udHJvbE9wdGlvbnMsICdvbmx5U2VsZic+O1xuZXhwb3J0IHR5cGUgRW1pdEV2ZW50ID0gUGljazxDb250cm9sT3B0aW9ucywgJ2VtaXRFdmVudCc+O1xuZXhwb3J0IHR5cGUgQ29udHJvbFBhdGggPSBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgQ29udHJvbFN0YXRlID0gJ1ZBTElEJyB8ICdJTlZBTElEJyB8ICdQRU5ESU5HJyB8ICdESVNBQkxFRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDb250cm9sPFQgPSBhbnk+IGV4dGVuZHMgTmdBYnN0cmFjdENvbnRyb2wge1xuICB2YWx1ZTogVDtcbn1cblxuZXhwb3J0IHR5cGUgRXh0cmFjdFN0cmluZ3M8VD4gPSBFeHRyYWN0PGtleW9mIFQsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdWYWxpZGF0b3JzRXJyb3JzIHtcbiAgcmVxdWlyZWQ6IHRydWU7XG4gIGVtYWlsOiB0cnVlO1xuICBwYXR0ZXJuOiB7IHJlcXVpcmVkUGF0dGVybjogc3RyaW5nOyBhY3R1YWxWYWx1ZTogc3RyaW5nIH07XG4gIG1pbmxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogbnVtYmVyOyBhY3R1YWxMZW5ndGg6IG51bWJlciB9O1xuICBtYXhsZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjsgYWN0dWFsTGVuZ3RoOiBudW1iZXIgfTtcbiAgbWluOiB7IG1pbjogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9O1xuICBtYXg6IHsgbWF4OiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH07XG59XG5cbmV4cG9ydCB0eXBlIEJveGVkVmFsdWU8VD4gPSB7IHZhbHVlOiBUOyBkaXNhYmxlZD86IGJvb2xlYW4gfTtcbmV4cG9ydCB0eXBlIE9yQm94ZWRWYWx1ZTxUPiA9IFQgfCBCb3hlZFZhbHVlPFQ+O1xuXG5leHBvcnQgdHlwZSBPYmogPSB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xudHlwZSBBcnJheVR5cGU8VD4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgUj4gPyBSIDogYW55O1xuXG5leHBvcnQgdHlwZSBLZXlWYWx1ZUNvbnRyb2xzPFQgZXh0ZW5kcyBPYmo+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEZvcm1Db250cm9sPFRbS10+XG4gICAgPyBGb3JtQ29udHJvbDxUW0tdPlxuICAgIDogVFtLXSBleHRlbmRzIEZvcm1Hcm91cDxUW0tdPlxuICAgID8gRm9ybUdyb3VwPFRbS10+XG4gICAgOiBUW0tdIGV4dGVuZHMgRm9ybUFycmF5PEFycmF5VHlwZTxUW0tdPj5cbiAgICA/IEZvcm1BcnJheTxBcnJheVR5cGU8VFtLXT4+XG4gICAgOiBBYnN0cmFjdENvbnRyb2w8VFtLXT47XG59O1xuZXhwb3J0IHR5cGUgRXh0cmFjdEFic3RyYWN0Q29udHJvbDxULCBVPiA9IFQgZXh0ZW5kcyBLZXlWYWx1ZUNvbnRyb2xzPGFueT5cbiAgPyB7IFtLIGluIGtleW9mIFVdOiBBYnN0cmFjdENvbnRyb2w8VVtLXT4gfVxuICA6IFQ7XG5cbmV4cG9ydCB0eXBlIEFycmF5S2V5czxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBBcnJheTxhbnk+ID8gSyA6IG5ldmVyIH1ba2V5b2YgVF07XG5leHBvcnQgdHlwZSBDb250cm9sRmFjdG9yeTxUPiA9ICh2YWx1ZTogVCkgPT4gQWJzdHJhY3RDb250cm9sPFQ+O1xuZXhwb3J0IHR5cGUgQ29udHJvbEZhY3RvcnlNYXA8VD4gPSB7XG4gIFtLIGluIEFycmF5S2V5czxUPl0/OiBDb250cm9sRmFjdG9yeTxBcnJheVR5cGU8VFtLXT4+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBQZXJzaXN0T3B0aW9uczxUPiB7XG4gIGRlYm91bmNlVGltZT86IG51bWJlcjtcbiAgbWFuYWdlcj86IFBlcnNpc3RNYW5hZ2VyPFQ+O1xuICBhcnJDb250cm9sRmFjdG9yeT86IENvbnRyb2xGYWN0b3J5TWFwPFQ+O1xufVxuIl19

@@ -20,2 +20,2 @@ import { from, isObservable, of } from 'rxjs';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmduZWF0L3JlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxNQUFNLFVBQVUsV0FBVyxDQUFJLEtBQWM7SUFDM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsQ0FBTTtJQUMvQixPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxDQUFNO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQVU7SUFDbEMsT0FBTyxRQUFPLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUEsS0FBSyxVQUFVLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBSSxLQUFxQztJQUN6RSxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDcEI7SUFFRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlQXJyYXk8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHg6IGFueSk6IHggaXMgRnVuY3Rpb24ge1xuICByZXR1cm4gdHlwZW9mIHggPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbCh2OiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQcm9taXNlPHVua25vd24+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZT8udGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBJbnRvT2JzZXJ2YWJsZTxUPih2YWx1ZTogVCB8IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpc09ic2VydmFibGUodmFsdWUpIHx8IGlzUHJvbWlzZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZnJvbSh2YWx1ZSk7XG4gIH1cblxuICByZXR1cm4gb2YodmFsdWUpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUQsTUFBTSxVQUFVLFdBQVcsQ0FBSSxLQUFjO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQU07SUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsQ0FBTTtJQUMxQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2xDLE9BQU8sUUFBTyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFBLEtBQUssVUFBVSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksS0FBcUM7SUFDekUsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih4OiBhbnkpOiB4IGlzIEZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOaWwodjogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWU/LnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSW50b09ic2VydmFibGU8VD4odmFsdWU6IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSB8fCBpc1Byb21pc2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZyb20odmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG9mKHZhbHVlKTtcbn1cbiJdfQ==

@@ -5,2 +5,2 @@ /**

export * from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmduZWF0LXJlYWN0aXZlLWZvcm1zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC9yZWFjdGl2ZS1mb3Jtcy8iLCJzb3VyY2VzIjpbIm5nbmVhdC1yZWFjdGl2ZS1mb3Jtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FzeW5jVmFsaWRhdG9yIGFzIMm1YixFeHRyYWN0QWJzdHJhY3RDb250cm9sIGFzIMm1ZCxPckJveGVkVmFsdWUgYXMgybVjLFZhbGlkYXRvck9yT3B0cyBhcyDJtWF9IGZyb20gJy4vbGliL3R5cGVzJzsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmduZWF0LXJlYWN0aXZlLWZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9uZ25lYXQtcmVhY3RpdmUtZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtBc3luY1ZhbGlkYXRvciBhcyDJtWIsRXh0cmFjdEFic3RyYWN0Q29udHJvbCBhcyDJtWQsT3JCb3hlZFZhbHVlIGFzIMm1YyxWYWxpZGF0b3JPck9wdHMgYXMgybVhfSBmcm9tICcuL2xpYi90eXBlcyc7Il19

@@ -8,2 +8,2 @@ export { FormArray } from './lib/formArray';

export { SessionStorageManager } from './lib/sessionStorageManager';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvcmVhY3RpdmUtZm9ybXMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVVoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJy4vbGliL2Zvcm1BcnJheSc7XG5leHBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJy4vbGliL2Zvcm1Db250cm9sJztcbmV4cG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJy4vbGliL2Zvcm1Hcm91cCc7XG5leHBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJy4vbGliL2Zvcm1CdWlsZGVyJztcbmV4cG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgVmFsaWRhdG9yRm4sXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIE5nVmFsaWRhdG9yc0Vycm9ycyxcbiAgQ29udHJvbEZhY3RvcnksXG4gIENvbnRyb2xGYWN0b3J5TWFwLFxuICBQZXJzaXN0T3B0aW9uc1xufSBmcm9tICcuL2xpYi90eXBlcyc7XG5leHBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vbGliL2NvbnRyb2xWYWx1ZUFjY2Vzc29yJztcbmV4cG9ydCB7IFBlcnNpc3RNYW5hZ2VyIH0gZnJvbSAnLi9saWIvcGVyc2lzdE1hbmFnZXInO1xuZXhwb3J0IHsgTG9jYWxTdG9yYWdlTWFuYWdlciB9IGZyb20gJy4vbGliL2xvY2FsU3RvcmFnZU1hbmFnZXInO1xuZXhwb3J0IHsgU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyIH0gZnJvbSAnLi9saWIvc2Vzc2lvblN0b3JhZ2VNYW5hZ2VyJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nbmVhdC9yZWFjdGl2ZS1mb3Jtcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFVaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICcuL2xpYi9mb3JtQXJyYXknO1xuZXhwb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICcuL2xpYi9mb3JtQ29udHJvbCc7XG5leHBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICcuL2xpYi9mb3JtR3JvdXAnO1xuZXhwb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICcuL2xpYi9mb3JtQnVpbGRlcic7XG5leHBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIFZhbGlkYXRvckZuLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBOZ1ZhbGlkYXRvcnNFcnJvcnMsXG4gIENvbnRyb2xGYWN0b3J5LFxuICBDb250cm9sRmFjdG9yeU1hcCxcbiAgUGVyc2lzdE9wdGlvbnNcbn0gZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL2xpYi9jb250cm9sVmFsdWVBY2Nlc3Nvcic7XG5leHBvcnQgeyBQZXJzaXN0TWFuYWdlciB9IGZyb20gJy4vbGliL3BlcnNpc3RNYW5hZ2VyJztcbmV4cG9ydCB7IExvY2FsU3RvcmFnZU1hbmFnZXIgfSBmcm9tICcuL2xpYi9sb2NhbFN0b3JhZ2VNYW5hZ2VyJztcbmV4cG9ydCB7IFNlc3Npb25TdG9yYWdlTWFuYWdlciB9IGZyb20gJy4vbGliL3Nlc3Npb25TdG9yYWdlTWFuYWdlcic7XG4iXX0=
import { FormArray as FormArray$1, FormControl as FormControl$1, FormGroup as FormGroup$1, FormBuilder as FormBuilder$1 } from '@angular/forms';
import { isObservable, from, of, merge, defer, Subject } from 'rxjs';
import { map, distinctUntilChanged, debounceTime, switchMap, take, tap } from 'rxjs/operators';
import { __decorate } from 'tslib';
import { ɵɵdefineInjectable, Injectable } from '@angular/core';

@@ -230,2 +229,13 @@

}
remove(value) {
this.removeWhen(v => v.value === value);
}
removeWhen(predicate) {
const toRemove = [];
for (let i = this.length - 1; i >= 0; --i) {
if (predicate(this.at(i))) {
this.removeAt(i);
}
}
}
}

@@ -476,3 +486,3 @@

}
let FormBuilder = class FormBuilder extends FormBuilder$1 {
class FormBuilder extends FormBuilder$1 {
group(controlsConfig, options) {

@@ -505,7 +515,7 @@ const controls = this._reduceControls(controlsConfig);

}
};
}
FormBuilder.ɵprov = ɵɵdefineInjectable({ factory: function FormBuilder_Factory() { return new FormBuilder(); }, token: FormBuilder, providedIn: "root" });
FormBuilder = __decorate([
Injectable({ providedIn: 'root' })
], FormBuilder);
FormBuilder.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];

@@ -512,0 +522,0 @@ class ControlValueAccessor {

import { ControlValueAccessor as NgControlValueAccessor } from '@angular/forms';
export declare abstract class ControlValueAccessor<T = any> implements NgControlValueAccessor {
abstract writeValue(value: T): void;
onChange?: (value: T) => void;
onChange?: (value: T | null) => void;
onTouched?: () => void;

@@ -6,0 +6,0 @@ registerOnChange(fn: (value: T | null) => void): void;

@@ -51,2 +51,4 @@ import { FormArray as NgFormArray } from '@angular/forms';

setDisable(disable?: boolean, opts?: ControlEventOptions): void;
remove(value: T): void;
removeWhen(predicate: (element: AbstractControl<T>) => boolean): void;
}

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

{"__symbolic":"module","version":4,"metadata":{"FormArray":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormArray","line":33,"character":64},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AbstractControl"}]},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"at":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"push":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}]}},"FormControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormControl","line":33,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}]}},"FormGroup":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormGroup","line":44,"character":76},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getControl":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addControl":[{"__symbolic":"method"}],"removeControl":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"persist":[{"__symbolic":"method"}],"restore":[{"__symbolic":"method"}]}},"FormBuilder":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":28,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"group":[{"__symbolic":"method"}],"control":[{"__symbolic":"method"}],"array":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵa":{"__symbolic":"interface"},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"interface"},"ɵd":{"__symbolic":"interface"},"AbstractControl":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"AsyncValidatorFn":{"__symbolic":"interface"},"NgValidatorsErrors":{"__symbolic":"interface"},"ControlFactory":{"__symbolic":"interface"},"ControlFactoryMap":{"__symbolic":"interface"},"PersistOptions":{"__symbolic":"interface"},"ControlValueAccessor":{"__symbolic":"class","arity":1,"members":{"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"PersistManager":{"__symbolic":"interface"},"LocalStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}},"SessionStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}}},"origins":{"FormArray":"./lib/formArray","FormControl":"./lib/formControl","FormGroup":"./lib/formGroup","FormBuilder":"./lib/formBuilder","ɵa":"./lib/types","ɵb":"./lib/types","ɵc":"./lib/types","ɵd":"./lib/types","AbstractControl":"./lib/types","ValidatorFn":"./lib/types","AsyncValidatorFn":"./lib/types","NgValidatorsErrors":"./lib/types","ControlFactory":"./lib/types","ControlFactoryMap":"./lib/types","PersistOptions":"./lib/types","ControlValueAccessor":"./lib/controlValueAccessor","PersistManager":"./lib/persistManager","LocalStorageManager":"./lib/localStorageManager","SessionStorageManager":"./lib/sessionStorageManager"},"importAs":"@ngneat/reactive-forms"}
{"__symbolic":"module","version":4,"metadata":{"FormArray":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormArray","line":33,"character":64},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AbstractControl"}]},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"at":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"push":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"removeWhen":[{"__symbolic":"method"}]}},"FormControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormControl","line":33,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}]}},"FormGroup":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormGroup","line":44,"character":76},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getControl":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addControl":[{"__symbolic":"method"}],"removeControl":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"persist":[{"__symbolic":"method"}],"restore":[{"__symbolic":"method"}]}},"FormBuilder":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":28,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"group":[{"__symbolic":"method"}],"control":[{"__symbolic":"method"}],"array":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵa":{"__symbolic":"interface"},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"interface"},"ɵd":{"__symbolic":"interface"},"AbstractControl":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"AsyncValidatorFn":{"__symbolic":"interface"},"NgValidatorsErrors":{"__symbolic":"interface"},"ControlFactory":{"__symbolic":"interface"},"ControlFactoryMap":{"__symbolic":"interface"},"PersistOptions":{"__symbolic":"interface"},"ControlValueAccessor":{"__symbolic":"class","arity":1,"members":{"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"PersistManager":{"__symbolic":"interface"},"LocalStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}},"SessionStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}}},"origins":{"FormArray":"./lib/formArray","FormControl":"./lib/formControl","FormGroup":"./lib/formGroup","FormBuilder":"./lib/formBuilder","ɵa":"./lib/types","ɵb":"./lib/types","ɵc":"./lib/types","ɵd":"./lib/types","AbstractControl":"./lib/types","ValidatorFn":"./lib/types","AsyncValidatorFn":"./lib/types","NgValidatorsErrors":"./lib/types","ControlFactory":"./lib/types","ControlFactoryMap":"./lib/types","PersistOptions":"./lib/types","ControlValueAccessor":"./lib/controlValueAccessor","PersistManager":"./lib/persistManager","LocalStorageManager":"./lib/localStorageManager","SessionStorageManager":"./lib/sessionStorageManager"},"importAs":"@ngneat/reactive-forms"}
{
"name": "@ngneat/reactive-forms",
"description": "(Angular Reactive) Forms with Benefits",
"version": "1.1.0",
"version": "1.2.0",
"schematics": "./schematics/collection.json",

@@ -16,3 +16,4 @@ "keywords": [

"dependencies": {
"@phenomnomnominal/tsquery": "4.1.0"
"@phenomnomnominal/tsquery": "4.1.0",
"tslib": "^2.0.0"
},

@@ -31,14 +32,9 @@ "publishConfig": {

"main": "bundles/ngneat-reactive-forms.umd.js",
"module": "fesm5/ngneat-reactive-forms.js",
"module": "fesm2015/ngneat-reactive-forms.js",
"es2015": "fesm2015/ngneat-reactive-forms.js",
"esm5": "esm5/ngneat-reactive-forms.js",
"esm2015": "esm2015/ngneat-reactive-forms.js",
"fesm5": "fesm5/ngneat-reactive-forms.js",
"fesm2015": "fesm2015/ngneat-reactive-forms.js",
"typings": "ngneat-reactive-forms.d.ts",
"metadata": "ngneat-reactive-forms.metadata.json",
"sideEffects": false,
"peerDependencies": {
"tslib": "^1.10.0"
}
"sideEffects": false
}

@@ -49,2 +49,3 @@ <p align="center">

- [Migration](#migration)
- [Compatibility](#compatibility)

@@ -359,2 +360,28 @@ ## Control Type

### FormArray methods
### remove()
Remove a control from an array based on its value
```ts
import { FormArray } from '@ngneat/reactive-forms';
const array = new FormArray<string>(...);
// Remove empty strings
array.remove('')
```
### removeIf()
Remove a control from an array based on a predicate
```ts
import { FormArray } from '@ngneat/reactive-forms';
const array = new FormArray<Profile>(...);
// Only keep addresses in NYC
array.removeIf((control) => control.get('address').get('city').value !== 'New York')
```
### Control Path

@@ -442,2 +469,17 @@

_note:_ While the FormGroups/FormControls/etc created with our FormBuilder will have all additions, currently TS will not infer this, so one should still 'cast' them again on use:
```ts
const group = fb.group({
userName: null,
email: null
});
// will get TS error
group.controls.email.errors$.subscribe();
// will not get TS error
(group.controls.email as FormControl<string>).errors$.subscribe();
```
## Persist Form

@@ -507,3 +549,3 @@

Becuase the form is strongly typed, you can only configure factories for properties that are of type `Array`. The library makes it also possible to correclty infer the type of `value` for the factory function.
Because the form is strongly typed, you can only configure factories for properties that are of type `Array`. The library makes it also possible to correctly infer the type of `value` for the factory function.

@@ -535,2 +577,6 @@ ## ESLint Rule

## Compatibility
Reactive-forms is compatible with Angular versions 8 and later.
## Contributors ✨

@@ -551,2 +597,3 @@

<td align="center"><a href="https://github.com/tehshin"><img src="https://avatars1.githubusercontent.com/u/876923?v=4" width="100px;" alt=""/><br /><sub><b>tehshin</b></sub></a><br /><a href="https://github.com/@ngneat/reactive-forms/commits?author=tehshin" title="Code">💻</a> <a href="https://github.com/@ngneat/reactive-forms/commits?author=tehshin" title="Documentation">📖</a></td>
<td align="center"><a href="http://mario.arnautou.fr/"><img src="https://avatars2.githubusercontent.com/u/10983824?v=4" width="100px;" alt=""/><br /><sub><b>Mario Arnautou</b></sub></a><br /><a href="https://github.com/@ngneat/reactive-forms/commits?author=MarioArnt" title="Code">💻</a></td>
</tr>

@@ -553,0 +600,0 @@ </table>

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