Socket
Socket
Sign inDemoInstall

@s-libs/app-state

Package Overview
Dependencies
6
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 12.0.0-next.1 to 12.0.0

1

bundles/app-state.umd.js

@@ -521,3 +521,2 @@ (function (global, factory) {

/** @hidden */
var ChildStore = /** @class */ (function (_super) {

@@ -524,0 +523,0 @@ __extends(ChildStore, _super);

3

esm2015/lib/child-store.js
import { clone, omit } from '@s-libs/micro-dash';
import { Store } from './index';
/** @hidden */
export class ChildStore extends Store {

@@ -57,2 +56,2 @@ constructor(getRootStore, parent, key) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHAtc3RhdGUvc3JjL2xpYi9jaGlsZC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBYSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFM0MsY0FBYztBQUNkLE1BQU0sT0FBTyxVQUFjLFNBQVEsS0FBUTtJQUN6QyxZQUNFLFlBQXFDLEVBQzdCLE1BQWtCLEVBQ2xCLEdBQVE7UUFFaEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBSFosV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUFLO0lBR2xCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUTtRQUNWLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLOztRQUNILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWUsQ0FBQztTQUM3QjthQUFNO1lBQ0wsT0FBTyxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLDBDQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFlO1FBQ2pDLE9BQU8sQ0FDTCxLQUFLLFlBQVksVUFBVTtZQUMzQixJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVTLGFBQWE7O1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBQSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSwwQ0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRVMsZUFBZTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmUsIG9taXQgfSBmcm9tICdAcy1saWJzL21pY3JvLWRhc2gnO1xuaW1wb3J0IHsgUm9vdFN0b3JlLCBTdG9yZSB9IGZyb20gJy4vaW5kZXgnO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGNsYXNzIENoaWxkU3RvcmU8VD4gZXh0ZW5kcyBTdG9yZTxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGdldFJvb3RTdG9yZTogKCkgPT4gUm9vdFN0b3JlPG9iamVjdD4sXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSBrZXk6IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoZ2V0Um9vdFN0b3JlKTtcbiAgfVxuXG4gIHNldCh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5zdGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50U3RhdGUgPSBjbG9uZSh0aGlzLnBhcmVudC5zdGF0ZSgpKTtcbiAgICBpZiAoIXBhcmVudFN0YXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBtb2RpZnkgd2hlbiBwYXJlbnQgc3RhdGUgaXMgbWlzc2luZycpO1xuICAgIH1cblxuICAgIHBhcmVudFN0YXRlW3RoaXMua2V5XSA9IHZhbHVlO1xuICAgIHRoaXMucGFyZW50LnNldChwYXJlbnRTdGF0ZSk7XG4gIH1cblxuICBkZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnQuc2V0VXNpbmcob21pdCwgdGhpcy5rZXkpO1xuICB9XG5cbiAgc3RhdGUoKTogVCB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMubGFzdEtub3duU3RhdGUhO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQuc3RhdGUoKT8uW3RoaXMua2V5XTtcbiAgICB9XG4gIH1cblxuICByZWZlcnNUb1NhbWVTdGF0ZUFzKG90aGVyOiBTdG9yZTxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBvdGhlciBpbnN0YW5jZW9mIENoaWxkU3RvcmUgJiZcbiAgICAgIHRoaXMua2V5ID09PSBvdGhlci5rZXkgJiZcbiAgICAgIHRoaXMucGFyZW50LnJlZmVyc1RvU2FtZVN0YXRlQXMob3RoZXIucGFyZW50KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWF5YmVBY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSAmJiB0aGlzLnNob3VsZEJlQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVDaGlsZCh0aGlzLnBhcmVudCwgdGhpcy5rZXksIHRoaXMpO1xuICAgICAgdGhpcy5sYXN0S25vd25TdGF0ZSA9IHRoaXMucGFyZW50LnN0YXRlKCk/Llt0aGlzLmtleV07XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1heWJlRGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FjdGl2ZSgpICYmICF0aGlzLnNob3VsZEJlQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZUNoaWxkKHRoaXMucGFyZW50LCB0aGlzLmtleSwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRCZUFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmVycy5zaXplID4gMCB8fCB0aGlzLmFjdGl2ZUNoaWxkcmVuLnNpemUgPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoaWxkQWN0aXZlKHRoaXMucGFyZW50LCB0aGlzLmtleSwgdGhpcyk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHAtc3RhdGUvc3JjL2xpYi9jaGlsZC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBYSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFM0MsTUFBTSxPQUFPLFVBQWMsU0FBUSxLQUFRO0lBQ3pDLFlBQ0UsWUFBcUMsRUFDN0IsTUFBa0IsRUFDbEIsR0FBUTtRQUVoQixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFIWixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLFFBQUcsR0FBSCxHQUFHLENBQUs7SUFHbEIsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFRO1FBQ1YsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFCLE9BQU87U0FDUjtRQUVELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUs7O1FBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBZSxDQUFDO1NBQzdCO2FBQU07WUFDTCxPQUFPLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsMENBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWU7UUFDakMsT0FBTyxDQUNMLEtBQUssWUFBWSxVQUFVO1lBQzNCLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUc7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRVMsYUFBYTs7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLDBDQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZSwgb21pdCB9IGZyb20gJ0BzLWxpYnMvbWljcm8tZGFzaCc7XG5pbXBvcnQgeyBSb290U3RvcmUsIFN0b3JlIH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBjbGFzcyBDaGlsZFN0b3JlPFQ+IGV4dGVuZHMgU3RvcmU8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBnZXRSb290U3RvcmU6ICgpID0+IFJvb3RTdG9yZTxvYmplY3Q+LFxuICAgIHByaXZhdGUgcGFyZW50OiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUga2V5OiBhbnksXG4gICkge1xuICAgIHN1cGVyKGdldFJvb3RTdG9yZSk7XG4gIH1cblxuICBzZXQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc3RhdGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudFN0YXRlID0gY2xvbmUodGhpcy5wYXJlbnQuc3RhdGUoKSk7XG4gICAgaWYgKCFwYXJlbnRTdGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5ub3QgbW9kaWZ5IHdoZW4gcGFyZW50IHN0YXRlIGlzIG1pc3NpbmcnKTtcbiAgICB9XG5cbiAgICBwYXJlbnRTdGF0ZVt0aGlzLmtleV0gPSB2YWx1ZTtcbiAgICB0aGlzLnBhcmVudC5zZXQocGFyZW50U3RhdGUpO1xuICB9XG5cbiAgZGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50LnNldFVzaW5nKG9taXQsIHRoaXMua2V5KTtcbiAgfVxuXG4gIHN0YXRlKCk6IFQge1xuICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhc3RLbm93blN0YXRlITtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LnN0YXRlKCk/Llt0aGlzLmtleV07XG4gICAgfVxuICB9XG5cbiAgcmVmZXJzVG9TYW1lU3RhdGVBcyhvdGhlcjogU3RvcmU8VD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3RoZXIgaW5zdGFuY2VvZiBDaGlsZFN0b3JlICYmXG4gICAgICB0aGlzLmtleSA9PT0gb3RoZXIua2V5ICYmXG4gICAgICB0aGlzLnBhcmVudC5yZWZlcnNUb1NhbWVTdGF0ZUFzKG90aGVyLnBhcmVudClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1heWJlQWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkgJiYgdGhpcy5zaG91bGRCZUFjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlQ2hpbGQodGhpcy5wYXJlbnQsIHRoaXMua2V5LCB0aGlzKTtcbiAgICAgIHRoaXMubGFzdEtub3duU3RhdGUgPSB0aGlzLnBhcmVudC5zdGF0ZSgpPy5bdGhpcy5rZXldO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBtYXliZURlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUoKSAmJiAhdGhpcy5zaG91bGRCZUFjdGl2ZSgpKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVDaGlsZCh0aGlzLnBhcmVudCwgdGhpcy5rZXksIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkQmVBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlcnMuc2l6ZSA+IDAgfHwgdGhpcy5hY3RpdmVDaGlsZHJlbi5zaXplID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDaGlsZEFjdGl2ZSh0aGlzLnBhcmVudCwgdGhpcy5rZXksIHRoaXMpO1xuICB9XG59XG4iXX0=

@@ -113,2 +113,2 @@ import { CallableObject } from '@s-libs/js-core';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHAtc3RhdGUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxTQUFTLENBQUM7QUFZaEQsTUFBTSxPQUFnQixLQUFTLFNBQVEsY0FBMkI7SUFxQmhFLFlBQW1CLFlBQXFDO1FBQ3RELEtBQUssQ0FDSCxDQUFDLFFBQWEsRUFBRSxFQUFFOztZQUNoQixPQUFBLENBQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQywwQ0FBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLDBDQUFFLEtBQUs7Z0JBQ3pELElBQUksVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7U0FBQSxDQUMvQyxDQUFDO1FBTGUsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBcEJ4RDs7V0FFRztRQUNNLE1BQUMsR0FBRyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMs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QUFBLE1BQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSSxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVTLGFBQWEsQ0FDckIsTUFBa0IsRUFDbEIsR0FBUSxFQUNSLEtBQXNCO1FBRXRCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7WUFDakMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVMsZUFBZSxDQUN2QixNQUFrQixFQUNsQixHQUFRLEVBQ1IsS0FBc0I7UUFFdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7UUFDNUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxhYmxlT2JqZWN0IH0gZnJvbSAnQHMtbGlicy9qcy1jb3JlJztcclxuaW1wb3J0IHsgY2xvbmUsIGV2ZXJ5IH0gZnJvbSAnQHMtbGlicy9taWNyby1kYXNoJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGlsZFN0b3JlLCBSb290U3RvcmUgfSBmcm9tICcuL2luZGV4JztcclxuXHJcbi8qKiBAaGlkZGVuICovXHJcbnR5cGUgR2V0U2xpY2U8VD4gPSA8SyBleHRlbmRzIGtleW9mIFQ+KGF0dHI6IEspID0+IFN0b3JlPFRbS10+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdG9yZTxUPiBleHRlbmRzIEdldFNsaWNlPFQ+IHtcclxuICAvKipcclxuICAgKiBTZWxlY3QgYSBzbGljZSBvZiB0aGUgc3RvcmUgdG8gb3BlcmF0ZSBvbi4gRm9yIGV4YW1wbGUgYHN0b3JlKCdjdXJyZW50VXNlcicpYCB3aWxsIHJldHVybiBhIG5ldyBgU3RvcmVgIHRoYXQgcmVwcmVzZW50cyB0aGUgYGN1cnJlbnRVc2VyYCBwcm9wZXJ0eS5cclxuICAgKi9cclxuICA8SyBleHRlbmRzIGtleW9mIFQsIFYgZXh0ZW5kcyBUW0tdPihhdHRyOiBLKTogU3RvcmU8Vj47XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yZTxUPiBleHRlbmRzIENhbGxhYmxlT2JqZWN0PEdldFNsaWNlPFQ+PiB7XHJcbiAgLyoqXHJcbiAgICogQW4gYE9ic2VydmFibGVgIG9mIHRoZSBzdGF0ZSBvZiB0aGlzIHN0b3JlIG9iamVjdC5cclxuICAgKi9cclxuICByZWFkb25seSAkID0gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zdGF0ZSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVycy5zZXQoc3Vic2NyaWJlciwgdmFsdWUpO1xyXG4gICAgdGhpcy5tYXliZUFjdGl2YXRlKCk7XHJcbiAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVycy5kZWxldGUoc3Vic2NyaWJlcik7XHJcbiAgICAgIHRoaXMubWF5YmVEZWFjdGl2YXRlKCk7XHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgc3Vic2NyaWJlcnMgPSBuZXcgTWFwPFN1YnNjcmliZXI8VD4sIFQgfCB1bmRlZmluZWQ+KCk7XHJcbiAgcHJvdGVjdGVkIGFjdGl2ZUNoaWxkcmVuID0gbmV3IE1hcDxzdHJpbmcsIFNldDxTdG9yZTx1bmtub3duPj4+KCk7XHJcbiAgcHJvdGVjdGVkIGxhc3RLbm93blN0YXRlPzogVDtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0S25vd25TdGF0ZUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGdldFJvb3RTdG9yZTogKCkgPT4gUm9vdFN0b3JlPG9iamVjdD4pIHtcclxuICAgIHN1cGVyKFxyXG4gICAgICAoY2hpbGRLZXk6IGFueSkgPT5cclxuICAgICAgICB0aGlzLmFjdGl2ZUNoaWxkcmVuLmdldChjaGlsZEtleSk/LnZhbHVlcygpLm5leHQoKT8udmFsdWUgfHxcclxuICAgICAgICBuZXcgQ2hpbGRTdG9yZShnZXRSb290U3RvcmUsIHRoaXMsIGNoaWxkS2V5KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBzdGF0ZSByZXByZXNlbnRlZCBieSB0aGlzIHN0b3JlIG9iamVjdC5cclxuICAgKi9cclxuICBhYnN0cmFjdCBzdGF0ZSgpOiBUO1xyXG5cclxuICAvKipcclxuICAgKiBSZXBsYWNlIHRoZSBzdGF0ZSByZXByZXNlbnRlZCBieSB0aGlzIHN0b3JlIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS5cclxuICAgKi9cclxuICBhYnN0cmFjdCBzZXQodmFsdWU6IFQpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBzdGF0ZSByZXByZXNlbnRlZCBieSB0aGlzIHN0b3JlIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQuIEUuZy4gdG8gcmVtb3ZlIHRoZSBjdXJyZW50IHVzZXI6XHJcbiAgICpcclxuICAgKiBgYGB0c1xyXG4gICAqIHN0b3JlKCdjdXJyZW50VXNlcicpLmRlbGV0ZSgpO1xyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIGFic3RyYWN0IGRlbGV0ZSgpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBgU3RvcmVgIG9wZXJhdGVzIG9uIHRoZSBzYW1lIHNsaWNlIG9mIHRoZSBzdG9yZSBhcyB0aGlzIG9iamVjdC5cclxuICAgKi9cclxuICBhYnN0cmFjdCByZWZlcnNUb1NhbWVTdGF0ZUFzKG90aGVyOiBTdG9yZTxUPik6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEFzc2lnbnMgdGhlIGdpdmVuIHZhbHVlcyB0byBzdGF0ZSBvZiB0aGlzIHN0b3JlIG9iamVjdC4gVGhlIHJlc3VsdGluZyBzdGF0ZSB3aWxsIGJlIGxpa2UgYE9iamVjdC5hc3NpZ24oc3RvcmUuc3RhdGUoKSwgdmFsdWUpYC5cclxuICAgKi9cclxuICBhc3NpZ24odmFsdWU6IFBhcnRpYWw8VD4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VXNpbmcoKHN0YXRlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGV2ZXJ5KHZhbHVlLCAoaW5uZXJWYWx1ZSwga2V5KSA9PiBzdGF0ZVtrZXldID09PSBpbm5lclZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgLi4uKHZhbHVlIGFzIGFueSkgfTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSdW5zIGBmdW5jYCBvbiB0aGUgc3RhdGUgYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIHJldHVybiB2YWx1ZS4gVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGBmdW5jYCB3aWxsIGJlIHRoZSBzdGF0ZSwgZm9sbG93ZWQgYnkgdGhlIGFyZ3VtZW50cyBpbiBgYXJnc2AuXHJcbiAgICpcclxuICAgKiBXQVJOSU5HOiBZb3UgU0hPVUxEIE5PVCB1c2UgYSBmdW5jdGlvbiB0aGF0IHdpbGwgbXV0YXRlIHRoZSBzdGF0ZS5cclxuICAgKi9cclxuICBzZXRVc2luZzxBIGV4dGVuZHMgYW55W10+KFxyXG4gICAgZnVuYzogKHN0YXRlOiBULCAuLi5hcmdzOiBBKSA9PiBULFxyXG4gICAgLi4uYXJnczogQVxyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXQoZnVuYyh0aGlzLnN0YXRlKCksIC4uLmFyZ3MpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJ1bnMgYGZ1bmNgIG9uIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3RhdGUsIHJlcGxhY2luZyB0aGUgc3RhdGUgd2l0aCB0aGUgY2xvbmUuIFRoZSBmaXJzdCBhcmd1bWVudCB0byBgZnVuY2Agd2lsbCBiZSB0aGUgY2xvbmVkIHN0YXRlLCBmb2xsb3dlZCBieSB0aGUgYXJndW1lbnRzIGluIGBhcmdzYC5cclxuICAgKlxyXG4gICAqIFdBUk5JTkc6IFlvdSBTSE9VTEQgTk9UIHVzZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBtdXRhdGUgbmVzdGVkIG9iamVjdHMgd2l0aGluIHRoZSBzdGF0ZS5cclxuICAgKi9cclxuICBtdXRhdGVVc2luZzxBIGV4dGVuZHMgYW55W10+KFxyXG4gICAgZnVuYzogKHN0YXRlOiBULCAuLi5hcmdzOiBBKSA9PiB2b2lkLFxyXG4gICAgLi4uYXJnczogQVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhdGUgPSBjbG9uZSh0aGlzLnN0YXRlKCkpO1xyXG4gICAgZnVuYyhzdGF0ZSwgLi4uYXJncyk7XHJcbiAgICB0aGlzLnNldChzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbWF5YmVBY3RpdmF0ZSgpOiB2b2lkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbWF5YmVEZWFjdGl2YXRlKCk6IHZvaWQ7XHJcblxyXG4gIHByb3RlY3RlZCB1cGRhdGVTdGF0ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgPT09IHRoaXMubGFzdEtub3duU3RhdGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdEtub3duU3RhdGUgPSB2YWx1ZTtcclxuICAgIHRoaXMubGFzdEtub3duU3RhdGVDaGFuZ2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuYWN0aXZlQ2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW4sIGtleSkgPT4ge1xyXG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XHJcbiAgICAgICAgY2hpbGQudXBkYXRlU3RhdGUodmFsdWU/LltrZXldKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbWF5YmVFbWl0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmxhc3RLbm93blN0YXRlQ2hhbmdlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYXN0S25vd25TdGF0ZUNoYW5nZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc3Vic2NyaWJlcnMuZm9yRWFjaCgobGFzdEVtaXR0ZWQsIHN1YnNjcmliZXIpID0+IHtcclxuICAgICAgaWYgKGxhc3RFbWl0dGVkICE9PSB0aGlzLmxhc3RLbm93blN0YXRlKSB7XHJcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRoaXMubGFzdEtub3duU3RhdGUpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMuc2V0KHN1YnNjcmliZXIsIHRoaXMubGFzdEtub3duU3RhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWN0aXZlQ2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW4pID0+IHtcclxuICAgICAgLy8gYGNoaWxkcmVuYCBjYW4gYmUgdW5kZWZpbmVkIGlmIGVtaXR0aW5nIGZyb20gYSBwcmV2aW91cyBrZXkgY2F1c2VkIHJlbW92ZWQgYWxsIHN1YnNjcmliZXJzIHRvIHRoaXMga2V5XHJcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4gfHwgW10pIHtcclxuICAgICAgICBjaGlsZC5tYXliZUVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaXNDaGlsZEFjdGl2ZShcclxuICAgIHBhcmVudDogU3RvcmU8YW55PixcclxuICAgIGtleTogYW55LFxyXG4gICAgY2hpbGQ6IENoaWxkU3RvcmU8YW55PixcclxuICApOiBib29sZWFuIHtcclxuICAgIHJldHVybiBwYXJlbnQuYWN0aXZlQ2hpbGRyZW4uZ2V0KGtleSk/LmhhcyhjaGlsZCkgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWN0aXZhdGVDaGlsZChcclxuICAgIHBhcmVudDogU3RvcmU8YW55PixcclxuICAgIGtleTogYW55LFxyXG4gICAgY2hpbGQ6IENoaWxkU3RvcmU8YW55PixcclxuICApOiB2b2lkIHtcclxuICAgIGxldCBzZXQgPSBwYXJlbnQuYWN0aXZlQ2hpbGRyZW4uZ2V0KGtleSk7XHJcbiAgICBpZiAoIXNldCkge1xyXG4gICAgICBzZXQgPSBuZXcgU2V0PENoaWxkU3RvcmU8YW55Pj4oKTtcclxuICAgICAgcGFyZW50LmFjdGl2ZUNoaWxkcmVuLnNldChrZXksIHNldCk7XHJcbiAgICB9XHJcbiAgICBzZXQuYWRkKGNoaWxkKTtcclxuICAgIHBhcmVudC5tYXliZUFjdGl2YXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZGVhY3RpdmF0ZUNoaWxkKFxyXG4gICAgcGFyZW50OiBTdG9yZTxhbnk+LFxyXG4gICAga2V5OiBhbnksXHJcbiAgICBjaGlsZDogQ2hpbGRTdG9yZTxhbnk+LFxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2V0ID0gcGFyZW50LmFjdGl2ZUNoaWxkcmVuLmdldChrZXkpITtcclxuICAgIHNldC5kZWxldGUoY2hpbGQpO1xyXG4gICAgaWYgKHNldC5zaXplID09PSAwKSB7XHJcbiAgICAgIHBhcmVudC5hY3RpdmVDaGlsZHJlbi5kZWxldGUoa2V5KTtcclxuICAgICAgcGFyZW50Lm1heWJlRGVhY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHAtc3RhdGUvc3JjL2xpYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxTQUFTLENBQUM7QUFXaEQsTUFBTSxPQUFnQixLQUFTLFNBQVEsY0FBMkI7SUFxQmhFLFlBQW1CLFlBQXFDO1FBQ3RELEtBQUssQ0FDSCxDQUFDLFFBQWEsRUFBRSxFQUFFOztZQUNoQixPQUFBLENBQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQywwQ0FBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLDBDQUFFLEtBQUs7Z0JBQ3pELElBQUksVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7U0FBQSxDQUMvQyxDQUFDO1FBTGUsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBcEJ4RDs7V0FFRztRQUNNLE1BQUMsR0FBRyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMs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QUFBLE1BQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSSxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVTLGFBQWEsQ0FDckIsTUFBa0IsRUFDbEIsR0FBUSxFQUNSLEtBQXNCO1FBRXRCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7WUFDakMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVMsZUFBZSxDQUN2QixNQUFrQixFQUNsQixHQUFRLEVBQ1IsS0FBc0I7UUFFdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7UUFDNUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbGxhYmxlT2JqZWN0IH0gZnJvbSAnQHMtbGlicy9qcy1jb3JlJztcbmltcG9ydCB7IGNsb25lLCBldmVyeSB9IGZyb20gJ0BzLWxpYnMvbWljcm8tZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGlsZFN0b3JlLCBSb290U3RvcmUgfSBmcm9tICcuL2luZGV4JztcblxudHlwZSBHZXRTbGljZTxUPiA9IDxLIGV4dGVuZHMga2V5b2YgVD4oYXR0cjogSykgPT4gU3RvcmU8VFtLXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmU8VD4gZXh0ZW5kcyBHZXRTbGljZTxUPiB7XG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzbGljZSBvZiB0aGUgc3RvcmUgdG8gb3BlcmF0ZSBvbi4gRm9yIGV4YW1wbGUgYHN0b3JlKCdjdXJyZW50VXNlcicpYCB3aWxsIHJldHVybiBhIG5ldyBgU3RvcmVgIHRoYXQgcmVwcmVzZW50cyB0aGUgYGN1cnJlbnRVc2VyYCBwcm9wZXJ0eS5cbiAgICovXG4gIDxLIGV4dGVuZHMga2V5b2YgVCwgViBleHRlbmRzIFRbS10+KGF0dHI6IEspOiBTdG9yZTxWPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0b3JlPFQ+IGV4dGVuZHMgQ2FsbGFibGVPYmplY3Q8R2V0U2xpY2U8VD4+IHtcbiAgLyoqXG4gICAqIEFuIGBPYnNlcnZhYmxlYCBvZiB0aGUgc3RhdGUgb2YgdGhpcyBzdG9yZSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSAkID0gbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXIpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICB0aGlzLnN1YnNjcmliZXJzLnNldChzdWJzY3JpYmVyLCB2YWx1ZSk7XG4gICAgdGhpcy5tYXliZUFjdGl2YXRlKCk7XG4gICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy5zdWJzY3JpYmVycy5kZWxldGUoc3Vic2NyaWJlcik7XG4gICAgICB0aGlzLm1heWJlRGVhY3RpdmF0ZSgpO1xuICAgIH07XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmVycyA9IG5ldyBNYXA8U3Vic2NyaWJlcjxUPiwgVCB8IHVuZGVmaW5lZD4oKTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUNoaWxkcmVuID0gbmV3IE1hcDxzdHJpbmcsIFNldDxTdG9yZTx1bmtub3duPj4+KCk7XG4gIHByb3RlY3RlZCBsYXN0S25vd25TdGF0ZT86IFQ7XG5cbiAgcHJpdmF0ZSBsYXN0S25vd25TdGF0ZUNoYW5nZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZ2V0Um9vdFN0b3JlOiAoKSA9PiBSb290U3RvcmU8b2JqZWN0Pikge1xuICAgIHN1cGVyKFxuICAgICAgKGNoaWxkS2V5OiBhbnkpID0+XG4gICAgICAgIHRoaXMuYWN0aXZlQ2hpbGRyZW4uZ2V0KGNoaWxkS2V5KT8udmFsdWVzKCkubmV4dCgpPy52YWx1ZSB8fFxuICAgICAgICBuZXcgQ2hpbGRTdG9yZShnZXRSb290U3RvcmUsIHRoaXMsIGNoaWxkS2V5KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBjdXJyZW50IHN0YXRlIHJlcHJlc2VudGVkIGJ5IHRoaXMgc3RvcmUgb2JqZWN0LlxuICAgKi9cbiAgYWJzdHJhY3Qgc3RhdGUoKTogVDtcblxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgc3RhdGUgcmVwcmVzZW50ZWQgYnkgdGhpcyBzdG9yZSBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqL1xuICBhYnN0cmFjdCBzZXQodmFsdWU6IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBzdGF0ZSByZXByZXNlbnRlZCBieSB0aGlzIHN0b3JlIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQuIEUuZy4gdG8gcmVtb3ZlIHRoZSBjdXJyZW50IHVzZXI6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHN0b3JlKCdjdXJyZW50VXNlcicpLmRlbGV0ZSgpO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IGRlbGV0ZSgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBgU3RvcmVgIG9wZXJhdGVzIG9uIHRoZSBzYW1lIHNsaWNlIG9mIHRoZSBzdG9yZSBhcyB0aGlzIG9iamVjdC5cbiAgICovXG4gIGFic3RyYWN0IHJlZmVyc1RvU2FtZVN0YXRlQXMob3RoZXI6IFN0b3JlPFQ+KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXNzaWducyB0aGUgZ2l2ZW4gdmFsdWVzIHRvIHN0YXRlIG9mIHRoaXMgc3RvcmUgb2JqZWN0LiBUaGUgcmVzdWx0aW5nIHN0YXRlIHdpbGwgYmUgbGlrZSBgT2JqZWN0LmFzc2lnbihzdG9yZS5zdGF0ZSgpLCB2YWx1ZSlgLlxuICAgKi9cbiAgYXNzaWduKHZhbHVlOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5zZXRVc2luZygoc3RhdGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGV2ZXJ5KHZhbHVlLCAoaW5uZXJWYWx1ZSwga2V5KSA9PiBzdGF0ZVtrZXldID09PSBpbm5lclZhbHVlKSkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgLi4uKHZhbHVlIGFzIGFueSkgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGBmdW5jYCBvbiB0aGUgc3RhdGUgYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIHJldHVybiB2YWx1ZS4gVGhlIGZpcnN0IGFyZ3VtZW50IHRvIGBmdW5jYCB3aWxsIGJlIHRoZSBzdGF0ZSwgZm9sbG93ZWQgYnkgdGhlIGFyZ3VtZW50cyBpbiBgYXJnc2AuXG4gICAqXG4gICAqIFdBUk5JTkc6IFlvdSBTSE9VTEQgTk9UIHVzZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBtdXRhdGUgdGhlIHN0YXRlLlxuICAgKi9cbiAgc2V0VXNpbmc8QSBleHRlbmRzIGFueVtdPihcbiAgICBmdW5jOiAoc3RhdGU6IFQsIC4uLmFyZ3M6IEEpID0+IFQsXG4gICAgLi4uYXJnczogQVxuICApOiB2b2lkIHtcbiAgICB0aGlzLnNldChmdW5jKHRoaXMuc3RhdGUoKSwgLi4uYXJncykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYGZ1bmNgIG9uIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3RhdGUsIHJlcGxhY2luZyB0aGUgc3RhdGUgd2l0aCB0aGUgY2xvbmUuIFRoZSBmaXJzdCBhcmd1bWVudCB0byBgZnVuY2Agd2lsbCBiZSB0aGUgY2xvbmVkIHN0YXRlLCBmb2xsb3dlZCBieSB0aGUgYXJndW1lbnRzIGluIGBhcmdzYC5cbiAgICpcbiAgICogV0FSTklORzogWW91IFNIT1VMRCBOT1QgdXNlIGEgZnVuY3Rpb24gdGhhdCB3aWxsIG11dGF0ZSBuZXN0ZWQgb2JqZWN0cyB3aXRoaW4gdGhlIHN0YXRlLlxuICAgKi9cbiAgbXV0YXRlVXNpbmc8QSBleHRlbmRzIGFueVtdPihcbiAgICBmdW5jOiAoc3RhdGU6IFQsIC4uLmFyZ3M6IEEpID0+IHZvaWQsXG4gICAgLi4uYXJnczogQVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZSA9IGNsb25lKHRoaXMuc3RhdGUoKSk7XG4gICAgZnVuYyhzdGF0ZSwgLi4uYXJncyk7XG4gICAgdGhpcy5zZXQoc3RhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG1heWJlQWN0aXZhdGUoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbWF5YmVEZWFjdGl2YXRlKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVN0YXRlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMubGFzdEtub3duU3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxhc3RLbm93blN0YXRlID0gdmFsdWU7XG4gICAgdGhpcy5sYXN0S25vd25TdGF0ZUNoYW5nZWQgPSB0cnVlO1xuICAgIHRoaXMuYWN0aXZlQ2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRyZW4sIGtleSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICBjaGlsZC51cGRhdGVTdGF0ZSh2YWx1ZT8uW2tleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1heWJlRW1pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGFzdEtub3duU3RhdGVDaGFuZ2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0S25vd25TdGF0ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goKGxhc3RFbWl0dGVkLCBzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBpZiAobGFzdEVtaXR0ZWQgIT09IHRoaXMubGFzdEtub3duU3RhdGUpIHtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRoaXMubGFzdEtub3duU3RhdGUpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnNldChzdWJzY3JpYmVyLCB0aGlzLmxhc3RLbm93blN0YXRlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFjdGl2ZUNoaWxkcmVuLmZvckVhY2goKGNoaWxkcmVuKSA9PiB7XG4gICAgICAvLyBgY2hpbGRyZW5gIGNhbiBiZSB1bmRlZmluZWQgaWYgZW1pdHRpbmcgZnJvbSBhIHByZXZpb3VzIGtleSBjYXVzZWQgcmVtb3ZlZCBhbGwgc3Vic2NyaWJlcnMgdG8gdGhpcyBrZXlcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4gfHwgW10pIHtcbiAgICAgICAgY2hpbGQubWF5YmVFbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDaGlsZEFjdGl2ZShcbiAgICBwYXJlbnQ6IFN0b3JlPGFueT4sXG4gICAga2V5OiBhbnksXG4gICAgY2hpbGQ6IENoaWxkU3RvcmU8YW55PixcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhcmVudC5hY3RpdmVDaGlsZHJlbi5nZXQoa2V5KT8uaGFzKGNoaWxkKSB8fCBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmF0ZUNoaWxkKFxuICAgIHBhcmVudDogU3RvcmU8YW55PixcbiAgICBrZXk6IGFueSxcbiAgICBjaGlsZDogQ2hpbGRTdG9yZTxhbnk+LFxuICApOiB2b2lkIHtcbiAgICBsZXQgc2V0ID0gcGFyZW50LmFjdGl2ZUNoaWxkcmVuLmdldChrZXkpO1xuICAgIGlmICghc2V0KSB7XG4gICAgICBzZXQgPSBuZXcgU2V0PENoaWxkU3RvcmU8YW55Pj4oKTtcbiAgICAgIHBhcmVudC5hY3RpdmVDaGlsZHJlbi5zZXQoa2V5LCBzZXQpO1xuICAgIH1cbiAgICBzZXQuYWRkKGNoaWxkKTtcbiAgICBwYXJlbnQubWF5YmVBY3RpdmF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlYWN0aXZhdGVDaGlsZChcbiAgICBwYXJlbnQ6IFN0b3JlPGFueT4sXG4gICAga2V5OiBhbnksXG4gICAgY2hpbGQ6IENoaWxkU3RvcmU8YW55PixcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0ID0gcGFyZW50LmFjdGl2ZUNoaWxkcmVuLmdldChrZXkpITtcbiAgICBzZXQuZGVsZXRlKGNoaWxkKTtcbiAgICBpZiAoc2V0LnNpemUgPT09IDApIHtcbiAgICAgIHBhcmVudC5hY3RpdmVDaGlsZHJlbi5kZWxldGUoa2V5KTtcbiAgICAgIHBhcmVudC5tYXliZURlYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -173,2 +173,2 @@ import { Debouncer } from '@s-libs/js-core';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kby1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwLXN0YXRlL3NyYy9saWIvdXRpbHMvdW5kby1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXRELE1BQU0sT0FBZ0IsV0FBVztJQWdDL0I7O09BRUc7SUFDSCxZQUNxQixLQUF1QixFQUNoQyxXQUFXLENBQUM7UUFESCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFJO1FBcENoQixVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUc1QixtQkFBYyxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7UUFHbkQscUJBQWdCLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGFBQVEsR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFFRjs7V0FFRztRQUNILGFBQVEsR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFFRjs7V0FFRztRQUNILFdBQU0sR0FBOEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3hELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFTQSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQ7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LENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFlBQVksQ0FDbEIsU0FBd0IsRUFDeEIsVUFBOEIsRUFDOUIsZUFBbUM7UUFFbkMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVib3VuY2VyIH0gZnJvbSAnQHMtbGlicy9qcy1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9pbmRleCc7XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgdHlwZSBVbmRvT3JSZWRvID0gJ3VuZG8nIHwgJ3JlZG8nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVW5kb01hbmFnZXI8U3RhdGVUeXBlLCBVbmRvU3RhdGVUeXBlPiB7XG4gIHByaXZhdGUgc3RhY2s6IFVuZG9TdGF0ZVR5cGVbXSA9IFtdO1xuICBwcml2YXRlIGN1cnJlbnRTdGF0ZUluZGV4ITogbnVtYmVyO1xuXG4gIHByaXZhdGUgY2FuVW5kb1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgcHJpdmF0ZSBjYW5SZWRvU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBwcml2YXRlIHN0YXRlU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFVuZG9TdGF0ZVR5cGU+KDEpO1xuXG4gIHByaXZhdGUgY3VycmVudENvbGxlY3RLZXk/OiBzdHJpbmc7XG4gIHByaXZhdGUgY29sbGVjdERlYm91bmNlciA9IG5ldyBEZWJvdW5jZXIoKTtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgYGNhblVuZG8oKWAgZXZlcnkgdGltZSB0aGF0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBjYW5VbmRvJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY2FuVW5kb1N1YmplY3QucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICApO1xuXG4gIC8qKlxuICAgKiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBgY2FuUmVkbygpYCBldmVyeSB0aW1lIHRoYXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGNhblJlZG8kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jYW5SZWRvU3ViamVjdC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VycmVudCBzdGF0ZSBldmVyeSB0aW1lIGl0IGNoYW5nZXMuXG4gICAqL1xuICBzdGF0ZSQ6IE9ic2VydmFibGU8VW5kb1N0YXRlVHlwZT4gPSB0aGlzLnN0YXRlU3ViamVjdC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXhEZXB0aCBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBoaXN0b3J5IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSBvbGRlc3Qgc3RhdGUuIGAwYCBtZWFucyBubyBsaW1pdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdG9yZTogU3RvcmU8U3RhdGVUeXBlPixcbiAgICBwcm90ZWN0ZWQgbWF4RGVwdGggPSAwLFxuICApIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzY2FyZCBhbGwgaGlzdG9yeSBhbmQgcHVzaCB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN0YXRlSW5kZXggPSAtMTtcbiAgICB0aGlzLnB1c2hDdXJyZW50U3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGN1cnJlbnQgc3RhdGUgdG8gdGhlIHVuZG8gaGlzdG9yeS4gQW55IHN0YXRlcyB0aGF0IGNvdWxkIGJlIHJlYWNoZWQgdXNpbmcgYHJlZG8oKWAgYXJlIGRpc2NhcmRlZC5cbiAgICpcbiAgICogQHBhcmFtIGNvbGxlY3RLZXkgV2hlbiBzcGVjaWZpZWQsIG11bHRpcGxlIHB1c2hlcyBpbiBhIHJvdyB3aXRoIHRoZSBzYW1lIGtleSB3aWxsIGJlIGNvbGxlY3RlZCBpbnRvIGEgc2luZ2xlIHVuZG8gc3RhdGUuIFRoaXMgaXMgdXNlZnVsIGUuZy4gZm9yIGNvbGxlY3RpbmcgY2hhbmdlcyBmcm9tIGEgdGV4dCBpbnB1dCBpbnRvIGxhcmdlciB1bmRvIHN0YXRlcywgcmF0aGVyIHRoYW4gdW5kb2luZyBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZS4gQWZ0ZXIgYSBwdXNoIHdpdGggYSBkaWZmZXJlbnQga2V5IG9yIGFub3RoZXIgdW5kbyBjaGFuZ2UgKGxpa2UgYC51bmRvKClgIG9yIGAucmVzZXQoKWApLCBjb2xsZWN0aW5nIHdpbGwgc3RvcCBhbmQgdGhlIG5leHQgcHVzaCB3aWxsIGJlIGluIGEgbmV3IHVuZG8gc3RhdGUuXG4gICAqIEBwYXJhbSBjb2xsZWN0RGVib3VuY2UgSWYgYXQgbGVhc3QgdGhpcyBtYW55IG1pbGxpc2Vjb25kcyBlbGFwc2Ugd2l0aCBubyBvdGhlciBwdXNoLCB0aGUgbmV4dCBvbmUgd2lsbCBiZSB0byBhIG5ldyB1bmRvIHN0YXRlIHJlZ2FyZGxlc3Mgb2YgaXRzIGBjb2xsZWN0S2V5YC4gRGVmYXVsdHMgdG8gYHVuZGVmaW5lZGAsIHdoaWNoIHNldHMgbm8gc3VjaCB0aW1lb3V0LlxuICAgKi9cbiAgcHVzaEN1cnJlbnRTdGF0ZSh7XG4gICAgY29sbGVjdEtleSA9IHVuZGVmaW5lZCBhcyB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgY29sbGVjdERlYm91bmNlID0gdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCB8IG51bWJlcixcbiAgfSA9IHt9KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFN0YXRlID0gdGhpcy5leHRyYWN0VW5kb1N0YXRlKHRoaXMuc3RvcmUuc3RhdGUoKSk7XG4gICAgaWYgKHRoaXMuY3VycmVudFN0YXRlSW5kZXggPj0gMCAmJiAhdGhpcy5zaG91bGRQdXNoKG5leHRTdGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmVwdXNoKG5leHRTdGF0ZSwgY29sbGVjdEtleSkpIHtcbiAgICAgIHRoaXMuYWN0dWFsbHlQdXNoKG5leHRTdGF0ZSwgY29sbGVjdEtleSwgY29sbGVjdERlYm91bmNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgd2hldGhlciBhbnkgc3RhdGVzIGFyZSBhdmFpbGFibGUgZm9yIGB1bmRvKClgXG4gICAqL1xuICBjYW5VbmRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZUluZGV4ID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIGFueSBzdGF0ZXMgYXJlIGF2YWlsYWJsZSBmb3IgYHJlZG8oKWBcbiAgICovXG4gIGNhblJlZG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlSW5kZXggPCB0aGlzLnN0YWNrLmxlbmd0aCAtIDE7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBiYWNrd2FyZCBvbmUgc3RlcCBpbiB0aGUgaGlzdG9yeSBvZiBzdGF0ZXMgc2F2ZWQgdmlhIGBwdXNoQ3VycmVudFN0YXRlKClgLCBzZXR0aW5nIHRoZSBzdG9yZSB0byBjb250YWluIHRoYXQgc3RhdGUgYWdhaW4uXG4gICAqXG4gICAqIEB0aHJvd3MgRXJyb3Igd2hlbiB0aGVyZSBpcyBubyBzdWNoIHN0YXRlIChpLmUuIHdoZW4gYGNhblVuZG8oKWAgcmV0dXJucyBmYWxzZSlcbiAgICovXG4gIHVuZG8oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblVuZG8oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdW5kbycpO1xuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlU3RhdGUoLTEsICd1bmRvJyk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBmb3J3YXJkIG9uZSBzdGVwIGluIHRoZSBoaXN0b3J5IG9mIHN0YXRlcyBzYXZlZCB2aWEgYHB1c2hDdXJyZW50U3RhdGUoKWAsIHNldHRpbmcgdGhlIHN0b3JlIHRvIGNvbnRhaW4gdGhhdCBzdGF0ZSBhZ2Fpbi5cbiAgICpcbiAgICogQHRocm93cyBFcnJvciB3aGVuIHRoZXJlIGlzIG5vIHN1Y2ggc3RhdGUgKGkuZS4gd2hlbiBgY2FuUmVkbygpYCByZXR1cm5zIGZhbHNlKVxuICAgKi9cbiAgcmVkbygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuUmVkbygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZWRvJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VTdGF0ZSgxLCAncmVkbycpO1xuICB9XG5cbiAgLyoqXG4gICAqIERyb3BzIHRoZSBzdGF0ZSBmcm9tIHRoZSBpbnRlcm5hbCB1bmRvIHN0YWNrIHRoYXQgd291bGQgYmUgYXBwbGllZCBieSBhIGNhbGwgdG8gYC51bmRvKClgLiBUaGlzIGlzIHVzZWZ1bCBlLmcuIGlmIG1ha2luZyBtdWx0aXBsZSBjaGFuZ2VzIGluIGEgcm93IHRoYXQgc2hvdWxkIGJlIGNvbGxhcHNlZCBpbnRvIGEgc2luZ2xlIHVuZG8gc3RhdGU6IGNhbGwgdGhpcyBmaXJzdCBiZWZvcmUgcHVzaGluZyB0aGUgbmV3IHZlcnNpb24uXG4gICAqXG4gICAqIEB0aHJvd3MgRXJyb3Igd2hlbiB0aGVyZSBpcyBubyBzdWNoIHN0YXRlIChpLmUuIHdoZW4gYGNhblVuZG8oKWAgcmV0dXJucyBmYWxzZSlcbiAgICovXG4gIGRyb3BDdXJyZW50VW5kb1N0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5VbmRvKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90aGluZyB0byBkcm9wJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50U3RhdGVJbmRleCA9IHRoaXMuY3VycmVudFN0YXRlSW5kZXggLSAxO1xuICAgIHRoaXMuZHJvcFJlZG9IaXN0b3J5KCk7XG4gICAgdGhpcy5lbWl0VW5kb0NoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVuZG8gc3RhdGUgdGhhdCB3YXMgbW9zdCByZWNlbnRseSBwdXNoZWQgb3IgYXBwbGllZC4gQ2FsbHMgdG8gYHVuZG9gIHdpbGwgYXBwbHkgdGhlIHN0YXRlIGJlZm9yZSB0aGlzIGluIHRlaCBzdGFjaywgYW5kIGByZWRvYCB3aWxsIGFwcGx5IHRoZSBzdGF0ZSBhZnRlciB0aGlzLlxuICAgKi9cbiAgZ2V0IGN1cnJlbnRVbmRvU3RhdGUoKTogVW5kb1N0YXRlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tbdGhpcy5jdXJyZW50U3RhdGVJbmRleF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHZpZXcgb2YgdGhlIGludGVybmFsIHVuZG8gc3RhY2ssIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4gTm90ZSB0aGF0IHRoaXMgY29udGFpbnMgc3RhdGVzIHRoYXQgd291bGQgYmUgYXBwbGllZCBieSBjYWxscyB0byBib3RoIGAudW5kbygpYCBhbmQgYC5yZWRvYC5cbiAgICovXG4gIGdldCB1bmRvU3RhY2soKTogVW5kb1N0YXRlVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay5zbGljZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHJlY29uc3RydWN0IHRoZSBnaXZlbiBzdGF0ZS4gVGhpcyB3aWxsIGJlIHBhc3NlZCB0byBgYXBwbHlVbmRvU3RhdGUoKWAgd2hlbiB0aGUgc3RvcmUgc2hvdWxkIGJlIHJlc2V0IHRvIHRoaXMgc3RhdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZXh0cmFjdFVuZG9TdGF0ZShzdGF0ZTogU3RhdGVUeXBlKTogVW5kb1N0YXRlVHlwZTtcblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0b3JlIHRvIHRoZSBnaXZlbiBzdGF0ZS5cbiAgICpcbiAgICogVGhlIGB1bmRvT3JSZWRvYCBhbmQgYHN0YXRlVG9PdmVyd3JpdGVgIHBhcmFtZXRlcnMgY2FuIGJlIHVzZWZ1bCBlLmcuIGlmIGEgc2Nyb2xsIHBvc2l0aW9uIGlzIGtlcHQgaW4gdGhlIHVuZG8gc3RhdGUuIEluIHN1Y2ggYSBjYXNlIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgc2Nyb2xsaW5nIHNvIHRoZSB1c2VyIGNhbiBzZWUgd2hhdCBqdXN0IGNoYW5nZWQgYnkgdW5kb2luZy9yZWRvaW5nLiBUbyBkbyB0aGF0LCBzZXQgdGhlIHNjb2xsIHRvIHdoYXQgaXQgd2FzIGluIGBzdGF0ZVRvT3ZlcndyaXRlYCB3aGVuIHVuZG9pbmcsIGFuZCB0byB3aGF0IGl0IGlzIGluIGBzdGF0ZVRvQXBwbHlgIHdoZW4gcmVkb2luZy5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhcHBseVVuZG9TdGF0ZShcbiAgICBzdGF0ZVRvQXBwbHk6IFVuZG9TdGF0ZVR5cGUsXG4gICAgdW5kb09yUmVkbzogVW5kb09yUmVkbyxcbiAgICBzdGF0ZVRvT3ZlcndyaXRlOiBVbmRvU3RhdGVUeXBlLFxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIGAucHVzaEN1cnJlbnRTdGF0ZSgpYCBhY3R1YWxseSBkb2VzIGFueXRoaW5nLiBPdmVycmlkZSB0aGlzIGUuZy4gdG8gcHJldmVudCBwdXNoaW5nIGEgZHVwbGljYXRlIHVuZG8gc3RhdGUgdXNpbmcgc29tZXRoaW5nIGxpa2UgdGhpczpcbiAgICpcbiAgICogYGBgdHNcbiAgICogcHJvdGVjdGVkIHNob3VsZFB1c2goc3RhdGU6IFVuZG9TdGF0ZVR5cGUpIHtcbiAgICogICByZXR1cm4gZXF1YWwoc3RhdGUsIHRoaXMuY3VycmVudFVuZG9TdGF0ZSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkUHVzaChfc3RhdGU6IFVuZG9TdGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZHJvcFJlZG9IaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhY2suc3BsaWNlKHRoaXMuY3VycmVudFN0YXRlSW5kZXggKyAxLCB0aGlzLnN0YWNrLmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogRWFjaCB0aW1lIGEgc3RhdGUgaXMgYWRkZWQgdG8gdGhlIGhpc3RvcnksIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBvbGRlc3Qgc3RhdGUgc2hvdWxkIGJlIGRyb3BwZWQuIE92ZXJyaWRlIHRvIGltcGxlbWVudCBtb3JlIGNvbXBsZXggbG9naWMgdGhhbiB0aGUgc2ltcGxlIGBtYXhEZXB0aGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNPdmVyU2l6ZShzaXplOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXhEZXB0aCA+IDAgJiYgc2l6ZSA+IHRoaXMubWF4RGVwdGg7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVN0YXRlKGNoYW5nZTogMSB8IC0xLCB1bmRvT3JSZWRvOiBVbmRvT3JSZWRvKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVUb092ZXJ3cml0ZSA9IHRoaXMuY3VycmVudFVuZG9TdGF0ZTtcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZUluZGV4ICs9IGNoYW5nZTtcbiAgICBjb25zdCBzdGF0ZVRvQXBwbHkgPSB0aGlzLmN1cnJlbnRVbmRvU3RhdGU7XG4gICAgdGhpcy5zdG9yZS5nZXRSb290U3RvcmUoKS5iYXRjaCgoKSA9PiB7XG4gICAgICB0aGlzLmFwcGx5VW5kb1N0YXRlKHN0YXRlVG9BcHBseSwgdW5kb09yUmVkbywgc3RhdGVUb092ZXJ3cml0ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5lbWl0VW5kb0NoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFVuZG9DaGFuZ2VzKGNvbGxlY3RLZXk/OiBzdHJpbmcsIGNvbGxlY3REZWJvdW5jZT86IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2FuVW5kb1N1YmplY3QubmV4dCh0aGlzLmNhblVuZG8oKSk7XG4gICAgdGhpcy5jYW5SZWRvU3ViamVjdC5uZXh0KHRoaXMuY2FuUmVkbygpKTtcbiAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHRoaXMuc3RhY2tbdGhpcy5jdXJyZW50U3RhdGVJbmRleF0pO1xuXG4gICAgdGhpcy5jdXJyZW50Q29sbGVjdEtleSA9IGNvbGxlY3RLZXk7XG4gICAgaWYgKGNvbGxlY3REZWJvdW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbGxlY3REZWJvdW5jZXIucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29sbGVjdEtleSA9IHVuZGVmaW5lZDtcbiAgICAgIH0sIGNvbGxlY3REZWJvdW5jZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmVwdXNoKFxuICAgIG5leHRTdGF0ZTogVW5kb1N0YXRlVHlwZSxcbiAgICBjb2xsZWN0S2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChjb2xsZWN0S2V5ICYmIHRoaXMuY3VycmVudENvbGxlY3RLZXkgPT09IGNvbGxlY3RLZXkpIHtcbiAgICAgIC0tdGhpcy5jdXJyZW50U3RhdGVJbmRleDtcbiAgICAgIHRoaXMuZHJvcFJlZG9IaXN0b3J5KCk7XG4gICAgICBpZiAoIXRoaXMuc2hvdWxkUHVzaChuZXh0U3RhdGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0dWFsbHlQdXNoKFxuICAgIG5leHRTdGF0ZTogVW5kb1N0YXRlVHlwZSxcbiAgICBjb2xsZWN0S2V5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29sbGVjdERlYm91bmNlOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgICsrdGhpcy5jdXJyZW50U3RhdGVJbmRleDtcbiAgICB0aGlzLnN0YWNrW3RoaXMuY3VycmVudFN0YXRlSW5kZXhdID0gbmV4dFN0YXRlO1xuICAgIHRoaXMuZHJvcFJlZG9IaXN0b3J5KCk7XG5cbiAgICB3aGlsZSAodGhpcy5zdGFjay5sZW5ndGggPiAxICYmIHRoaXMuaXNPdmVyU2l6ZSh0aGlzLnN0YWNrLmxlbmd0aCkpIHtcbiAgICAgIHRoaXMuc3RhY2suc2hpZnQoKTtcbiAgICAgIC0tdGhpcy5jdXJyZW50U3RhdGVJbmRleDtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRVbmRvQ2hhbmdlcyhjb2xsZWN0S2V5LCBjb2xsZWN0RGVib3VuY2UpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kby1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwLXN0YXRlL3NyYy9saWIvdXRpbHMvdW5kby1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3RELE1BQU0sT0FBZ0IsV0FBVztJQWdDL0I7O09BRUc7SUFDSCxZQUNxQixLQUF1QixFQUNoQyxXQUFXLENBQUM7UUFESCxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFJO1FBcENoQixVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUc1QixtQkFBYyxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7UUFHbkQscUJBQWdCLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGFBQVEsR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFFRjs7V0FFRztRQUNILGFBQVEsR0FBd0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFFRjs7V0FFRztRQUNILFdBQU0sR0FBOEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3hELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFTQSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQ7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LENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFlBQVksQ0FDbEIsU0FBd0IsRUFDeEIsVUFBOEIsRUFDOUIsZUFBbUM7UUFFbkMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVib3VuY2VyIH0gZnJvbSAnQHMtbGlicy9qcy1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9pbmRleCc7XG5cbmV4cG9ydCB0eXBlIFVuZG9PclJlZG8gPSAndW5kbycgfCAncmVkbyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVbmRvTWFuYWdlcjxTdGF0ZVR5cGUsIFVuZG9TdGF0ZVR5cGU+IHtcbiAgcHJpdmF0ZSBzdGFjazogVW5kb1N0YXRlVHlwZVtdID0gW107XG4gIHByaXZhdGUgY3VycmVudFN0YXRlSW5kZXghOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBjYW5VbmRvU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBwcml2YXRlIGNhblJlZG9TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gIHByaXZhdGUgc3RhdGVTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8VW5kb1N0YXRlVHlwZT4oMSk7XG5cbiAgcHJpdmF0ZSBjdXJyZW50Q29sbGVjdEtleT86IHN0cmluZztcbiAgcHJpdmF0ZSBjb2xsZWN0RGVib3VuY2VyID0gbmV3IERlYm91bmNlcigpO1xuXG4gIC8qKlxuICAgKiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiBgY2FuVW5kbygpYCBldmVyeSB0aW1lIHRoYXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGNhblVuZG8kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jYW5VbmRvU3ViamVjdC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG5cbiAgLyoqXG4gICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcmVzdWx0IG9mIGBjYW5SZWRvKClgIGV2ZXJ5IHRpbWUgdGhhdCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2FuUmVkbyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmNhblJlZG9TdWJqZWN0LnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKTtcblxuICAvKipcbiAgICogQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IHN0YXRlIGV2ZXJ5IHRpbWUgaXQgY2hhbmdlcy5cbiAgICovXG4gIHN0YXRlJDogT2JzZXJ2YWJsZTxVbmRvU3RhdGVUeXBlPiA9IHRoaXMuc3RhdGVTdWJqZWN0LnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKTtcblxuICAvKipcbiAgICogQHBhcmFtIG1heERlcHRoIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGhpc3RvcnkgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIG9sZGVzdCBzdGF0ZS4gYDBgIG1lYW5zIG5vIGxpbWl0LlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxTdGF0ZVR5cGU+LFxuICAgIHByb3RlY3RlZCBtYXhEZXB0aCA9IDAsXG4gICkge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNjYXJkIGFsbCBoaXN0b3J5IGFuZCBwdXNoIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U3RhdGVJbmRleCA9IC0xO1xuICAgIHRoaXMucHVzaEN1cnJlbnRTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgY3VycmVudCBzdGF0ZSB0byB0aGUgdW5kbyBoaXN0b3J5LiBBbnkgc3RhdGVzIHRoYXQgY291bGQgYmUgcmVhY2hlZCB1c2luZyBgcmVkbygpYCBhcmUgZGlzY2FyZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGVjdEtleSBXaGVuIHNwZWNpZmllZCwgbXVsdGlwbGUgcHVzaGVzIGluIGEgcm93IHdpdGggdGhlIHNhbWUga2V5IHdpbGwgYmUgY29sbGVjdGVkIGludG8gYSBzaW5nbGUgdW5kbyBzdGF0ZS4gVGhpcyBpcyB1c2VmdWwgZS5nLiBmb3IgY29sbGVjdGluZyBjaGFuZ2VzIGZyb20gYSB0ZXh0IGlucHV0IGludG8gbGFyZ2VyIHVuZG8gc3RhdGVzLCByYXRoZXIgdGhhbiB1bmRvaW5nIG9uZSBjaGFyYWN0ZXIgYXQgYSB0aW1lLiBBZnRlciBhIHB1c2ggd2l0aCBhIGRpZmZlcmVudCBrZXkgb3IgYW5vdGhlciB1bmRvIGNoYW5nZSAobGlrZSBgLnVuZG8oKWAgb3IgYC5yZXNldCgpYCksIGNvbGxlY3Rpbmcgd2lsbCBzdG9wIGFuZCB0aGUgbmV4dCBwdXNoIHdpbGwgYmUgaW4gYSBuZXcgdW5kbyBzdGF0ZS5cbiAgICogQHBhcmFtIGNvbGxlY3REZWJvdW5jZSBJZiBhdCBsZWFzdCB0aGlzIG1hbnkgbWlsbGlzZWNvbmRzIGVsYXBzZSB3aXRoIG5vIG90aGVyIHB1c2gsIHRoZSBuZXh0IG9uZSB3aWxsIGJlIHRvIGEgbmV3IHVuZG8gc3RhdGUgcmVnYXJkbGVzcyBvZiBpdHMgYGNvbGxlY3RLZXlgLiBEZWZhdWx0cyB0byBgdW5kZWZpbmVkYCwgd2hpY2ggc2V0cyBubyBzdWNoIHRpbWVvdXQuXG4gICAqL1xuICBwdXNoQ3VycmVudFN0YXRlKHtcbiAgICBjb2xsZWN0S2V5ID0gdW5kZWZpbmVkIGFzIHVuZGVmaW5lZCB8IHN0cmluZyxcbiAgICBjb2xsZWN0RGVib3VuY2UgPSB1bmRlZmluZWQgYXMgdW5kZWZpbmVkIHwgbnVtYmVyLFxuICB9ID0ge30pOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSB0aGlzLmV4dHJhY3RVbmRvU3RhdGUodGhpcy5zdG9yZS5zdGF0ZSgpKTtcbiAgICBpZiAodGhpcy5jdXJyZW50U3RhdGVJbmRleCA+PSAwICYmICF0aGlzLnNob3VsZFB1c2gobmV4dFN0YXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXB1c2gobmV4dFN0YXRlLCBjb2xsZWN0S2V5KSkge1xuICAgICAgdGhpcy5hY3R1YWxseVB1c2gobmV4dFN0YXRlLCBjb2xsZWN0S2V5LCBjb2xsZWN0RGVib3VuY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIGFueSBzdGF0ZXMgYXJlIGF2YWlsYWJsZSBmb3IgYHVuZG8oKWBcbiAgICovXG4gIGNhblVuZG8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlSW5kZXggPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHdoZXRoZXIgYW55IHN0YXRlcyBhcmUgYXZhaWxhYmxlIGZvciBgcmVkbygpYFxuICAgKi9cbiAgY2FuUmVkbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RhdGVJbmRleCA8IHRoaXMuc3RhY2subGVuZ3RoIC0gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGJhY2t3YXJkIG9uZSBzdGVwIGluIHRoZSBoaXN0b3J5IG9mIHN0YXRlcyBzYXZlZCB2aWEgYHB1c2hDdXJyZW50U3RhdGUoKWAsIHNldHRpbmcgdGhlIHN0b3JlIHRvIGNvbnRhaW4gdGhhdCBzdGF0ZSBhZ2Fpbi5cbiAgICpcbiAgICogQHRocm93cyBFcnJvciB3aGVuIHRoZXJlIGlzIG5vIHN1Y2ggc3RhdGUgKGkuZS4gd2hlbiBgY2FuVW5kbygpYCByZXR1cm5zIGZhbHNlKVxuICAgKi9cbiAgdW5kbygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuVW5kbygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1bmRvJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VTdGF0ZSgtMSwgJ3VuZG8nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGZvcndhcmQgb25lIHN0ZXAgaW4gdGhlIGhpc3Rvcnkgb2Ygc3RhdGVzIHNhdmVkIHZpYSBgcHVzaEN1cnJlbnRTdGF0ZSgpYCwgc2V0dGluZyB0aGUgc3RvcmUgdG8gY29udGFpbiB0aGF0IHN0YXRlIGFnYWluLlxuICAgKlxuICAgKiBAdGhyb3dzIEVycm9yIHdoZW4gdGhlcmUgaXMgbm8gc3VjaCBzdGF0ZSAoaS5lLiB3aGVuIGBjYW5SZWRvKClgIHJldHVybnMgZmFsc2UpXG4gICAqL1xuICByZWRvKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5SZWRvKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZG8nKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZVN0YXRlKDEsICdyZWRvJyk7XG4gIH1cblxuICAvKipcbiAgICogRHJvcHMgdGhlIHN0YXRlIGZyb20gdGhlIGludGVybmFsIHVuZG8gc3RhY2sgdGhhdCB3b3VsZCBiZSBhcHBsaWVkIGJ5IGEgY2FsbCB0byBgLnVuZG8oKWAuIFRoaXMgaXMgdXNlZnVsIGUuZy4gaWYgbWFraW5nIG11bHRpcGxlIGNoYW5nZXMgaW4gYSByb3cgdGhhdCBzaG91bGQgYmUgY29sbGFwc2VkIGludG8gYSBzaW5nbGUgdW5kbyBzdGF0ZTogY2FsbCB0aGlzIGZpcnN0IGJlZm9yZSBwdXNoaW5nIHRoZSBuZXcgdmVyc2lvbi5cbiAgICpcbiAgICogQHRocm93cyBFcnJvciB3aGVuIHRoZXJlIGlzIG5vIHN1Y2ggc3RhdGUgKGkuZS4gd2hlbiBgY2FuVW5kbygpYCByZXR1cm5zIGZhbHNlKVxuICAgKi9cbiAgZHJvcEN1cnJlbnRVbmRvU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblVuZG8oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3RoaW5nIHRvIGRyb3AnKTtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRTdGF0ZUluZGV4ID0gdGhpcy5jdXJyZW50U3RhdGVJbmRleCAtIDE7XG4gICAgdGhpcy5kcm9wUmVkb0hpc3RvcnkoKTtcbiAgICB0aGlzLmVtaXRVbmRvQ2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdW5kbyBzdGF0ZSB0aGF0IHdhcyBtb3N0IHJlY2VudGx5IHB1c2hlZCBvciBhcHBsaWVkLiBDYWxscyB0byBgdW5kb2Agd2lsbCBhcHBseSB0aGUgc3RhdGUgYmVmb3JlIHRoaXMgaW4gdGVoIHN0YWNrLCBhbmQgYHJlZG9gIHdpbGwgYXBwbHkgdGhlIHN0YXRlIGFmdGVyIHRoaXMuXG4gICAqL1xuICBnZXQgY3VycmVudFVuZG9TdGF0ZSgpOiBVbmRvU3RhdGVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja1t0aGlzLmN1cnJlbnRTdGF0ZUluZGV4XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmlldyBvZiB0aGUgaW50ZXJuYWwgdW5kbyBzdGFjaywgZnJvbSBvbGRlc3QgdG8gbmV3ZXN0LiBOb3RlIHRoYXQgdGhpcyBjb250YWlucyBzdGF0ZXMgdGhhdCB3b3VsZCBiZSBhcHBsaWVkIGJ5IGNhbGxzIHRvIGJvdGggYC51bmRvKClgIGFuZCBgLnJlZG9gLlxuICAgKi9cbiAgZ2V0IHVuZG9TdGFjaygpOiBVbmRvU3RhdGVUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLnN0YWNrLnNsaWNlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gcmVjb25zdHJ1Y3QgdGhlIGdpdmVuIHN0YXRlLiBUaGlzIHdpbGwgYmUgcGFzc2VkIHRvIGBhcHBseVVuZG9TdGF0ZSgpYCB3aGVuIHRoZSBzdG9yZSBzaG91bGQgYmUgcmVzZXQgdG8gdGhpcyBzdGF0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleHRyYWN0VW5kb1N0YXRlKHN0YXRlOiBTdGF0ZVR5cGUpOiBVbmRvU3RhdGVUeXBlO1xuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RvcmUgdG8gdGhlIGdpdmVuIHN0YXRlLlxuICAgKlxuICAgKiBUaGUgYHVuZG9PclJlZG9gIGFuZCBgc3RhdGVUb092ZXJ3cml0ZWAgcGFyYW1ldGVycyBjYW4gYmUgdXNlZnVsIGUuZy4gaWYgYSBzY3JvbGwgcG9zaXRpb24gaXMga2VwdCBpbiB0aGUgdW5kbyBzdGF0ZS4gSW4gc3VjaCBhIGNhc2UgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBzY3JvbGxpbmcgc28gdGhlIHVzZXIgY2FuIHNlZSB3aGF0IGp1c3QgY2hhbmdlZCBieSB1bmRvaW5nL3JlZG9pbmcuIFRvIGRvIHRoYXQsIHNldCB0aGUgc2NvbGwgdG8gd2hhdCBpdCB3YXMgaW4gYHN0YXRlVG9PdmVyd3JpdGVgIHdoZW4gdW5kb2luZywgYW5kIHRvIHdoYXQgaXQgaXMgaW4gYHN0YXRlVG9BcHBseWAgd2hlbiByZWRvaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFwcGx5VW5kb1N0YXRlKFxuICAgIHN0YXRlVG9BcHBseTogVW5kb1N0YXRlVHlwZSxcbiAgICB1bmRvT3JSZWRvOiBVbmRvT3JSZWRvLFxuICAgIHN0YXRlVG9PdmVyd3JpdGU6IFVuZG9TdGF0ZVR5cGUsXG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYC5wdXNoQ3VycmVudFN0YXRlKClgIGFjdHVhbGx5IGRvZXMgYW55dGhpbmcuIE92ZXJyaWRlIHRoaXMgZS5nLiB0byBwcmV2ZW50IHB1c2hpbmcgYSBkdXBsaWNhdGUgdW5kbyBzdGF0ZSB1c2luZyBzb21ldGhpbmcgbGlrZSB0aGlzOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBwcm90ZWN0ZWQgc2hvdWxkUHVzaChzdGF0ZTogVW5kb1N0YXRlVHlwZSkge1xuICAgKiAgIHJldHVybiBlcXVhbChzdGF0ZSwgdGhpcy5jdXJyZW50VW5kb1N0YXRlKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRQdXNoKF9zdGF0ZTogVW5kb1N0YXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBkcm9wUmVkb0hpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFjay5zcGxpY2UodGhpcy5jdXJyZW50U3RhdGVJbmRleCArIDEsIHRoaXMuc3RhY2subGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFYWNoIHRpbWUgYSBzdGF0ZSBpcyBhZGRlZCB0byB0aGUgaGlzdG9yeSwgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIG9sZGVzdCBzdGF0ZSBzaG91bGQgYmUgZHJvcHBlZC4gT3ZlcnJpZGUgdG8gaW1wbGVtZW50IG1vcmUgY29tcGxleCBsb2dpYyB0aGFuIHRoZSBzaW1wbGUgYG1heERlcHRoYC5cbiAgICovXG4gIHByb3RlY3RlZCBpc092ZXJTaXplKHNpemU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1heERlcHRoID4gMCAmJiBzaXplID4gdGhpcy5tYXhEZXB0aDtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RhdGUoY2hhbmdlOiAxIHwgLTEsIHVuZG9PclJlZG86IFVuZG9PclJlZG8pOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZVRvT3ZlcndyaXRlID0gdGhpcy5jdXJyZW50VW5kb1N0YXRlO1xuICAgIHRoaXMuY3VycmVudFN0YXRlSW5kZXggKz0gY2hhbmdlO1xuICAgIGNvbnN0IHN0YXRlVG9BcHBseSA9IHRoaXMuY3VycmVudFVuZG9TdGF0ZTtcbiAgICB0aGlzLnN0b3JlLmdldFJvb3RTdG9yZSgpLmJhdGNoKCgpID0+IHtcbiAgICAgIHRoaXMuYXBwbHlVbmRvU3RhdGUoc3RhdGVUb0FwcGx5LCB1bmRvT3JSZWRvLCBzdGF0ZVRvT3ZlcndyaXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLmVtaXRVbmRvQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VW5kb0NoYW5nZXMoY29sbGVjdEtleT86IHN0cmluZywgY29sbGVjdERlYm91bmNlPzogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jYW5VbmRvU3ViamVjdC5uZXh0KHRoaXMuY2FuVW5kbygpKTtcbiAgICB0aGlzLmNhblJlZG9TdWJqZWN0Lm5leHQodGhpcy5jYW5SZWRvKCkpO1xuICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQodGhpcy5zdGFja1t0aGlzLmN1cnJlbnRTdGF0ZUluZGV4XSk7XG5cbiAgICB0aGlzLmN1cnJlbnRDb2xsZWN0S2V5ID0gY29sbGVjdEtleTtcbiAgICBpZiAoY29sbGVjdERlYm91bmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29sbGVjdERlYm91bmNlci5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb2xsZWN0S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgfSwgY29sbGVjdERlYm91bmNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXB1c2goXG4gICAgbmV4dFN0YXRlOiBVbmRvU3RhdGVUeXBlLFxuICAgIGNvbGxlY3RLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGNvbGxlY3RLZXkgJiYgdGhpcy5jdXJyZW50Q29sbGVjdEtleSA9PT0gY29sbGVjdEtleSkge1xuICAgICAgLS10aGlzLmN1cnJlbnRTdGF0ZUluZGV4O1xuICAgICAgdGhpcy5kcm9wUmVkb0hpc3RvcnkoKTtcbiAgICAgIGlmICghdGhpcy5zaG91bGRQdXNoKG5leHRTdGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3R1YWxseVB1c2goXG4gICAgbmV4dFN0YXRlOiBVbmRvU3RhdGVUeXBlLFxuICAgIGNvbGxlY3RLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb2xsZWN0RGVib3VuY2U6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgKyt0aGlzLmN1cnJlbnRTdGF0ZUluZGV4O1xuICAgIHRoaXMuc3RhY2tbdGhpcy5jdXJyZW50U3RhdGVJbmRleF0gPSBuZXh0U3RhdGU7XG4gICAgdGhpcy5kcm9wUmVkb0hpc3RvcnkoKTtcblxuICAgIHdoaWxlICh0aGlzLnN0YWNrLmxlbmd0aCA+IDEgJiYgdGhpcy5pc092ZXJTaXplKHRoaXMuc3RhY2subGVuZ3RoKSkge1xuICAgICAgdGhpcy5zdGFjay5zaGlmdCgpO1xuICAgICAgLS10aGlzLmN1cnJlbnRTdGF0ZUluZGV4O1xuICAgIH1cblxuICAgIHRoaXMuZW1pdFVuZG9DaGFuZ2VzKGNvbGxlY3RLZXksIGNvbGxlY3REZWJvdW5jZSk7XG4gIH1cbn1cbiJdfQ==

@@ -172,3 +172,2 @@ import { CallableObject, isSetEqual, Debouncer } from '@s-libs/js-core';

/** @hidden */
class ChildStore extends Store {

@@ -175,0 +174,0 @@ constructor(getRootStore, parent, key) {

import { RootStore, Store } from './index';
/** @hidden */
export declare class ChildStore<T> extends Store<T> {

@@ -4,0 +3,0 @@ private parent;

import { CallableObject } from '@s-libs/js-core';
import { Observable, Subscriber } from 'rxjs';
import { ChildStore, RootStore } from './index';
/** @hidden */
declare type GetSlice<T> = <K extends keyof T>(attr: K) => Store<T[K]>;

@@ -6,0 +5,0 @@ export interface Store<T> extends GetSlice<T> {

import { Observable } from 'rxjs';
import { Store } from '../index';
/** @hidden */
export declare type UndoOrRedo = 'undo' | 'redo';

@@ -5,0 +4,0 @@ export declare abstract class UndoManager<StateType, UndoStateType> {

{
"name": "@s-libs/app-state",
"version": "12.0.0-next.1",
"version": "12.0.0",
"author": "Simonton Software",

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

"peerDependencies": {
"@s-libs/js-core": "^12.0.0-next.1",
"@s-libs/micro-dash": "^12.0.0-next.1",
"@s-libs/rxjs-core": "^12.0.0-next.1"
"@s-libs/js-core": "^12.0.0",
"@s-libs/micro-dash": "^12.0.0",
"@s-libs/rxjs-core": "^12.0.0"
},

@@ -18,0 +18,0 @@ "dependencies": {

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc