taxtank-core 0.29.31 → 0.29.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { Collection } from '../collection';
2
2
  import { ServicePriceTypeEnum } from '../../db/Enums/subscription/service-price-type.enum';
3
3
  import { ServiceProductIdEnum } from '../../db/Enums/subscription/service-product-id.enum';
4
+ import { ServiceProductCollection } from './service-product.collection';
4
5
  /**
5
6
  * @TODO vik refactor
6
7
  */
@@ -40,5 +41,8 @@ export class ServicePriceCollection extends Collection {
40
41
  }
41
42
  return this.filterBy('type', type).findBy('product.id', ServiceProductIdEnum.PROPERTIES);
42
43
  }
44
+ get products() {
45
+ return new ServiceProductCollection(this.mapBy('product'));
46
+ }
43
47
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUV6Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUNsRSxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzRixzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFGLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUIsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLElBQUksQ0FBQztRQUVULElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7U0FDdEY7YUFBTTtZQUNMLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO1NBQ3hGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VQcmljZVR5cGVFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS10eXBlLmVudW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdElkRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1pZC5lbnVtJztcblxuLyoqXG4gKiBAVE9ETyB2aWsgcmVmYWN0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcmljZUNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VQcmljZT4ge1xuICBnZXRBY3RpdmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzQWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBnZXQgbW9udGhseSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFkpO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlQYWNrYWdlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlJywgU2VydmljZVByaWNlVHlwZUVudW0uTU9OVEhMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBtb250aGx5UGFja2FnZVN1bSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5tb250aGx5UGFja2FnZS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcblxuICAgIC8vIEBUT0RPIG1vdmUgdG8gY29uc3RcbiAgICByZXR1cm4gdGhpcy5tb250aGx5UGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0IGFubnVhbCgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWSk7XG4gIH1cblxuICBnZXQgYW5udWFsUGFja2FnZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBhbm51YWxQYWNrYWdlU3VtKCk6IG51bWJlciB7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmFubnVhbFBhY2thZ2UuZmluZEJ5KCdwcm9kdWN0LmlkJywgU2VydmljZVByb2R1Y3RJZEVudW0uUFJPUEVSVElFUyk7XG5cbiAgICAvLyBAVE9ETyBtb3ZlIHRvIGNvbnN0XG4gICAgcmV0dXJuIHRoaXMuYW5udWFsUGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0UHJvcGVydHkoaXNBbm51YWw6IGJvb2xlYW4sIGlzUGFja2FnZTogYm9vbGVhbik6IFNlcnZpY2VQcmljZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoaXNBbm51YWwpIHtcbiAgICAgIHR5cGUgPSBpc1BhY2thZ2UgPyBTZXJ2aWNlUHJpY2VUeXBlRW51bS5ZRUFSTFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9IGlzUGFja2FnZSA/IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ3R5cGUnLCB0eXBlKS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcbiAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcmljZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV0RTs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUNsRSxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzRixzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFGLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUIsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLElBQUksQ0FBQztRQUVULElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7U0FDdEY7YUFBTTtZQUNMLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO1NBQ3hGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VQcmljZVR5cGVFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS10eXBlLmVudW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdElkRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1pZC5lbnVtJztcbmltcG9ydCB7U2VydmljZVByb2R1Y3RDb2xsZWN0aW9ufSBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdC5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBAVE9ETyB2aWsgcmVmYWN0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcmljZUNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VQcmljZT4ge1xuICBnZXRBY3RpdmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzQWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBnZXQgbW9udGhseSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFkpO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlQYWNrYWdlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCd0eXBlJywgU2VydmljZVByaWNlVHlwZUVudW0uTU9OVEhMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBtb250aGx5UGFja2FnZVN1bSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5tb250aGx5UGFja2FnZS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcblxuICAgIC8vIEBUT0RPIG1vdmUgdG8gY29uc3RcbiAgICByZXR1cm4gdGhpcy5tb250aGx5UGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0IGFubnVhbCgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWSk7XG4gIH1cblxuICBnZXQgYW5udWFsUGFja2FnZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgndHlwZScsIFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWV9QQUNLQUdFKTtcbiAgfVxuXG4gIGdldCBhbm51YWxQYWNrYWdlU3VtKCk6IG51bWJlciB7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmFubnVhbFBhY2thZ2UuZmluZEJ5KCdwcm9kdWN0LmlkJywgU2VydmljZVByb2R1Y3RJZEVudW0uUFJPUEVSVElFUyk7XG5cbiAgICAvLyBAVE9ETyBtb3ZlIHRvIGNvbnN0XG4gICAgcmV0dXJuIHRoaXMuYW5udWFsUGFja2FnZS5zdW1CeSgnYW1vdW50JykgKyBwcm9wZXJ0eS5hbW91bnQgKiA0O1xuICB9XG5cbiAgZ2V0UHJvcGVydHkoaXNBbm51YWw6IGJvb2xlYW4sIGlzUGFja2FnZTogYm9vbGVhbik6IFNlcnZpY2VQcmljZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoaXNBbm51YWwpIHtcbiAgICAgIHR5cGUgPSBpc1BhY2thZ2UgPyBTZXJ2aWNlUHJpY2VUeXBlRW51bS5ZRUFSTFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLllFQVJMWTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9IGlzUGFja2FnZSA/IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFlfUEFDS0FHRSA6IFNlcnZpY2VQcmljZVR5cGVFbnVtLk1PTlRITFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ3R5cGUnLCB0eXBlKS5maW5kQnkoJ3Byb2R1Y3QuaWQnLCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTKTtcbiAgfVxuXG4gIGdldCBwcm9kdWN0cygpOiBTZXJ2aWNlUHJvZHVjdENvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgU2VydmljZVByb2R1Y3RDb2xsZWN0aW9uKHRoaXMubWFwQnkoJ3Byb2R1Y3QnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -6,14 +6,18 @@ export class ServiceSubscriptionCollection extends Collection {
6
6
  getActive() {
7
7
  return this.filter((subscription) => subscription.isActive);
8
8
  }
9
+ getInactive() {
10
+ return this.filter((subscription) => !subscription.isActive);
11
+ }
9
12
  getTrials() {
10
13
  return this.filterBy('stripeId', null);
11
14
  }
12
15
  getActiveTrials() {
13
16
  return this.getActive().getTrials();
14
17
  }
15
- getExpiringTrials() {
16
- return this.getActiveTrials().filter((subscription) => subscription.isTrialExpiring());
18
+ getExpiredTrials() {
19
+ // @TODO vik remove paid products
20
+ return this.getInactive().getTrials();
17
21
  }
18
22
  getPaid() {
19
23
  return this.filter((subscription) => !!subscription.stripeId);
@@ -48,4 +52,4 @@ export class ServiceSubscriptionCollection extends Collection {
48
52
  return !!this.getItems().propertiesItem;
49
53
  }
50
54
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxVQUErQjtJQUNoRixTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFvQztRQUNqRCxNQUFNLG9CQUFvQixHQUF3RCxJQUFJLG9CQUFvQixDQUFDLElBQUksNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsSixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQ3JELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUF1QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFpQyxFQUFFLEVBQUU7WUFDckQsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzNHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFpQyxFQUFFLEVBQUU7WUFDdkQsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb259IGZyb20gJy4vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCwgU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIFNlcnZpY2VTdWJzY3JpcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VTdWJzY3JpcHRpb24+IHtcbiAgZ2V0QWN0aXZlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24uaXNBY3RpdmUpO1xuICB9XG5cbiAgZ2V0VHJpYWxzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCdzdHJpcGVJZCcsIG51bGwpO1xuICB9XG5cbiAgZ2V0QWN0aXZlVHJpYWxzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLmdldFRyaWFscygpO1xuICB9XG5cbiAgZ2V0RXhwaXJpbmdUcmlhbHMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlVHJpYWxzKCkuZmlsdGVyKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi5pc1RyaWFsRXhwaXJpbmcoKSk7XG4gIH1cblxuICBnZXRQYWlkKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoc3Vic2NyaXB0aW9uKSA9PiAhIXN1YnNjcmlwdGlvbi5zdHJpcGVJZCk7XG4gIH1cblxuICBnZXRBY3RpdmVQYWlkKCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLmZpbmQoKHN1YnNjcmlwdGlvbikgPT4gISFzdWJzY3JpcHRpb24uc3RyaXBlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayByZW1vdmUgdHJpYWxzIHJlcGxhY2VkIGJ5IHBhaWQgaXRlbVxuICAgKi9cbiAgZ2V0SXRlbXMoKTogU3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb24oZmxhdHRlbih0aGlzLm1hcEJ5KCdpdGVtcycpKSk7XG4gIH1cblxuICBncm91cEJ5UHJvZHVjdChwcm9kdWN0czogQ29sbGVjdGlvbjxTZXJ2aWNlUHJvZHVjdD4pOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25EaWN0aW9uYXJ5OiBDb2xsZWN0aW9uRGljdGlvbmFyeTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4gPSBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkobmV3IFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uKFtdKSk7XG5cbiAgICBwcm9kdWN0cy50b0FycmF5KCkuZm9yRWFjaCgocHJvZHVjdDogU2VydmljZVByb2R1Y3QpID0+IHtcbiAgICAgIGNvbGxlY3Rpb25EaWN0aW9uYXJ5LmFkZChwcm9kdWN0LmlkLCB0aGlzLmZpbHRlckJ5UHJvZHVjdChwcm9kdWN0KSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29sbGVjdGlvbkRpY3Rpb25hcnk7XG4gIH1cblxuICBmaW5kQnlQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogU2VydmljZVN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZCgoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gISFzdWJzY3JpcHRpb24uaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pZCA9PT0gcHJvZHVjdC5pZClcbiAgICB9KTtcbiAgfVxuXG4gIGZpbHRlckJ5UHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gISFzdWJzY3JpcHRpb24uaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pZCA9PT0gcHJvZHVjdC5pZCk7XG4gICAgfSk7XG4gIH1cblxuICBoYXNQcm9wZXJ0eVRhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRJdGVtcygpLnByb3BlcnRpZXNJdGVtO1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxVQUErQjtJQUNoRixTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxpQ0FBaUM7UUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFvQztRQUNqRCxNQUFNLG9CQUFvQixHQUF3RCxJQUFJLG9CQUFvQixDQUFDLElBQUksNkJBQTZCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsSixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFO1lBQ3JELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUF1QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFpQyxFQUFFLEVBQUU7WUFDckQsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzNHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF1QjtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFpQyxFQUFFLEVBQUU7WUFDdkQsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uSXRlbUNvbGxlY3Rpb259IGZyb20gJy4vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCwgU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0sIFNlcnZpY2VTdWJzY3JpcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFNlcnZpY2VTdWJzY3JpcHRpb24+IHtcbiAgZ2V0QWN0aXZlKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24uaXNBY3RpdmUpO1xuICB9XG5cbiAgZ2V0SW5hY3RpdmUoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChzdWJzY3JpcHRpb24pID0+ICFzdWJzY3JpcHRpb24uaXNBY3RpdmUpO1xuICB9XG5cbiAgZ2V0VHJpYWxzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KCdzdHJpcGVJZCcsIG51bGwpO1xuICB9XG5cbiAgZ2V0QWN0aXZlVHJpYWxzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLmdldFRyaWFscygpO1xuICB9XG5cbiAgZ2V0RXhwaXJlZFRyaWFscygpOiB0aGlzIHtcbiAgICAvLyBAVE9ETyB2aWsgcmVtb3ZlIHBhaWQgcHJvZHVjdHNcbiAgICByZXR1cm4gdGhpcy5nZXRJbmFjdGl2ZSgpLmdldFRyaWFscygpO1xuICB9XG5cbiAgZ2V0UGFpZCgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKHN1YnNjcmlwdGlvbikgPT4gISFzdWJzY3JpcHRpb24uc3RyaXBlSWQpO1xuICB9XG5cbiAgZ2V0QWN0aXZlUGFpZCgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBY3RpdmUoKS5maW5kKChzdWJzY3JpcHRpb24pID0+ICEhc3Vic2NyaXB0aW9uLnN0cmlwZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgcmVtb3ZlIHRyaWFscyByZXBsYWNlZCBieSBwYWlkIGl0ZW1cbiAgICovXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKGZsYXR0ZW4odGhpcy5tYXBCeSgnaXRlbXMnKSkpO1xuICB9XG5cbiAgZ3JvdXBCeVByb2R1Y3QocHJvZHVjdHM6IENvbGxlY3Rpb248U2VydmljZVByb2R1Y3Q+KTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8U2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uRGljdGlvbmFyeTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8U2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+ID0gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KG5ldyBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbihbXSkpO1xuXG4gICAgcHJvZHVjdHMudG9BcnJheSgpLmZvckVhY2goKHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KSA9PiB7XG4gICAgICBjb2xsZWN0aW9uRGljdGlvbmFyeS5hZGQocHJvZHVjdC5pZCwgdGhpcy5maWx0ZXJCeVByb2R1Y3QocHJvZHVjdCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb25EaWN0aW9uYXJ5O1xuICB9XG5cbiAgZmluZEJ5UHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmZpbmQoKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgcmV0dXJuICEhc3Vic2NyaXB0aW9uLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaWQgPT09IHByb2R1Y3QuaWQpXG4gICAgfSk7XG4gIH1cblxuICBmaWx0ZXJCeVByb2R1Y3QocHJvZHVjdDogU2VydmljZVByb2R1Y3QpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgcmV0dXJuICEhc3Vic2NyaXB0aW9uLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaWQgPT09IHByb2R1Y3QuaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0SXRlbXMoKS5wcm9wZXJ0aWVzSXRlbTtcbiAgfVxufVxuIl19
@@ -10,8 +10,8 @@ export class SubscriptionItemCollection extends Collection {
10
10
  hasProduct(product) {
11
11
  return !!this.findBy('price.product.id', product.id);
12
12
  }
13
- getPrices() {
13
+ get prices() {
14
14
  return new ServicePriceCollection(this.mapBy('price'));
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxVQUFtQztJQUNqRixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBNkIsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekcsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXVCO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCwgU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtTZXJ2aWNlUHJpY2VDb2xsZWN0aW9ufSBmcm9tICcuL3NlcnZpY2UtcHJpY2UuY29sbGVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248U2VydmljZVN1YnNjcmlwdGlvbkl0ZW0+IHtcbiAgZ2V0IHByb3BlcnRpZXNJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpLmxhc3Q7XG4gIH1cblxuICBnZXQgcHJvcGVydHlRdWFudGl0eSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXNJdGVtID8gdGhpcy5wcm9wZXJ0aWVzSXRlbS5xdWFudGl0eSA6IDA7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maW5kQnkoJ3ByaWNlLnByb2R1Y3QuaWQnLCBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGdldFByaWNlcygpOiBTZXJ2aWNlUHJpY2VDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNlcnZpY2VQcmljZUNvbGxlY3Rpb24odGhpcy5tYXBCeSgncHJpY2UnKSk7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLWl0ZW0uY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxVQUFtQztJQUNqRixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBNkIsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekcsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXVCO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQcm9kdWN0LCBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VQcmljZUNvbGxlY3Rpb259IGZyb20gJy4vc2VydmljZS1wcmljZS5jb2xsZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbT4ge1xuICBnZXQgcHJvcGVydGllc0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1Byb3BlcnRpZXMoKSkubGFzdDtcbiAgfVxuXG4gIGdldCBwcm9wZXJ0eVF1YW50aXR5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydGllc0l0ZW0gPyB0aGlzLnByb3BlcnRpZXNJdGVtLnF1YW50aXR5IDogMDtcbiAgfVxuXG4gIGhhc1Byb2R1Y3QocHJvZHVjdDogU2VydmljZVByb2R1Y3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpbmRCeSgncHJpY2UucHJvZHVjdC5pZCcsIHByb2R1Y3QuaWQpO1xuICB9XG5cbiAgZ2V0IHByaWNlcygpOiBTZXJ2aWNlUHJpY2VDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNlcnZpY2VQcmljZUNvbGxlY3Rpb24odGhpcy5tYXBCeSgncHJpY2UnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  import { ObservableModel } from '../observable-model';
2
2
  export class ClientIncomeTypes extends ObservableModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdXNlci9jbGllbnQtaW5jb21lLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtDQVNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xpZW50RGV0YWlsc30gZnJvbSAnLi9jbGllbnQtZGV0YWlscyc7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uL2Fic3RyYWN0LW1vZGVsJztcbmltcG9ydCB7T2JzZXJ2YWJsZU1vZGVsfSBmcm9tICcuLi9vYnNlcnZhYmxlLW1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENsaWVudEluY29tZVR5cGVzIGV4dGVuZHMgT2JzZXJ2YWJsZU1vZGVsIHtcbiAgc2FsYXJ5PzogYm9vbGVhbjtcbiAgcHJvcGVydHk/OiBib29sZWFuO1xuICBzb2xlPzogYm9vbGVhbjtcbiAgZGl2aWRlbmRzPzogYm9vbGVhbjtcbiAgb3RoZXI/OiBib29sZWFuO1xuICBpZD86IG51bWJlcjtcbiAgZGVsZXRlZEF0PzogRGF0ZTtcbiAgY2xpZW50RGV0YWlscz86IENsaWVudERldGFpbHM7XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdXNlci9jbGllbnQtaW5jb21lLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtDQVFyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xpZW50RGV0YWlsc30gZnJvbSAnLi9jbGllbnQtZGV0YWlscyc7XG5pbXBvcnQge09ic2VydmFibGVNb2RlbH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS1tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDbGllbnRJbmNvbWVUeXBlcyBleHRlbmRzIE9ic2VydmFibGVNb2RlbCB7XG4gIGlkPzogbnVtYmVyO1xuICBjbGllbnREZXRhaWxzPzogQ2xpZW50RGV0YWlscztcbiAgd29yaz86IGJvb2xlYW47XG4gIHByb3BlcnR5PzogYm9vbGVhbjtcbiAgc29sZT86IGJvb2xlYW47XG4gIGhvbGRpbmdzPzogYm9vbGVhbjtcbiAgZGVsZXRlZEF0PzogRGF0ZTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  import { AbstractModel } from '../abstract-model';
2
2
  export class User extends AbstractModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8sSUFBSyxTQUFRLGFBQWE7Q0FxQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclRpdGxlRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItdGl0bGUuZW51bSc7XG5pbXBvcnQgeyBVc2VyU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vcHJvcGVydHkvcHJvcGVydHktc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgVXNlckV2ZW50U2V0dGluZyB9IGZyb20gJy4vdXNlci1ldmVudC1zZXR0aW5nJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgVGF4UmV2aWV3IH0gZnJvbSAnLi4vZmlybS9hY2NvdW50YW50L3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgUHJvcGVydHlTaGFyZSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFBob25lIH0gZnJvbSAnLi4vcGhvbmUnO1xuaW1wb3J0IHsgQ2xpZW50TW92ZW1lbnQgfSBmcm9tICcuLi9maXJtL2NsaWVudC1tb3ZlbWVudCc7XG5pbXBvcnQgeyBDbGllbnREZXRhaWxzIH0gZnJvbSAnLi9jbGllbnQtZGV0YWlscyc7XG5pbXBvcnQgeyBFbXBsb3llZURldGFpbHMgfSBmcm9tICcuL2VtcGxveWVlLWRldGFpbHMnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC1tb2RlbCc7XG5pbXBvcnQgeyBTb2xlRGV0YWlscyB9IGZyb20gJy4uL3NvbGUvc29sZS1kZXRhaWxzJztcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaWQ/OiBudW1iZXI7XG4gIGludGVyY29tSWQ/OiBudW1iZXI7XG4gIGNyZWF0ZWRBdD86IERhdGU7XG4gIHVwZGF0ZWRBdD86IERhdGU7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBoYXNoZWRFbWFpbD86IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIGZpcnN0TmFtZT86IHN0cmluZztcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlPzogVXNlclRpdGxlRW51bTtcbiAgcGhvdG8/OiBzdHJpbmc7XG4gIHN0YXR1cz86IFVzZXJTdGF0dXNFbnVtO1xuICBpc0NvbmZpcm1lZD86IGJvb2xlYW47XG4gIHZlcmlmaWNhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHJlZmVyZXI/OiBVc2VyO1xuICByZWZlcmVuY2VDb2RlPzogc3RyaW5nO1xuICByZXdhcmRmdWxSZWZlcnJhbEtleT86IHN0cmluZztcbiAgc3RyaXBlSWQ/OiBzdHJpbmc7XG4gIGJhc2lxSWQ/OiBzdHJpbmc7XG4gIHJvbGVzPzogVXNlclJvbGVzRW51bTtcbiAgZmluYW5jaWFsWWVhcj86IG51bWJlcjtcbiAgZGF0ZU9mQmlydGg/OiBEYXRlO1xuICBkZWxldGVkQXQ/OiBEYXRlO1xuICBwcm9wZXJ0aWVzPzogUHJvcGVydHlbXTtcbiAgcHJvcGVydHlTdWJzY3JpcHRpb25zPzogUHJvcGVydHlTdWJzY3JpcHRpb25bXTtcbiAgc3Vic2NyaXB0aW9ucz86IFNlcnZpY2VTdWJzY3JpcHRpb25bXTtcbiAgZXZlbnRTZXR0aW5ncz86IFVzZXJFdmVudFNldHRpbmdbXTtcbiAgYmFua0Nvbm5lY3Rpb25zPzogQmFua0Nvbm5lY3Rpb25bXTtcbiAgdGF4UmV2aWV3cz86IFRheFJldmlld1tdO1xuICBwcm9wZXJ0eVNoYXJlcz86IFByb3BlcnR5U2hhcmVbXTtcbiAgYWRkcmVzcz86IEFkZHJlc3M7XG4gIHBob25lPzogUGhvbmU7XG4gIGNsaWVudE1vdmVtZW50cz86IENsaWVudE1vdmVtZW50W107XG4gIGNsaWVudERldGFpbHM/OiBDbGllbnREZXRhaWxzO1xuICBlbXBsb3llZURldGFpbHM/OiBFbXBsb3llZURldGFpbHM7XG4gIHNvbGVEZXRhaWxzPzogU29sZURldGFpbHM7XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8sSUFBSyxTQUFRLGFBQWE7Q0FzQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclRpdGxlRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItdGl0bGUuZW51bSc7XG5pbXBvcnQgeyBVc2VyU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vcHJvcGVydHkvcHJvcGVydHktc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgVXNlckV2ZW50U2V0dGluZyB9IGZyb20gJy4vdXNlci1ldmVudC1zZXR0aW5nJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgVGF4UmV2aWV3IH0gZnJvbSAnLi4vZmlybS9hY2NvdW50YW50L3RheC1yZXZpZXcnO1xuaW1wb3J0IHsgUHJvcGVydHlTaGFyZSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFBob25lIH0gZnJvbSAnLi4vcGhvbmUnO1xuaW1wb3J0IHsgQ2xpZW50TW92ZW1lbnQgfSBmcm9tICcuLi9maXJtL2NsaWVudC1tb3ZlbWVudCc7XG5pbXBvcnQgeyBDbGllbnREZXRhaWxzIH0gZnJvbSAnLi9jbGllbnQtZGV0YWlscyc7XG5pbXBvcnQgeyBFbXBsb3llZURldGFpbHMgfSBmcm9tICcuL2VtcGxveWVlLWRldGFpbHMnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC1tb2RlbCc7XG5pbXBvcnQgeyBTb2xlRGV0YWlscyB9IGZyb20gJy4uL3NvbGUvc29sZS1kZXRhaWxzJztcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaWQ/OiBudW1iZXI7XG4gIGludGVyY29tSWQ/OiBudW1iZXI7XG4gIGNyZWF0ZWRBdD86IERhdGU7XG4gIHVwZGF0ZWRBdD86IERhdGU7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBoYXNoZWRFbWFpbD86IHN0cmluZztcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIGZpcnN0TmFtZT86IHN0cmluZztcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlPzogVXNlclRpdGxlRW51bTtcbiAgcGhvdG8/OiBzdHJpbmc7XG4gIHN0YXR1cz86IFVzZXJTdGF0dXNFbnVtO1xuICBpc0NvbmZpcm1lZD86IGJvb2xlYW47XG4gIHZlcmlmaWNhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHJlZmVyZXI/OiBVc2VyO1xuICByZWZlcmVuY2VDb2RlPzogc3RyaW5nO1xuICByZXdhcmRmdWxSZWZlcnJhbEtleT86IHN0cmluZztcbiAgc3RyaXBlSWQ/OiBzdHJpbmc7XG4gIGJhc2lxSWQ/OiBzdHJpbmc7XG4gIHJvbGVzPzogVXNlclJvbGVzRW51bTtcbiAgZmluYW5jaWFsWWVhcj86IG51bWJlcjtcbiAgZGF0ZU9mQmlydGg/OiBEYXRlO1xuICBsYXN0U2Vlbj86IERhdGU7XG4gIGRlbGV0ZWRBdD86IERhdGU7XG4gIHByb3BlcnRpZXM/OiBQcm9wZXJ0eVtdO1xuICBwcm9wZXJ0eVN1YnNjcmlwdGlvbnM/OiBQcm9wZXJ0eVN1YnNjcmlwdGlvbltdO1xuICBzdWJzY3JpcHRpb25zPzogU2VydmljZVN1YnNjcmlwdGlvbltdO1xuICBldmVudFNldHRpbmdzPzogVXNlckV2ZW50U2V0dGluZ1tdO1xuICBiYW5rQ29ubmVjdGlvbnM/OiBCYW5rQ29ubmVjdGlvbltdO1xuICB0YXhSZXZpZXdzPzogVGF4UmV2aWV3W107XG4gIHByb3BlcnR5U2hhcmVzPzogUHJvcGVydHlTaGFyZVtdO1xuICBhZGRyZXNzPzogQWRkcmVzcztcbiAgcGhvbmU/OiBQaG9uZTtcbiAgY2xpZW50TW92ZW1lbnRzPzogQ2xpZW50TW92ZW1lbnRbXTtcbiAgY2xpZW50RGV0YWlscz86IENsaWVudERldGFpbHM7XG4gIGVtcGxveWVlRGV0YWlscz86IEVtcGxveWVlRGV0YWlscztcbiAgc29sZURldGFpbHM/OiBTb2xlRGV0YWlscztcbn1cbiJdfQ==
@@ -6,13 +6,12 @@ import { plainToClass } from 'class-transformer';
6
6
  export class ClientIncomeTypesForm extends AbstractForm {
7
7
  constructor(clientIncomeTypes = plainToClass(ClientIncomeTypes, {})) {
8
8
  super({
9
- salary: new FormControl(clientIncomeTypes.salary),
9
+ work: new FormControl(clientIncomeTypes.work),
10
10
  property: new FormControl(clientIncomeTypes.property),
11
11
  sole: new FormControl(clientIncomeTypes.sole),
12
- dividends: new FormControl(clientIncomeTypes.dividends),
13
- other: new FormControl(clientIncomeTypes.other)
12
+ holdings: new FormControl({ value: clientIncomeTypes.holdings, disabled: true })
14
13
  }, clientIncomeTypes, atLeastOneCheckedValidator());
15
14
  this.clientIncomeTypes = clientIncomeTypes;
16
15
  }
17
16
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQStCO0lBQ3hFLFlBQW9CLG9CQUF1QyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzVGLEtBQUssQ0FBQztZQUNKLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7WUFDakQsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztZQUNyRCxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1lBQzdDLFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7WUFDdkQsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztTQUNoRCxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQztRQVBsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlEO0lBUTlGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbGllbnRJbmNvbWVUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWluY29tZS10eXBlcyc7XG5pbXBvcnQgeyBhdExlYXN0T25lQ2hlY2tlZFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY2xhc3MgQ2xpZW50SW5jb21lVHlwZXNGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPENsaWVudEluY29tZVR5cGVzPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpZW50SW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzID0gcGxhaW5Ub0NsYXNzKENsaWVudEluY29tZVR5cGVzLCB7fSkpIHtcbiAgICBzdXBlcih7XG4gICAgICBzYWxhcnk6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5zYWxhcnkpLFxuICAgICAgcHJvcGVydHk6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5wcm9wZXJ0eSksXG4gICAgICBzb2xlOiBuZXcgRm9ybUNvbnRyb2woY2xpZW50SW5jb21lVHlwZXMuc29sZSksXG4gICAgICBkaXZpZGVuZHM6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5kaXZpZGVuZHMpLFxuICAgICAgb3RoZXI6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy5vdGhlcilcbiAgICB9LCBjbGllbnRJbmNvbWVUeXBlcywgYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IoKSk7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFlBQStCO0lBQ3hFLFlBQW9CLG9CQUF1QyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1FBQzVGLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDN0MsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztZQUNyRCxJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pGLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBTmxDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUQ7SUFPOUYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENsaWVudEluY29tZVR5cGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzJztcbmltcG9ydCB7IGF0TGVhc3RPbmVDaGVja2VkVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbmV4cG9ydCBjbGFzcyBDbGllbnRJbmNvbWVUeXBlc0Zvcm0gZXh0ZW5kcyBBYnN0cmFjdEZvcm08Q2xpZW50SW5jb21lVHlwZXM+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnRJbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMgPSBwbGFpblRvQ2xhc3MoQ2xpZW50SW5jb21lVHlwZXMsIHt9KSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHdvcms6IG5ldyBGb3JtQ29udHJvbChjbGllbnRJbmNvbWVUeXBlcy53b3JrKSxcbiAgICAgIHByb3BlcnR5OiBuZXcgRm9ybUNvbnRyb2woY2xpZW50SW5jb21lVHlwZXMucHJvcGVydHkpLFxuICAgICAgc29sZTogbmV3IEZvcm1Db250cm9sKGNsaWVudEluY29tZVR5cGVzLnNvbGUpLFxuICAgICAgaG9sZGluZ3M6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBjbGllbnRJbmNvbWVUeXBlcy5ob2xkaW5ncywgZGlzYWJsZWQ6IHRydWUgfSlcbiAgICB9LCBjbGllbnRJbmNvbWVUeXBlcywgYXRMZWFzdE9uZUNoZWNrZWRWYWxpZGF0b3IoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -196,6 +196,9 @@ export class ChartAccounts extends ChartAccountsBase {
196
196
  isSalaryIncluded() {
197
197
  return this.id in ChartAccountsSalaryIncludedListEnum;
198
198
  }
199
+ isPropertyCapitalWorks() {
200
+ return this.category === ChartAccountsCategoryEnum.PROPERTY_CAPITAL_WORKS;
201
+ }
199
202
  }
200
203
  /**
201
204
  * Australian GST percent value (VAT)
@@ -209,4 +212,4 @@ __decorate([
209
212
  __decorate([
210
213
  Type(() => ChartAccountsMetadata)
211
214
  ], ChartAccounts.prototype, "metadata", void 0);
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxtQ0FBbUMsRUFDckYsK0JBQStCLEVBQUUscUNBQXFDLEVBQUUsbUNBQW1DLEVBQzNHLDRCQUE0QixFQUM3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBY2xEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNI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QURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs4Q0FDSDtBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzsrQ0FDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0QWNjb3VudHMgYXMgQ2hhcnRBY2NvdW50c0Jhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzSGVhZGluZyB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaGVhZGluZyc7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNNZXRhZGF0YSB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEnO1xyXG5pbXBvcnQge1xyXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSwgQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSwgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhEZWR1Y3RpYmxlRW51bSwgQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bVxyXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XHJcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c1ZhbHVlIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy12YWx1ZSc7XHJcbmltcG9ydCB7Q2hhcnRBY2NvdW50c1RheExhYmVsc0VudW19IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdGF4LWxhYmVscy5lbnVtJztcclxuaW1wb3J0IHtlbnVtVG9MaXN0fSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZW51bS10by1saXN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFydEFjY291bnRzIGV4dGVuZHMgQ2hhcnRBY2NvdW50c0Jhc2Uge1xyXG4gIC8qKlxyXG4gICAqIEF1c3RyYWxpYW4gR1NUIHBlcmNlbnQgdmFsdWUgKFZBVClcclxuICAgKi9cclxuICBzdGF0aWMgR1NUUmF0aW8gPSAwLjE7XHJcbiAgc3RhdGljIEdTVENvZWZmaWNpZW50ID0gMS4xO1xyXG4gIHN0YXRpYyBHU1RQZXJjZW50ID0gMTA7XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNIZWFkaW5nKVxyXG4gIGhlYWRpbmc6IENoYXJ0QWNjb3VudHNIZWFkaW5nO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzTWV0YWRhdGEpXHJcbiAgbWV0YWRhdGE6IENoYXJ0QWNjb3VudHNNZXRhZGF0YVtdO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gbmFtZSBhcyBzdHJpbmdcclxuICAgKi9cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdLbXMgdHJhdmVsbGVkIGZvciB3b3JrJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzS21zRm9yV29yaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURfRk9SX1dPUks7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnS21zIHRyYXZlbGxlZCBmb3Igc29sZScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ttc0ZvclNvbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgS01zIGNhdGVnb3J5IHJlbGF0ZWQgdG8gcGFzc2VkIHRhbmsgdHlwZVxyXG4gICAqL1xyXG4gIGlzS01zQnlUYW5rVHlwZSh0YW5rVHlwZTogVGFua1R5cGVFbnVtKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHRhbmtUeXBlKSB7XHJcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNLbXNGb3JXb3JrKCk7XHJcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNLbXNGb3JTb2xlKCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc3BlY2lhbCB0eXBlIHVzZWQgZm9yIGp1c3QgcHJlLXBheWluZyB0YXggdG8gdGhlIEFUTywgdXNlcyBvbiB0YXggc3VtbWFyeVxyXG4gICAqL1xyXG4gIGlzTlJBUygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVEFYX09GRlNFVFNfTl9SX0FfUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdJbnRlcmVzdCBvbiBMb2FuJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzSW50ZXJlc3RPbkxvYW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnTW90b3IgVmVoaWNsZXMnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNWZWhpY2xlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnSW50ZXJlc3QgRWFybmVkJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzSW50ZXJlc3RFYXJuZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX0VBUk5FRDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdUcnVzdCBJbmNvbWUnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNUcnVzdEluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVFJVU1RfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ01vdG9yIHZlaGljbGVzIChjb21tZXJjaWFsIGNhcnMpJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzQ29tbWVyY2lhbFZlaGljbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5DT01NRVJDSUFMX1ZFSElDTEVTO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgd29yayBpbmNvbWVcclxuICAgKi9cclxuICBpc1dvcmtJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzVmVoaWNsZUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bVt0aGlzLmhlYWRpbmc/LmlkXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIG90aGVyIGluY29tZVxyXG4gICAqL1xyXG4gIGlzT3RoZXJJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc0luY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1Byb3BlcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1dvcmtFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfREVQUkVDSUFUSU9OXVxyXG4gICAgICAuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGVFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0RFUFJFQ0lBVElPTl1cclxuICAgICAgLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgcHJvcGVydHkgZXhwZW5zZVxyXG4gICAqL1xyXG4gIGlzUHJvcGVydHlFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNQcm9wZXJ0eSgpICYmIHRoaXMuaXNFeHBlbnNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBwcm9wZXJ0eSBpbmNvbWVcclxuICAgKi9cclxuICBpc1Byb3BlcnR5SW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNQZXJzb25hbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNQZXJzb25hbEV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QRVJTT05BTF9FWFBFTlNFO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgaXMgZGVwcmVjaWF0aW9uXHJcbiAgICovXHJcbiAgaXNEZXByZWNpYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5kZXByZWNpYXRpb24uaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBjaGFydCBhY2NvdW50IGlzIHdvcmsgcmVsYXRlZCBjYXIgZXhwZW5zZXNcclxuICAgKi9cclxuICBpc1ZlaGljbGVMb2FuRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRV9MT0FOX0lOVEVSRVNUIHx8IHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFX0xPQU5fUFJJTkNJUEFMO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIHZhbHVlIGZvciBjdXJyZW50IGZpbmFuY2lhbCB5ZWFyXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVudFllYXJWYWx1ZSgpOiBDaGFydEFjY291bnRzVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVCeVllYXIobmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjaGFydCBhY2NvdW50cyB2YWx1ZSBieSBmaW5hbmNpYWwgeWVhclxyXG4gICAqL1xyXG4gIGdldFZhbHVlQnlZZWFyKHllYXI6IG51bWJlcik6IENoYXJ0QWNjb3VudHNWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuZmluZCgodmFsdWU6IENoYXJ0QWNjb3VudHNWYWx1ZSk6IGJvb2xlYW4gPT4gdmFsdWUuZmluYW5jaWFsWWVhciA9PT0geWVhcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBubyB3YXkgdG8gY2hlY2sgaG93IG11Y2ggdXNlZCBmb3Igd29yay9zb2xlLCBzbyB3ZSBsZXQgdXNlciBhZGp1c3QgaXRcclxuICAgKiBleGNlcHQgdmVoaWNsZSBleHBlbnNlLCB3aGljaCBpcyBlcXVhbCB0byB2ZWhpY2xlQ2xhaW0ud29ya1VzYWdlIGFuZCBwZXJzb25hbCwgd2hpY2ggaXMgZXF1YWwgdG8gMFxyXG4gICAqL1xyXG4gIGlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuaXNXb3JrRXhwZW5zZSgpIHx8IHRoaXMuaXNTb2xlRXhwZW5zZSgpKSAmJiAoIXRoaXMuaXNWZWhpY2xlRXhwZW5zZSgpICYmICF0aGlzLmlzUGVyc29uYWxFeHBlbnNlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGxhYmVsIGZvciB0cmFuc2FjdGlvbiB0YXggZmllbGQgZGVwZW5kZWQgb24gc2VsZWN0ZWQgY2hhcnQgYWNjb3VudC5cclxuICAgKiB0YXggdHlwZSBkZXBlbmRzIG9uIGNoYXJ0IGFjY291bnQgaGVhZGluZyBvciBjYXRlZ29yeS5cclxuICAgKi9cclxuICBnZXRUYXhMYWJlbCgpOiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bSB7XHJcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXhhYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCB0YXhhYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4YWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheC1kZWR1Y3RpYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCBkZWR1Y3RpYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBvbmUgb2YgaWRzIGFycmF5cyBpbmNsdWRlcyBjdXJyZW50IGNoYXJ0IGFjY291bnRzIGhlYWRpbmcgaWQgYW5kIHNldCB0YXggbGFiZWxcclxuICAgIC8vIG90aGVyd2lzZSBsYWJlbCBpcyBlbXB0eSBmb3IgdGhpcyBjbGFzc1xyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIGNhc2UgdGF4YWJsZUNBSGVhZGluZ3NJZHMuaW5jbHVkZXModGhpcy5oZWFkaW5nPy5pZCk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9QQUlEO1xyXG4gICAgICBjYXNlIGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKHRoaXMuaGVhZGluZz8uaWQpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfREVEVUNURUQ7XHJcbiAgICAgIGNhc2UgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy53b3JrSW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfV0lUSEhFTEQ7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0VUUCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRpbmcuaWQgPT09IENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uRVRQXHJcbiAgfVxyXG5cclxuICBpc1NhbGFyeSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uU0FMQVJZX09SX1dBR0VTO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hhcnQgYWNjb3VudHMgaW5jbHVkZWQgaW4gc2FsYXJ5LCBsaWtlIHRpcHMgb3IgYWxsb3dhbmNlXHJcbiAgICovXHJcbiAgaXNTYWxhcnlJbmNsdWRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkIGluIENoYXJ0QWNjb3VudHNTYWxhcnlJbmNsdWRlZExpc3RFbnVtO1xyXG4gIH1cclxufVxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxtQ0FBbUMsRUFDckYsK0JBQStCLEVBQUUscUNBQXFDLEVBQUUsbUNBQW1DLEVBQzNHLDRCQUE0QixFQUM3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBY2xEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNI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QVEsR0FBRyxHQUFHLENBQUM7QUFDZiw0QkFBYyxHQUFHLEdBQUcsQ0FBQztBQUNyQix3QkFBVSxHQUFHLEVBQUUsQ0FBQztBQUd2QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs4Q0FDSDtBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzsrQ0FDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0QWNjb3VudHMgYXMgQ2hhcnRBY2NvdW50c0Jhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzSGVhZGluZyB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaGVhZGluZyc7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNNZXRhZGF0YSB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEnO1xyXG5pbXBvcnQge1xyXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSwgQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSwgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhEZWR1Y3RpYmxlRW51bSwgQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bVxyXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XHJcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c1ZhbHVlIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy12YWx1ZSc7XHJcbmltcG9ydCB7Q2hhcnRBY2NvdW50c1RheExhYmVsc0VudW19IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdGF4LWxhYmVscy5lbnVtJztcclxuaW1wb3J0IHtlbnVtVG9MaXN0fSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZW51bS10by1saXN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFydEFjY291bnRzIGV4dGVuZHMgQ2hhcnRBY2NvdW50c0Jhc2Uge1xyXG4gIC8qKlxyXG4gICAqIEF1c3RyYWxpYW4gR1NUIHBlcmNlbnQgdmFsdWUgKFZBVClcclxuICAgKi9cclxuICBzdGF0aWMgR1NUUmF0aW8gPSAwLjE7XHJcbiAgc3RhdGljIEdTVENvZWZmaWNpZW50ID0gMS4xO1xyXG4gIHN0YXRpYyBHU1RQZXJjZW50ID0gMTA7XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNIZWFkaW5nKVxyXG4gIGhlYWRpbmc6IENoYXJ0QWNjb3VudHNIZWFkaW5nO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzTWV0YWRhdGEpXHJcbiAgbWV0YWRhdGE6IENoYXJ0QWNjb3VudHNNZXRhZGF0YVtdO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gbmFtZSBhcyBzdHJpbmdcclxuICAgKi9cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdLbXMgdHJhdmVsbGVkIGZvciB3b3JrJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzS21zRm9yV29yaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURfRk9SX1dPUks7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnS21zIHRyYXZlbGxlZCBmb3Igc29sZScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ttc0ZvclNvbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgS01zIGNhdGVnb3J5IHJlbGF0ZWQgdG8gcGFzc2VkIHRhbmsgdHlwZVxyXG4gICAqL1xyXG4gIGlzS01zQnlUYW5rVHlwZSh0YW5rVHlwZTogVGFua1R5cGVFbnVtKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHRhbmtUeXBlKSB7XHJcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNLbXNGb3JXb3JrKCk7XHJcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNLbXNGb3JTb2xlKCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc3BlY2lhbCB0eXBlIHVzZWQgZm9yIGp1c3QgcHJlLXBheWluZyB0YXggdG8gdGhlIEFUTywgdXNlcyBvbiB0YXggc3VtbWFyeVxyXG4gICAqL1xyXG4gIGlzTlJBUygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVEFYX09GRlNFVFNfTl9SX0FfUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdJbnRlcmVzdCBvbiBMb2FuJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzSW50ZXJlc3RPbkxvYW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnTW90b3IgVmVoaWNsZXMnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNWZWhpY2xlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnSW50ZXJlc3QgRWFybmVkJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzSW50ZXJlc3RFYXJuZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX0VBUk5FRDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdUcnVzdCBJbmNvbWUnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNUcnVzdEluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVFJVU1RfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ01vdG9yIHZlaGljbGVzIChjb21tZXJjaWFsIGNhcnMpJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzQ29tbWVyY2lhbFZlaGljbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5DT01NRVJDSUFMX1ZFSElDTEVTO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgd29yayBpbmNvbWVcclxuICAgKi9cclxuICBpc1dvcmtJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzVmVoaWNsZUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bVt0aGlzLmhlYWRpbmc/LmlkXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIG90aGVyIGluY29tZVxyXG4gICAqL1xyXG4gIGlzT3RoZXJJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc0luY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1Byb3BlcnR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1dvcmtFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfREVQUkVDSUFUSU9OXVxyXG4gICAgICAuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGVFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0RFUFJFQ0lBVElPTl1cclxuICAgICAgLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgcHJvcGVydHkgZXhwZW5zZVxyXG4gICAqL1xyXG4gIGlzUHJvcGVydHlFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNQcm9wZXJ0eSgpICYmIHRoaXMuaXNFeHBlbnNlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBwcm9wZXJ0eSBpbmNvbWVcclxuICAgKi9cclxuICBpc1Byb3BlcnR5SW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNQZXJzb25hbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNQZXJzb25hbEV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QRVJTT05BTF9FWFBFTlNFO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgaXMgZGVwcmVjaWF0aW9uXHJcbiAgICovXHJcbiAgaXNEZXByZWNpYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5kZXByZWNpYXRpb24uaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBjaGFydCBhY2NvdW50IGlzIHdvcmsgcmVsYXRlZCBjYXIgZXhwZW5zZXNcclxuICAgKi9cclxuICBpc1ZlaGljbGVMb2FuRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRV9MT0FOX0lOVEVSRVNUIHx8IHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFX0xPQU5fUFJJTkNJUEFMO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIHZhbHVlIGZvciBjdXJyZW50IGZpbmFuY2lhbCB5ZWFyXHJcbiAgICovXHJcbiAgZ2V0Q3VycmVudFllYXJWYWx1ZSgpOiBDaGFydEFjY291bnRzVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVCeVllYXIobmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjaGFydCBhY2NvdW50cyB2YWx1ZSBieSBmaW5hbmNpYWwgeWVhclxyXG4gICAqL1xyXG4gIGdldFZhbHVlQnlZZWFyKHllYXI6IG51bWJlcik6IENoYXJ0QWNjb3VudHNWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuZmluZCgodmFsdWU6IENoYXJ0QWNjb3VudHNWYWx1ZSk6IGJvb2xlYW4gPT4gdmFsdWUuZmluYW5jaWFsWWVhciA9PT0geWVhcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBubyB3YXkgdG8gY2hlY2sgaG93IG11Y2ggdXNlZCBmb3Igd29yay9zb2xlLCBzbyB3ZSBsZXQgdXNlciBhZGp1c3QgaXRcclxuICAgKiBleGNlcHQgdmVoaWNsZSBleHBlbnNlLCB3aGljaCBpcyBlcXVhbCB0byB2ZWhpY2xlQ2xhaW0ud29ya1VzYWdlIGFuZCBwZXJzb25hbCwgd2hpY2ggaXMgZXF1YWwgdG8gMFxyXG4gICAqL1xyXG4gIGlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuaXNXb3JrRXhwZW5zZSgpIHx8IHRoaXMuaXNTb2xlRXhwZW5zZSgpKSAmJiAoIXRoaXMuaXNWZWhpY2xlRXhwZW5zZSgpICYmICF0aGlzLmlzUGVyc29uYWxFeHBlbnNlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGxhYmVsIGZvciB0cmFuc2FjdGlvbiB0YXggZmllbGQgZGVwZW5kZWQgb24gc2VsZWN0ZWQgY2hhcnQgYWNjb3VudC5cclxuICAgKiB0YXggdHlwZSBkZXBlbmRzIG9uIGNoYXJ0IGFjY291bnQgaGVhZGluZyBvciBjYXRlZ29yeS5cclxuICAgKi9cclxuICBnZXRUYXhMYWJlbCgpOiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bSB7XHJcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXhhYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCB0YXhhYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4YWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheC1kZWR1Y3RpYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCBkZWR1Y3RpYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBvbmUgb2YgaWRzIGFycmF5cyBpbmNsdWRlcyBjdXJyZW50IGNoYXJ0IGFjY291bnRzIGhlYWRpbmcgaWQgYW5kIHNldCB0YXggbGFiZWxcclxuICAgIC8vIG90aGVyd2lzZSBsYWJlbCBpcyBlbXB0eSBmb3IgdGhpcyBjbGFzc1xyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIGNhc2UgdGF4YWJsZUNBSGVhZGluZ3NJZHMuaW5jbHVkZXModGhpcy5oZWFkaW5nPy5pZCk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9QQUlEO1xyXG4gICAgICBjYXNlIGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKHRoaXMuaGVhZGluZz8uaWQpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfREVEVUNURUQ7XHJcbiAgICAgIGNhc2UgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy53b3JrSW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfV0lUSEhFTEQ7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0VUUCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRpbmcuaWQgPT09IENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uRVRQXHJcbiAgfVxyXG5cclxuICBpc1NhbGFyeSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uU0FMQVJZX09SX1dBR0VTO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hhcnQgYWNjb3VudHMgaW5jbHVkZWQgaW4gc2FsYXJ5LCBsaWtlIHRpcHMgb3IgYWxsb3dhbmNlXHJcbiAgICovXHJcbiAgaXNTYWxhcnlJbmNsdWRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkIGluIENoYXJ0QWNjb3VudHNTYWxhcnlJbmNsdWRlZExpc3RFbnVtO1xyXG4gIH1cclxuXHJcbiAgaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0NBUElUQUxfV09SS1NcclxuICB9XHJcbn1cclxuIl19
@@ -7,11 +7,6 @@ import { ServiceSubscriptionStatusEnum } from '../../db/Enums/subscription/servi
7
7
  import { ServiceProduct } from './service-product';
8
8
  import { SubscriptionItemCollection } from '../../collections';
9
9
  export class ServiceSubscription extends ServiceSubscriptionBase {
10
- constructor() {
11
- super(...arguments);
12
- // Number of days after which the trial time will be expired
13
- this.lastTrialDays = 4;
14
- }
15
10
  get frequency() {
16
11
  return this.isAnnual() ? 'year' : 'month';
17
12
  }
@@ -38,19 +33,6 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
38
33
  const isExpired = new Date(this.endDate).getTime() < new Date().getTime();
39
34
  return !isExpired && ([ServiceSubscriptionStatusEnum.ACTIVE, ServiceSubscriptionStatusEnum.PAST_DUE].includes(this.status));
40
35
  }
41
- get daysRemain() {
42
- const daysRemains = Math.round((new Date(this.endDate).getTime() - new Date().getTime()) / (1000 * 3600 * 24));
43
- return daysRemains > 0 ? daysRemains : 0;
44
- }
45
- /**
46
- * Check if trial expired
47
- */
48
- isTrialExpired() {
49
- return this.daysRemain && this.daysRemain <= 0;
50
- }
51
- isTrialExpiring() {
52
- return this.daysRemain > 0 && this.daysRemain <= this.lastTrialDays;
53
- }
54
36
  isRenewable() {
55
37
  return !this.isTrial && this.isActive;
56
38
  }
@@ -106,7 +88,7 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
106
88
  return this.items.length === ServiceProduct.quantity;
107
89
  }
108
90
  isAnnual() {
109
- return !!(this.getItems().getPrices().annual.length || this.getItems().getPrices().annualPackage.length);
91
+ return !!(this.getItems().prices.annual.length || this.getItems().prices.annualPackage.length);
110
92
  }
111
93
  /**
112
94
  * Recommended number of properties to buy,
@@ -126,4 +108,4 @@ __decorate([
126
108
  __decorate([
127
109
  Type(() => ServiceSubscriptionItem)
128
110
  ], ServiceSubscription.prototype, "items", void 0);
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBQWhFOztRQVVFLDREQUE0RDtRQUM1RCxrQkFBYSxHQUFXLENBQUMsQ0FBQztJQXFJNUIsQ0FBQztJQW5JQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FB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QztJQUN2RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMkJBQTJCLENBQUMsWUFBcUMsRUFBRSxhQUFxQjtRQUN0RixNQUFNLEdBQUcsR0FBVyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE5SUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3NEQUNEO0FBR2hCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDSDtBQUdkO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2tEQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbiBhcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0gfSBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24tc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2VydmljZVByb2R1Y3QgfSBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VTdWJzY3JpcHRpb24gZXh0ZW5kcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBlbmREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKVxuICBpdGVtczogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW1bXTtcblxuICAvLyBOdW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCB0aGUgdHJpYWwgdGltZSB3aWxsIGJlIGV4cGlyZWRcbiAgbGFzdFRyaWFsRGF5czogbnVtYmVyID0gNDtcblxuICBnZXQgZnJlcXVlbmN5KCk6ICdtb250aCcgfCAneWVhcicge1xuICAgIHJldHVybiB0aGlzLmlzQW5udWFsKCkgPyAneWVhcicgOiAnbW9udGgnO1xuICB9XG5cbiAgZ2V0IGlzVHJpYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnN0cmlwZUlkO1xuICB9XG5cbiAgZ2V0IHByaWNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHN1bSArIGl0ZW0udG90YWwsIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgICAvLyByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LnRpdGxlKS5qb2luKCcgKyAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHN1YnNjcmlwdGlvbiBpcyBjb25zaWRlcmVkIGFjdGl2ZSBpZiB0aGUgZW5kIGRhdGUgaGFzIG5vdCB5ZXQgYXJyaXZlZCBhbmQgaXRzIHN0YXR1cyBpcyBcIkFjdGl2ZVwiIG9yIFwiUGFzdCBkdWVcIlxuICAgKi9cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzRXhwaXJlZDogYm9vbGVhbiA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICByZXR1cm4gIWlzRXhwaXJlZCAmJiAoW1NlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLkFDVElWRSwgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uUEFTVF9EVUVdLmluY2x1ZGVzKHRoaXMuc3RhdHVzKSk7XG4gIH1cblxuICBnZXQgZGF5c1JlbWFpbigpOiBudW1iZXIge1xuICAgIGNvbnN0IGRheXNSZW1haW5zOiBudW1iZXIgPSBNYXRoLnJvdW5kKFxuICAgICAgKG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpIC0gbmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gKDEwMDAgKiAzNjAwICogMjQpXG4gICAgKTtcblxuICAgIHJldHVybiBkYXlzUmVtYWlucyA+IDAgPyBkYXlzUmVtYWlucyA6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJpYWwgZXhwaXJlZFxuICAgKi9cbiAgaXNUcmlhbEV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c1JlbWFpbiAmJiB0aGlzLmRheXNSZW1haW4gPD0gMDtcbiAgfVxuXG4gIGlzVHJpYWxFeHBpcmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluID4gMCAmJiB0aGlzLmRheXNSZW1haW4gPD0gdGhpcy5sYXN0VHJpYWxEYXlzO1xuICB9XG5cbiAgaXNSZW5ld2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzVHJpYWwgJiYgdGhpcy5pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5VGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzV29ya1RhbmsoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBib3VnaHQgYmVmb3JlIHByaWNlIHVwZGF0ZXMsIGFjdGl2ZSBmb3Igc29tZSB0aW1lIHRvIGxldCBjdXN0b21lciBzZWxlY3QgYSBuZXcgcGxhblxuICAgKiBpbXBvc3NpYmxlIHRvIHVwZGF0ZSwgb25seSBwcm9sb25nIG9yIGJ1eSBuZXdcbiAgICovXG4gIGlzQXJjaGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gc3Vic2NyaXB0aW9uIHdpdGggYXQgbGVhc3Qgb25lIGFyY2hpdmVkIHByb2R1Y3QgY29uc2lkZXJlZCBhcyBhcmNoaXZlZFxuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNBcmNoaXZlZCgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2FzZSB3aGVuIHBheW1lbnQgd2FzIGZhaWxlZCwgYnV0IHVzZXIgaGFzIGEgdGltZSB0byB1cGRhdGUgcGF5bWVudCBtZXRob2RcbiAgICovXG4gIGlzUGFzdER1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGhhcyBwcm92aWRlZCBzdWJzY3JpcHRpb24gaXRlbVxuICAgKi9cbiAgaGFzSXRlbShpdGVtVG9DaGVjazogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLmlkID09PSBpdGVtVG9DaGVjay5wcmljZS5pZCk7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlkID09PSBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGlzUGFja2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPT09IFNlcnZpY2VQcm9kdWN0LnF1YW50aXR5O1xuICB9XG5cbiAgaXNBbm51YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZ2V0SXRlbXMoKS5nZXRQcmljZXMoKS5hbm51YWwubGVuZ3RoIHx8IHRoaXMuZ2V0SXRlbXMoKS5nZXRQcmljZXMoKS5hbm51YWxQYWNrYWdlLmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb21tZW5kZWQgbnVtYmVyIG9mIHByb3BlcnRpZXMgdG8gYnV5LFxuICAgKiBiYXNlZCBvbiB0aGUgcHJvcGVydHkgc2VydmljZSBwcm9kdWN0IGFuZCB0aGUgbnVtYmVyIG9mIHByb3BlcnRpZXMgdGhlIHVzZXIgaGFzXG4gICAqL1xuICBnZXRSZWNvbW1lbmRlZFByb3BlcnRpZXNRdHkocHJvcGVydHlJdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSwgcHJvcGVydGllc1F0eTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW46IG51bWJlciA9IHByb3BlcnR5SXRlbS5wcmljZS5wcm9kdWN0Lm1pblF0eTtcblxuICAgIHJldHVybiBNYXRoLm1heChtaW4sIHByb3BlcnRpZXNRdHkpO1xuICB9XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBVTlELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUs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cnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgc3RhcnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGVuZERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pXG4gIGl0ZW1zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuXG4gIGdldCBmcmVxdWVuY3koKTogJ21vbnRoJyB8ICd5ZWFyJyB7XG4gICAgcmV0dXJuIHRoaXMuaXNBbm51YWwoKSA/ICd5ZWFyJyA6ICdtb250aCc7XG4gIH1cblxuICBnZXQgaXNUcmlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgaXNQYWlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4gc3VtICsgaXRlbS50b3RhbCwgMCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRpdGxlIG9mIHN1YnNjcmlwdGlvblxuICAgKi9cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QudGl0bGUpLmpvaW4oJyArICcpO1xuICAgIC8vIHJldHVybiB0aGlzLmlzVHJpYWwgPyAnVHJpYWwgcGVyaW9kJyA6IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QudGl0bGUpLmpvaW4oJyArICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3Vic2NyaXB0aW9uIGlzIGNvbnNpZGVyZWQgYWN0aXZlIGlmIHRoZSBlbmQgZGF0ZSBoYXMgbm90IHlldCBhcnJpdmVkIGFuZCBpdHMgc3RhdHVzIGlzIFwiQWN0aXZlXCIgb3IgXCJQYXN0IGR1ZVwiXG4gICAqL1xuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNFeHBpcmVkOiBib29sZWFuID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRUaW1lKCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgIHJldHVybiAhaXNFeHBpcmVkICYmIChbU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uQUNUSVZFLCBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5QQVNUX0RVRV0uaW5jbHVkZXModGhpcy5zdGF0dXMpKTtcbiAgfVxuXG4gIGlzUmVuZXdhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc1RyaWFsICYmIHRoaXMuaXNBY3RpdmU7XG4gIH1cblxuICBnZXRJdGVtcygpOiBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbih0aGlzLml0ZW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCB3b3JrVGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNXb3JrVGFuaygpKTtcbiAgfVxuXG4gIGdldCBzb2xlVGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNTb2xlVGFuaygpKTtcbiAgfVxuXG4gIGdldCBwcm9wZXJ0eVRhbmtJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpKTtcbiAgfVxuXG4gIGhhc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uSXRlbS5wcmljZS5wcm9kdWN0LnJvbGUuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1dvcmtUYW5rKCkge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYm91Z2h0IGJlZm9yZSBwcmljZSB1cGRhdGVzLCBhY3RpdmUgZm9yIHNvbWUgdGltZSB0byBsZXQgY3VzdG9tZXIgc2VsZWN0IGEgbmV3IHBsYW5cbiAgICogaW1wb3NzaWJsZSB0byB1cGRhdGUsIG9ubHkgcHJvbG9uZyBvciBidXkgbmV3XG4gICAqL1xuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIHN1YnNjcmlwdGlvbiB3aXRoIGF0IGxlYXN0IG9uZSBhcmNoaXZlZCBwcm9kdWN0IGNvbnNpZGVyZWQgYXMgYXJjaGl2ZWRcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzQXJjaGl2ZWQoKSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc2Ugd2hlbiBwYXltZW50IHdhcyBmYWlsZWQsIGJ1dCB1c2VyIGhhcyBhIHRpbWUgdG8gdXBkYXRlIHBheW1lbnQgbWV0aG9kXG4gICAqL1xuICBpc1Bhc3REdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5QQVNUX0RVRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHN1YnNjcmlwdGlvbiBoYXMgcHJvdmlkZWQgc3Vic2NyaXB0aW9uIGl0ZW1cbiAgICovXG4gIGhhc0l0ZW0oaXRlbVRvQ2hlY2s6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5pZCA9PT0gaXRlbVRvQ2hlY2sucHJpY2UuaWQpO1xuICB9XG5cbiAgaGFzUHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pZCA9PT0gcHJvZHVjdC5pZCk7XG4gIH1cblxuICBpc1BhY2thZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoID09PSBTZXJ2aWNlUHJvZHVjdC5xdWFudGl0eTtcbiAgfVxuXG4gIGlzQW5udWFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmdldEl0ZW1zKCkucHJpY2VzLmFubnVhbC5sZW5ndGggfHwgdGhpcy5nZXRJdGVtcygpLnByaWNlcy5hbm51YWxQYWNrYWdlLmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb21tZW5kZWQgbnVtYmVyIG9mIHByb3BlcnRpZXMgdG8gYnV5LFxuICAgKiBiYXNlZCBvbiB0aGUgcHJvcGVydHkgc2VydmljZSBwcm9kdWN0IGFuZCB0aGUgbnVtYmVyIG9mIHByb3BlcnRpZXMgdGhlIHVzZXIgaGFzXG4gICAqL1xuICBnZXRSZWNvbW1lbmRlZFByb3BlcnRpZXNRdHkocHJvcGVydHlJdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSwgcHJvcGVydGllc1F0eTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW46IG51bWJlciA9IHByb3BlcnR5SXRlbS5wcmljZS5wcm9kdWN0Lm1pblF0eTtcblxuICAgIHJldHVybiBNYXRoLm1heChtaW4sIHByb3BlcnRpZXNRdHkpO1xuICB9XG59XG4iXX0=
@@ -144,7 +144,7 @@ export class Transaction extends TransactionBase {
144
144
  amount: this.amount,
145
145
  chartAccounts: this.chartAccounts,
146
146
  description: this.description,
147
- type: DepreciationTypeEnum.PLANT_EQUIPMENT,
147
+ type: this.chartAccounts.isPropertyCapitalWorks() ? DepreciationTypeEnum.CAPITAL_WORKS : DepreciationTypeEnum.PLANT_EQUIPMENT,
148
148
  claimPercent: this.claimPercent,
149
149
  property: this.property,
150
150
  calculation: this.property ? this.property.depreciationCalculation : DepreciationCalculationEnum.PRIME_COST
@@ -238,4 +238,4 @@ __decorate([
238
238
  __decorate([
239
239
  Type(() => SoleInvoiceItem)
240
240
  ], Transaction.prototype, "soleInvoiceItem", void 0);
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDc0IscUJBQXFCLEVBQ2hELHFCQUFxQixFQUNyQiw2QkFBNkIsR0FDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsT0FBTyxF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QUMsRUFBRSxFQUFFLFdBQUMsT0FBQSxNQUFBLENBQUMsQ0FBQyxhQUFhLDBDQUFFLGdCQUFnQixFQUFFLENBQUEsRUFBQSxDQUFDO2FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVOztRQUNSLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxFQUFFLEtBQUkscUJBQXFCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUF2UEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNTO0FBR2pDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs2Q0FDRjtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs0Q0FDSDtBQUc1QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7a0RBQ0c7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2lEQUNFO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDOzZDQUNLO0FBR3JDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzs2Q0FDRjtBQUd0QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnREFDUTtBQUcxQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0RBQ0siLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQge1xuICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLCBDaGFydEFjY291bnRzS2VlcFNpZ24sXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcbiAgQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0sXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU291cmNlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXNvdXJjZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MsIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjZWlwdCB9IGZyb20gJy4vdHJhbnNhY3Rpb24tcmVjZWlwdCc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzLCBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuL3RyYW5zYWN0aW9uLW1ldGFkYXRhJztcbmltcG9ydCB7IExvYW4gfSBmcm9tICcuLi9sb2FuL2xvYW4nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uJztcbmltcG9ydCB7IElSZWNlaXB0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZWNlaXB0LmludGVyZmFjZSc7XG5pbXBvcnQge0NvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRXhwZW5zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZXhwZW5zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU29sZUludm9pY2VJdGVtIH0gZnJvbSAnLi4vc29sZSc7XG5cbi8vIEBUT0RPIEFsZXg6IHJlZmFjdG9yOiBtb3ZlIGhlcmUgYWxsb2NhdGlvbnMgbWV0aG9kcywgbmV0QW1vdW50ID0gYW1vdW50LCBncm9zc0Ftb3VudCBjYWxjdWxhdGlvbiwgcmVtb3ZlIHVudXNlZCBtZXRob2RzLCBldGMuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UgaW1wbGVtZW50cyBFeHBlbnNlLCBJUmVjZWlwdCB7XG4gIC8vIGxpc3Qgb2YgY2hpbGQgdHJhbnNhY3Rpb25zIChmZWVzKVxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbilcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHkpXG4gIHByb3BlcnR5OiBQcm9wZXJ0eTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvblJlY2VpcHQpXG4gIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdDtcblxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzKVxuICBjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzO1xuXG4gIEBUeXBlKCgpID0+IEluY29tZVNvdXJjZSlcbiAgaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2U7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25NZXRhZGF0YSlcbiAgbWV0YWRhdGE6IFRyYW5zYWN0aW9uTWV0YWRhdGFbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2ZlcjogVHJhbnNhY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgbG9hbjogTG9hbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uQWxsb2NhdGlvbilcbiAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VJdGVtKVxuICBzb2xlSW52b2ljZUl0ZW06IFNvbGVJbnZvaWNlSXRlbTtcblxuICB0YXg6IG51bWJlciA9IDA7XG4gIG9wZXJhdGlvbjogVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtID0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLkZJTkRfQU5EX01BVENIO1xuICBhbGxvY2F0ZWRBbW91bnQ6IG51bWJlcjtcbiAgdW5hbGxvY2F0ZWRBbW91bnQ6IG51bWJlcjtcbiAgaXNTZWxlY3RlZDogYm9vbGVhbjtcbiAgY2xhaW1QZXJjZW50OiBudW1iZXIgPSAxMDA7XG4gIGFtb3VudDogbnVtYmVyID0gMDtcblxuICBnZXQgaW52b2ljZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc29sZUludm9pY2VJdGVtPy5pbnZvaWNlLmlkO1xuICB9XG5cbiAgaXNEZWJpdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGVFbnVtLkRFQklUO1xuICB9XG5cbiAgaXNDcmVkaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5DUkVESVQ7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBiYXNlIGNvbGxlY3Rpb25cbiAgICovXG4gIGlzSW5jb21lKCk6IGJvb2xlYW4ge1xuICAgIC8vIEBUT0RPIG5vdCB1c2VkXG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuaW5jb21lLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBiYXNlIGNvbGxlY3Rpb25cbiAgICovXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0RlYml0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZXhwZW5zZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgaXNQZXJzb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wZXJzb25hbC5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgaXNJbnRlcmVzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfT05fTE9BTjtcbiAgfVxuXG4gIGdldCBjaGFydEFjY291bnRzQ2F0ZWdvcmllcygpOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10ge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzUGVyc29uYWwoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWw7XG5cbiAgICAgIGNhc2UgdGhpcy5pc1Byb3BlcnR5VGFuaygpOlxuICAgICAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wcm9wZXJ0eTtcblxuICAgICAgY2FzZSB0aGlzLmlzU29sZVRhbmsoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuc29sZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMud29yaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGRhdGVcbiAgICovXG4gIGdldERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiB0eXBlIGlzIHZlaGljbGVcbiAgICovXG4gIGlzVmVoaWNsZVRyYW5zYWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNWZWhpY2xlRXhwZW5zZSgpO1xuICB9XG5cbiAgZ2V0IHRheEZyZWVDb21wb25lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0uVEFYX0ZSRUVfQ09NUE9ORU5UKTtcbiAgfVxuXG4gIGdldCBmcmFua2luZ0NyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bS5GUkFOS0lOR19DUkVESVQpO1xuICB9XG5cbiAgZ2V0IGVsaWdpYmxlRm9yUmVkdWN0aW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLkVMSUdJQkxFX0ZPUl9SRURVQ1RJT04pO1xuICB9XG5cbiAgZ2V0IHVudGF4ZWRFbGVtZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLlVOVEFYRURfRUxFTUVOVCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gcmVjb25jaWxlIG9wZXJhdGlvbiBpZiBUUkFOU0ZFUlxuICAgKiBAVE9ETyBiYWQgdXNhZ2Ugb2YgZ2V0IChhbmQgYWxsIGlzKiBtZXRob2RzKSwgZ2V0dGVyIHNob3VsZCBzb3VuZCBsaWtlIGEgbm91blxuICAgKi9cbiAgZ2V0IGlzVHJhbnNmZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uVFJBTlNGRVI7XG4gIH1cblxuICBpc0ZpbmRBbmRNYXRjaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgfVxuXG4gIGlzTWF0Y2hJbnZvaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLk1BVENIX0lOVk9JQ0U7XG4gIH1cblxuICBnZXQgZGViaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYml0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50KSA6IDA7XG4gIH1cblxuICBnZXQgY3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKSA/IE1hdGguYWJzKHRoaXMuZ3Jvc3NBbW91bnQpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdmFsdWUgb2YgdHJhbnNhY3Rpb24gbWV0YWRhdGEgZmllbGRcbiAgICogQHBhcmFtIGZpZWxkIGZvciB3aGljaCB2YWx1ZSBzaG91bGQgYmUgcmV0dXJuZWRcbiAgICogQFRvZG8gbW9kaWZ5ICdtZXRhZGF0YScgcHJvcGVydHkgZnJvbSBhcnJheSB0byBDb2xsZWN0aW9uXG4gICAqL1xuICBnZXRNZXRhZGF0YUZpZWxkVmFsdWUoZmllbGQ6IENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMubWV0YWRhdGEuZmluZCgodHJhbnNhY3Rpb25NZXRhZGF0YTogVHJhbnNhY3Rpb25NZXRhZGF0YSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uTWV0YWRhdGEuY2hhcnRBY2NvdW50c01ldGFkYXRhLmlkID09PSBmaWVsZDtcbiAgICB9KT8udmFsdWUgfHwgMDtcbiAgfVxuXG4gIGlzQ2FzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UgPT09IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNIO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogdGhpcy5hbW91bnQsXG4gICAgICBjaGFydEFjY291bnRzOiB0aGlzLmNoYXJ0QWNjb3VudHMsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHR5cGU6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NUXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaXMgY29tcGxldGVseSBhbGxvY2F0ZWRcbiAgICovXG4gIGlzQWxsb2NhdGVkKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmV0QW1vdW50ID09PSB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucyk7XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBhbGxvY2F0aW9ucy5maWx0ZXJCeSgndHJhbnNhY3Rpb24uaWQnLCB0aGlzLmlkKS5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGNvZWYgPSAxO1xuICAgIGlmICh0aGlzLmlzU29sZVRhbmsoKSAmJiB0aGlzLmlzSW5jb21lKCkgJiYgdGhpcy5pc0dTVCkge1xuICAgICAgY29lZiA9IENoYXJ0QWNjb3VudHMuR1NUQ29lZmZpY2llbnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucykgKiB0aGlzLmNsYWltUmF0aW8gLyBjb2VmO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHN1cGVyLmdyb3NzQW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBzYWxhcnkgaW5jbHVkZWQgdHJhbnNhY3Rpb25zIGFmZmVjdCBwYXJlbnQgdHJhbnNhY3Rpb24gYW1vdW50IGFuZCBhcyBhIHJlc3VsdCBncm9zc0Ftb3VudCwgc2tpcCB0byBhdm9pZCBkb3VibGUgc3VtXG4gICAgZ3Jvc3NBbW91bnQgKz0gbmV3IENvbGxlY3Rpb24odGhpcy50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiAhdC5jaGFydEFjY291bnRzPy5pc1NhbGFyeUluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuXG4gICAgaWYgKHRoaXMuaXNXb3JrVGFuaygpKSB7XG4gICAgICBncm9zc0Ftb3VudCArPSB0aGlzLmZyYW5raW5nQ3JlZGl0IC0gdGhpcy50YXhGcmVlQ29tcG9uZW50IC0gdGhpcy5lbGlnaWJsZUZvclJlZHVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gKyhNYXRoLnJvdW5kKGdyb3NzQW1vdW50ICogMTAwKSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgY29uZnVzaW5nIGxvZ2ljIGRlbWFuZGVkIGJ5IE5pY29sZSwgd2UgbmVlZCBhIGJldHRlciB1eCB0byBmaXggaXRcbiAgICogbmV0QW1vdW50IG1hdGNoZXMgcmVjZWl2ZWQgcGF5bWVudCAoYmFua1RyYW5zYWN0aW9uIGFtb3VudCksIGluY2x1ZGVzIGdzdCBhbmQgc2FsYXJ5IGluY2x1ZGVkIGFkanVzdG1lbnRzXG4gICAqIGllIHVzZXIgcmVjZWl2ZWQgMTAwMCQgc2FsYXJ5IGluY2x1ZGluZyAxMDAkIHRpcHMuIE5ldEFtb3VudD0xMDAwJCwgYW1vdW50PTkwMCQsIHRpcHM9MTAwJFxuICAgKi9cbiAgZ2V0IG5ldEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLnRyYW5zYWN0aW9ucylcbiAgICAgIC5maWx0ZXIoKHQpID0+IHQuY2hhcnRBY2NvdW50cz8uaXNTYWxhcnlJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxufVxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDc0IscUJBQXFCLEVBQ2hELHFCQUFxQixFQUNyQiw2QkFBNkIsR0FDOUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsT0FBTyxF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QUFDO29EQUNLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSwgQ2hhcnRBY2NvdW50c0tlZXBTaWduLFxuICBDaGFydEFjY291bnRzTGlzdEVudW0sXG4gIENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLFxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tICcuL3RyYW5zYWN0aW9uLXJlY2VpcHQnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cywgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1tZXRhZGF0YSc7XG5pbXBvcnQgeyBMb2FuIH0gZnJvbSAnLi4vbG9hbi9sb2FuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5pbXBvcnQgeyBJUmVjZWlwdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVjZWlwdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IEV4cGVuc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V4cGVuc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbSB9IGZyb20gJy4uL3NvbGUnO1xuXG4vLyBAVE9ETyBBbGV4OiByZWZhY3RvcjogbW92ZSBoZXJlIGFsbG9jYXRpb25zIG1ldGhvZHMsIG5ldEFtb3VudCA9IGFtb3VudCwgZ3Jvc3NBbW91bnQgY2FsY3VsYXRpb24sIHJlbW92ZSB1bnVzZWQgbWV0aG9kcywgZXRjLlxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlIGltcGxlbWVudHMgRXhwZW5zZSwgSVJlY2VpcHQge1xuICAvLyBsaXN0IG9mIGNoaWxkIHRyYW5zYWN0aW9ucyAoZmVlcylcbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25SZWNlaXB0KVxuICByZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQ7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uTWV0YWRhdGEpXG4gIG1ldGFkYXRhOiBUcmFuc2FjdGlvbk1ldGFkYXRhW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbilcbiAgdHJhbnNmZXI6IFRyYW5zYWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IExvYW4pXG4gIGxvYW46IExvYW47XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pXG4gIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVJbnZvaWNlSXRlbSlcbiAgc29sZUludm9pY2VJdGVtOiBTb2xlSW52b2ljZUl0ZW07XG5cbiAgdGF4OiBudW1iZXIgPSAwO1xuICBvcGVyYXRpb246IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgYWxsb2NhdGVkQW1vdW50OiBudW1iZXI7XG4gIHVuYWxsb2NhdGVkQW1vdW50OiBudW1iZXI7XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGNsYWltUGVyY2VudDogbnVtYmVyID0gMTAwO1xuICBhbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgZ2V0IGludm9pY2VJZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNvbGVJbnZvaWNlSXRlbT8uaW52b2ljZS5pZDtcbiAgfVxuXG4gIGlzRGViaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5ERUJJVDtcbiAgfVxuXG4gIGlzQ3JlZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uQ1JFRElUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzSW50ZXJlc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XG4gIH1cblxuICBnZXQgY2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoKTogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGhpcy5pc1BlcnNvbmFsKCk6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsO1xuXG4gICAgICBjYXNlIHRoaXMuaXNQcm9wZXJ0eVRhbmsoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHk7XG5cbiAgICAgIGNhc2UgdGhpcy5pc1NvbGVUYW5rKCk6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnNvbGU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcms7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBkYXRlXG4gICAqL1xuICBnZXREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyB2ZWhpY2xlXG4gICAqL1xuICBpc1ZlaGljbGVUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlzVmVoaWNsZUV4cGVuc2UoKTtcbiAgfVxuXG4gIGdldCB0YXhGcmVlQ29tcG9uZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLlRBWF9GUkVFX0NPTVBPTkVOVCk7XG4gIH1cblxuICBnZXQgZnJhbmtpbmdDcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0uRlJBTktJTkdfQ1JFRElUKTtcbiAgfVxuXG4gIGdldCBlbGlnaWJsZUZvclJlZHVjdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bS5FTElHSUJMRV9GT1JfUkVEVUNUSU9OKTtcbiAgfVxuXG4gIGdldCB1bnRheGVkRWxlbWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bS5VTlRBWEVEX0VMRU1FTlQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHJlY29uY2lsZSBvcGVyYXRpb24gaWYgVFJBTlNGRVJcbiAgICogQFRPRE8gYmFkIHVzYWdlIG9mIGdldCAoYW5kIGFsbCBpcyogbWV0aG9kcyksIGdldHRlciBzaG91bGQgc291bmQgbGlrZSBhIG5vdW5cbiAgICovXG4gIGdldCBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSO1xuICB9XG5cbiAgaXNGaW5kQW5kTWF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIH1cblxuICBpc01hdGNoSW52b2ljZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5NQVRDSF9JTlZPSUNFO1xuICB9XG5cbiAgZ2V0IGRlYml0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpID8gTWF0aC5hYnModGhpcy5ncm9zc0Ftb3VudCkgOiAwO1xuICB9XG5cbiAgZ2V0IGNyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50KSA6IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZhbHVlIG9mIHRyYW5zYWN0aW9uIG1ldGFkYXRhIGZpZWxkXG4gICAqIEBwYXJhbSBmaWVsZCBmb3Igd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqIEBUb2RvIG1vZGlmeSAnbWV0YWRhdGEnIHByb3BlcnR5IGZyb20gYXJyYXkgdG8gQ29sbGVjdGlvblxuICAgKi9cbiAgZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKGZpZWxkOiBDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bSk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLm1ldGFkYXRhLmZpbmQoKHRyYW5zYWN0aW9uTWV0YWRhdGE6IFRyYW5zYWN0aW9uTWV0YWRhdGEpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbk1ldGFkYXRhLmNoYXJ0QWNjb3VudHNNZXRhZGF0YS5pZCA9PT0gZmllbGQ7XG4gICAgfSk/LnZhbHVlIHx8IDA7XG4gIH1cblxuICBpc0Nhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlID09PSBUcmFuc2FjdGlvblNvdXJjZUVudW0uQ0FTSDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRGVwcmVjaWF0aW9uIGluc3RhbmNlIGJhc2VkIG9uIFRyYW5zYWN0aW9uXG4gICAqL1xuICB0b0RlcHJlY2lhdGlvbigpOiBEZXByZWNpYXRpb24ge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoRGVwcmVjaWF0aW9uLCB7XG4gICAgICBkYXRlOiB0aGlzLmRhdGUsXG4gICAgICBhbW91bnQ6IHRoaXMuYW1vdW50LFxuICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpID8gRGVwcmVjaWF0aW9uVHlwZUVudW0uQ0FQSVRBTF9XT1JLUyA6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NUXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaXMgY29tcGxldGVseSBhbGxvY2F0ZWRcbiAgICovXG4gIGlzQWxsb2NhdGVkKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmV0QW1vdW50ID09PSB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucyk7XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBhbGxvY2F0aW9ucy5maWx0ZXJCeSgndHJhbnNhY3Rpb24uaWQnLCB0aGlzLmlkKS5zdW1CeSgnYW1vdW50Jyk7XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGNvZWYgPSAxO1xuICAgIGlmICh0aGlzLmlzU29sZVRhbmsoKSAmJiB0aGlzLmlzSW5jb21lKCkgJiYgdGhpcy5pc0dTVCkge1xuICAgICAgY29lZiA9IENoYXJ0QWNjb3VudHMuR1NUQ29lZmZpY2llbnQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucykgKiB0aGlzLmNsYWltUmF0aW8gLyBjb2VmO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHN1cGVyLmdyb3NzQW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBzYWxhcnkgaW5jbHVkZWQgdHJhbnNhY3Rpb25zIGFmZmVjdCBwYXJlbnQgdHJhbnNhY3Rpb24gYW1vdW50IGFuZCBhcyBhIHJlc3VsdCBncm9zc0Ftb3VudCwgc2tpcCB0byBhdm9pZCBkb3VibGUgc3VtXG4gICAgZ3Jvc3NBbW91bnQgKz0gbmV3IENvbGxlY3Rpb24odGhpcy50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiAhdC5jaGFydEFjY291bnRzPy5pc1NhbGFyeUluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuXG4gICAgaWYgKHRoaXMuaXNXb3JrVGFuaygpKSB7XG4gICAgICBncm9zc0Ftb3VudCArPSB0aGlzLmZyYW5raW5nQ3JlZGl0IC0gdGhpcy50YXhGcmVlQ29tcG9uZW50IC0gdGhpcy5lbGlnaWJsZUZvclJlZHVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gKyhNYXRoLnJvdW5kKGdyb3NzQW1vdW50ICogMTAwKSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgY29uZnVzaW5nIGxvZ2ljIGRlbWFuZGVkIGJ5IE5pY29sZSwgd2UgbmVlZCBhIGJldHRlciB1eCB0byBmaXggaXRcbiAgICogbmV0QW1vdW50IG1hdGNoZXMgcmVjZWl2ZWQgcGF5bWVudCAoYmFua1RyYW5zYWN0aW9uIGFtb3VudCksIGluY2x1ZGVzIGdzdCBhbmQgc2FsYXJ5IGluY2x1ZGVkIGFkanVzdG1lbnRzXG4gICAqIGllIHVzZXIgcmVjZWl2ZWQgMTAwMCQgc2FsYXJ5IGluY2x1ZGluZyAxMDAkIHRpcHMuIE5ldEFtb3VudD0xMDAwJCwgYW1vdW50PTkwMCQsIHRpcHM9MTAwJFxuICAgKi9cbiAgZ2V0IG5ldEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLnRyYW5zYWN0aW9ucylcbiAgICAgIC5maWx0ZXIoKHQpID0+IHQuY2hhcnRBY2NvdW50cz8uaXNTYWxhcnlJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxufVxuIl19
@@ -88,12 +88,10 @@ export class AccountSetupService {
88
88
  createBatch(incomeTypes) {
89
89
  const batch = [];
90
90
  // Salary item is completed when user added salary income source
91
- if (incomeTypes.salary) {
92
- batch.push(this.create(AccountSetupItemsEnum.SALARY, this.getIncomeSources(true)));
93
- }
94
- // Other income item is completed when user added at least one other income source
95
- if (incomeTypes.dividends || incomeTypes.other) {
96
- batch.push(this.create(AccountSetupItemsEnum.OTHER_INCOME, this.getIncomeSources()));
91
+ if (incomeTypes.work) {
92
+ batch.push(this.create(AccountSetupItemsEnum.SALARY, this.getIncomeSources(true)),
93
+ // Other income is a part of work tank, completed when user added at least one other income source
94
+ this.create(AccountSetupItemsEnum.OTHER_INCOME, this.getIncomeSources()));
97
95
  }
98
96
  // Rental income item is completed when user added at least one property
99
97
  if (incomeTypes.property) {
@@ -147,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
147
145
  providedIn: 'root'
148
146
  }]
149
147
  }], ctorParameters: function () { return [{ type: i1.ClientIncomeTypesService }, { type: i2.PropertyService }, { type: i3.IncomeSourceService }, { type: i4.BankAccountService }, { type: i5.TransactionAllocationService }, { type: i6.VehicleClaimService }, { type: i7.TransactionService }, { type: i8.SoleBusinessService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJcEYsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTdGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7OztBQUc3Rjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ1Usd0JBQWtELEVBQ2xELGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxtQkFBdUMsRUFDdkMsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsbUJBQXdDO1FBUHhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBWGxELGlCQUFZLEdBQThDLElBQUksYUFBYSxDQUE2QixDQUFDLENBQUMsQ0FBQztJQWEzRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksMEJBQTBCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFaEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsRUFBRTtpQkFDdEMsSUFBSTtZQUNILHlFQUF5RTtZQUN6RSxNQUFNLENBQUMsQ0FBQyxXQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUNoRSxRQUFRLENBQUMsQ0FBQyxXQUE4QixFQUFFLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUUxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFDLENBQUMsS0FBaUMsRUFBRSxFQUFFO2dCQUMvQyxRQUFRLElBQUksRUFBRTtvQkFDWixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDakIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDcEcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTt3QkFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLElBQXNCO1FBQ3ZDLE9BQU8sWUFBWSxDQUNqQixpQkFBaUIsRUFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RILENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxNQUFNLENBQUMsUUFBK0IsRUFBRSxPQUE2QjtRQUMzRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLE1BQWdCLEVBQW9CLEVBQUU7WUFDekMsTUFBTSxJQUFJLEdBQXFCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTdELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDMUI7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLFdBQThCO1FBQ2hELE1BQU0sS0FBSyxHQUFtQyxFQUFFLENBQUM7UUFFakQsZ0VBQWdFO1FBQ2hFLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN0QixLQUFLLENBQUMsSUFBSSxDQUNSLElBQUksQ0FBQyxNQUFNLENBQ1QscUJBQXFCLENBQUMsTUFBTSxFQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQzVCLENBQ0YsQ0FBQztTQUNIO1FBRUQsa0ZBQWtGO1FBQ2xGLElBQUksV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQzlDLEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FDVCxxQkFBcUIsQ0FBQyxZQUFZLEVBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUN4QixDQUNGLENBQUM7U0FDSDtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRjtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzlGO1FBRUQsMkZBQTJGO1FBQzNGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvRixzR0FBc0c7UUFDdEcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsQyxtRkFBbUY7UUFDbkYsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXBHLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCLENBQUMsV0FBb0IsS0FBSztRQUNoRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBQyxDQUFDLGFBQTZCLEVBQWtCLEVBQUU7WUFDcEQsTUFBTSxVQUFVLEdBQTJCLElBQUksc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckYsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDL0I7WUFFRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNqSSxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7YUFDakMsSUFBSTtRQUNILG1FQUFtRTtRQUNuRSxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQzdFLFFBQVEsQ0FBQyxDQUFDLFlBQW1DLEVBQUUsRUFBRTtZQUMvQyxJQUFJLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE1BQU0sRUFBRTtnQkFDaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUN4RjtZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOztpSEEvSlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUNDT1VOVF9TRVRVUF9JVEVNUyB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbXMuY29uc3QnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5pbXBvcnQgeyBBY2NvdW50U2V0dXBJdGVtc0VudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmVudW0nO1xuaW1wb3J0IHsgQmFua0FjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRJbmNvbWVUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWluY29tZS10eXBlcyc7XG5pbXBvcnQgeyBDbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UgfSBmcm9tICcuLi9odHRwL2Zpcm0vY2xpZW50LWluY29tZS9jbGllbnQtaW5jb21lLXR5cGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEluY29tZVNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9odHRwL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJy4uL2h0dHAvcHJvcGVydHkvcHJvcGVydHkuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9hY2NvdW50LXNldHVwLWl0ZW0uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC92ZWhpY2xlL3ZlaGljbGUtY2xhaW0uc2VydmljZSc7XG5pbXBvcnQgZnJvbVBhaXJzIGZyb20gJ2xvZGFzaC9mcm9tUGFpcnMnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzc1NlcnZpY2UgfSBmcm9tICcuLi9odHRwJztcblxuLyoqXG4gKiBTZXJ2aWNlIGhhbmRsaW5nIHVzZXIncyBhY2NvdW50IHNldHVwIHByb2Nlc3MuXG4gKiBDaGVja3MgcmVxdWlyZWQgc3RlcHMgYW5kIHRoZWlyIGNvbXBsZXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldHVwU2VydmljZSB7XG4gIGNhY2hlOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPigxKTtcbiAgY2xpZW50SW5jb21lVHlwZXNJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlOiBDbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICBwcml2YXRlIGluY29tZVNvdXJjZVNlcnZpY2U6IEluY29tZVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYW5rQWNjb3VudHNTZXJ2aWNlOiBCYW5rQWNjb3VudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltU2VydmljZTogVmVoaWNsZUNsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc29sZUJ1c2luZXNzU2VydmljZTogU29sZUJ1c2luZXNzU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBhY2NvdW50IHNldHVwIGl0ZW1zIGZvciBjdXJyZW50IHVzZXJcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlID0gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKFtdKTtcblxuICAgICAgdGhpcy5jbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UuZ2V0U2luZ2xlKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gd2UgbmVlZCBhY2NvdW50IHNldHVwIG9ubHkgd2hlbiB1c2VyIHNlbGVjdGVkIGF0IGxlYXN0IG9uZSBpbmNvbWUgdHlwZVxuICAgICAgICAgIGZpbHRlcigoaW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzKSA9PiAhIWluY29tZVR5cGVzLmxlbmd0aCksXG4gICAgICAgICAgbWVyZ2VNYXAoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGllbnRJbmNvbWVUeXBlc0lkID0gaW5jb21lVHlwZXMuaWQ7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJhdGNoKGluY29tZVR5cGVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSAhdGhpcy5jYWNoZTpcbiAgICAgICAgICAgIGNhc2UgdGhpcy5jYWNoZS5maWx0ZXJCeSgnaXNDb21wbGV0ZWQnLCB0cnVlKS5sZW5ndGggIT09IGl0ZW1zLmZpbHRlckJ5KCdpc0NvbXBsZXRlZCcsIHRydWUpLmxlbmd0aDpcbiAgICAgICAgICAgIGNhc2UgdGhpcy5jYWNoZS5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aDpcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZSA9IGNsb25lRGVlcChpdGVtcyk7XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBjbGllbnQgaW5jb21lIHR5cGVzIHRvIHVwZGF0ZSB0byBoaWRlIGRlcGVuZGVkIGFjY291bnQgc2V0dXAgaXRlbXNcbiAgICovXG4gIHByZXBhcmVJbmNvbWVUeXBlcyhpdGVtOiBBY2NvdW50U2V0dXBJdGVtKTogQ2xpZW50SW5jb21lVHlwZXMge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoXG4gICAgICBDbGllbnRJbmNvbWVUeXBlcyxcbiAgICAgIE9iamVjdC5hc3NpZ24oe2lkOiB0aGlzLmNsaWVudEluY29tZVR5cGVzSWR9LCBmcm9tUGFpcnMoaXRlbS5jbGllbnRJbmNvbWVUeXBlcy5tYXAoKHR5cGU6IHN0cmluZykgPT4gW3R5cGUsIGZhbHNlXSkpKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgQWNjb3VudFNldHVwSXRlbSBhbmQgY2hlY2sgaXQncyBjb21wbGV0aW9uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZShpdGVtVHlwZTogQWNjb3VudFNldHVwSXRlbXNFbnVtLCByZXF1ZXN0OiBPYnNlcnZhYmxlPG9iamVjdFtdPik6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogb2JqZWN0W10pOiBBY2NvdW50U2V0dXBJdGVtID0+IHtcbiAgICAgICAgY29uc3QgaXRlbTogQWNjb3VudFNldHVwSXRlbSA9IEFDQ09VTlRfU0VUVVBfSVRFTVNbaXRlbVR5cGVdO1xuXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgaXRlbS5pc0NvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5pc0NvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJhdGNoIG9mIHJlcXVlc3RzIHRvIGdldCBsaXN0IG9mIHJlcXVpcmVkIEFjY291bnRTZXR1cEl0ZW0ncy5cbiAgICogU29tZSBpdGVtcyBhcmUgb3B0aW9uYWwgYW5kIGRlcGVuZHMgb2YgdXNlcidzIGNsaWVudCBpbmNvbWUgdHlwZXNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQmF0Y2goaW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGJhdGNoOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+W10gPSBbXTtcblxuICAgIC8vIFNhbGFyeSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgc2FsYXJ5IGluY29tZSBzb3VyY2VcbiAgICBpZiAoaW5jb21lVHlwZXMuc2FsYXJ5KSB7XG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uU0FMQVJZLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcyh0cnVlKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIE90aGVyIGluY29tZSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIG90aGVyIGluY29tZSBzb3VyY2VcbiAgICBpZiAoaW5jb21lVHlwZXMuZGl2aWRlbmRzIHx8IGluY29tZVR5cGVzLm90aGVyKSB7XG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uT1RIRVJfSU5DT01FLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcygpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUmVudGFsIGluY29tZSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHByb3BlcnR5XG4gICAgaWYgKGluY29tZVR5cGVzLnByb3BlcnR5KSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5QUk9QRVJUWSwgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuICAgIH1cblxuICAgIC8vIFNvbGUgYnVzaW5lc3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBidXNpbmVzc1xuICAgIGlmIChpbmNvbWVUeXBlcy5zb2xlKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5TT0xFX0JVU0lORVNTLCB0aGlzLnNvbGVCdXNpbmVzc1NlcnZpY2UuZ2V0KCkpKTtcbiAgICB9XG5cbiAgICAvLyBCYW5rIGZlZWRzIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgYmFuayBhY2NvdW50IChiYXNpcSBvciBtYW51YWwpXG4gICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uQkFOS19GRUVEUywgdGhpcy5iYW5rQWNjb3VudHNTZXJ2aWNlLmdldEFycmF5KCkpKTtcblxuICAgIC8vIExvZ2Jvb2sgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCBvbmUgdmVoaWNsZSBjbGFpbSB3aXRoIGFueSBtZXRob2QgKGttcyBvciBsb2dib29rKVxuICAgIGJhdGNoLnB1c2godGhpcy5nZXRMb2dib29rSXRlbSgpKTtcblxuICAgIC8vIEFsbG9jYXRpb24gaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uVFJBTlNBQ1RJT04sIHRoaXMudHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZS5nZXQoKSkpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoYmF0Y2gpLnBpcGUobWFwKChpdGVtczogQWNjb3VudFNldHVwSXRlbVtdKSA9PiBuZXcgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24oaXRlbXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleDogd29yayB3aXRoIGNvbGxlY3Rpb24gd2hlbiBzZXJ2aWNlcyByZWZhY3RvcmVkXG4gICAqIEBUT0RPIFZpazogd2FpdGluZyBmb3IgaW5jb21lIHNvdXJjZXMgcmVmYWN0b3JpbmdcbiAgICovXG4gIHByaXZhdGUgZ2V0SW5jb21lU291cmNlcyhpc1NhbGFyeTogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxJbmNvbWVTb3VyY2VbXT4ge1xuICAgIHJldHVybiB0aGlzLmluY29tZVNvdXJjZVNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBJbmNvbWVTb3VyY2VbXSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb246IEluY29tZVNvdXJjZUNvbGxlY3Rpb24gPSBuZXcgSW5jb21lU291cmNlQ29sbGVjdGlvbihpbmNvbWVTb3VyY2VzKTtcbiAgICAgICAgaWYgKGlzU2FsYXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uZ2V0U2FsYXJ5KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5pdGVtcy5maWx0ZXIoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiAhaW5jb21lU291cmNlLmlzU2FsYXJ5SW5jb21lKCkgJiYgIWluY29tZVNvdXJjZS5pc1NvbGVJbmNvbWUoKSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGxvZ2Jvb2sgaXRlbSB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IDEgdmVoaWNsZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMb2dib29rSXRlbSgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBAVE9ETyBBbGV4OiByZW1vdmUgbWFwIHdoZW4gc2VydmljZXMgc3RhcnQgd29yayB3aXRoIGNvbGxlY3Rpb25zXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucykpLFxuICAgICAgICBtZXJnZU1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb25zLmdldFZlaGljbGVUcmFuc2FjdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uV09SS19MT0dCT09LLCB0aGlzLnZlaGljbGVDbGFpbVNlcnZpY2UuZ2V0KCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJcEYsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTdGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7OztBQUc3Rjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ1Usd0JBQWtELEVBQ2xELGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxtQkFBdUMsRUFDdkMsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsbUJBQXdDO1FBUHhDLDZCQUF3QixH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SSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDeEY7WUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7aUhBMUpVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDQ09VTlRfU0VUVVBfSVRFTVMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmNvbnN0JztcbmltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW0nO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbXNFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtcy5lbnVtJztcbmltcG9ydCB7IEJhbmtBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2h0dHAvYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9maXJtL2NsaWVudC1pbmNvbWUvY2xpZW50LWluY29tZS10eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2luY29tZS1zb3VyY2UuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICcuLi9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVmVoaWNsZUNsYWltU2VydmljZSB9IGZyb20gJy4uL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UnO1xuaW1wb3J0IGZyb21QYWlycyBmcm9tICdsb2Rhc2gvZnJvbVBhaXJzJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBTb2xlQnVzaW5lc3NTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5cbi8qKlxuICogU2VydmljZSBoYW5kbGluZyB1c2VyJ3MgYWNjb3VudCBzZXR1cCBwcm9jZXNzLlxuICogQ2hlY2tzIHJlcXVpcmVkIHN0ZXBzIGFuZCB0aGVpciBjb21wbGV0aW9uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXR1cFNlcnZpY2Uge1xuICBjYWNoZTogQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb247XG4gIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4oMSk7XG4gIGNsaWVudEluY29tZVR5cGVzSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNsaWVudEluY29tZVR5cGVzU2VydmljZTogQ2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlOiBQcm9wZXJ0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmNvbWVTb3VyY2VTZXJ2aWNlOiBJbmNvbWVTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFua0FjY291bnRzU2VydmljZTogQmFua0FjY291bnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZTogVHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHZlaGljbGVDbGFpbVNlcnZpY2U6IFZlaGljbGVDbGFpbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHNvbGVCdXNpbmVzc1NlcnZpY2U6IFNvbGVCdXNpbmVzc1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYWNjb3VudCBzZXR1cCBpdGVtcyBmb3IgY3VycmVudCB1c2VyXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZSA9IG5ldyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMuY2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlLmdldFNpbmdsZSgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIHdlIG5lZWQgYWNjb3VudCBzZXR1cCBvbmx5IHdoZW4gdXNlciBzZWxlY3RlZCBhdCBsZWFzdCBvbmUgaW5jb21lIHR5cGVcbiAgICAgICAgICBmaWx0ZXIoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcykgPT4gISFpbmNvbWVUeXBlcy5sZW5ndGgpLFxuICAgICAgICAgIG1lcmdlTWFwKChpbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SW5jb21lVHlwZXNJZCA9IGluY29tZVR5cGVzLmlkO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVCYXRjaChpbmNvbWVUeXBlcyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChpdGVtczogQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIGNhc2UgIXRoaXMuY2FjaGU6XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2FjaGUuZmlsdGVyQnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoICE9PSBpdGVtcy5maWx0ZXJCeSgnaXNDb21wbGV0ZWQnLCB0cnVlKS5sZW5ndGg6XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2FjaGUubGVuZ3RoICE9PSBpdGVtcy5sZW5ndGg6XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBjbG9uZURlZXAoaXRlbXMpO1xuICAgICAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgY2xpZW50IGluY29tZSB0eXBlcyB0byB1cGRhdGUgdG8gaGlkZSBkZXBlbmRlZCBhY2NvdW50IHNldHVwIGl0ZW1zXG4gICAqL1xuICBwcmVwYXJlSW5jb21lVHlwZXMoaXRlbTogQWNjb3VudFNldHVwSXRlbSk6IENsaWVudEluY29tZVR5cGVzIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFxuICAgICAgQ2xpZW50SW5jb21lVHlwZXMsXG4gICAgICBPYmplY3QuYXNzaWduKHtpZDogdGhpcy5jbGllbnRJbmNvbWVUeXBlc0lkfSwgZnJvbVBhaXJzKGl0ZW0uY2xpZW50SW5jb21lVHlwZXMubWFwKCh0eXBlOiBzdHJpbmcpID0+IFt0eXBlLCBmYWxzZV0pKSlcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc2luZ2xlIEFjY291bnRTZXR1cEl0ZW0gYW5kIGNoZWNrIGl0J3MgY29tcGxldGlvblxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGUoaXRlbVR5cGU6IEFjY291bnRTZXR1cEl0ZW1zRW51bSwgcmVxdWVzdDogT2JzZXJ2YWJsZTxvYmplY3RbXT4pOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IG9iamVjdFtdKTogQWNjb3VudFNldHVwSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW06IEFjY291bnRTZXR1cEl0ZW0gPSBBQ0NPVU5UX1NFVFVQX0lURU1TW2l0ZW1UeXBlXTtcblxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBiYXRjaCBvZiByZXF1ZXN0cyB0byBnZXQgbGlzdCBvZiByZXF1aXJlZCBBY2NvdW50U2V0dXBJdGVtJ3MuXG4gICAqIFNvbWUgaXRlbXMgYXJlIG9wdGlvbmFsIGFuZCBkZXBlbmRzIG9mIHVzZXIncyBjbGllbnQgaW5jb21lIHR5cGVzXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUJhdGNoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcyk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBiYXRjaDogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPltdID0gW107XG5cbiAgICAvLyBTYWxhcnkgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIHNhbGFyeSBpbmNvbWUgc291cmNlXG4gICAgaWYgKGluY29tZVR5cGVzLndvcmspIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5TQUxBUlksXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKHRydWUpXG4gICAgICAgICksXG4gICAgICAgIC8vIE90aGVyIGluY29tZSBpcyBhIHBhcnQgb2Ygd29yayB0YW5rLCBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBvdGhlciBpbmNvbWUgc291cmNlXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5PVEhFUl9JTkNPTUUsXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBSZW50YWwgaW5jb21lIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgcHJvcGVydHlcbiAgICBpZiAoaW5jb21lVHlwZXMucHJvcGVydHkpIHtcbiAgICAgIGJhdGNoLnB1c2godGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLlBST1BFUlRZLCB0aGlzLnByb3BlcnR5U2VydmljZS5nZXRBcnJheSgpKSk7XG4gICAgfVxuXG4gICAgLy8gU29sZSBidXNpbmVzcyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIGJ1c2luZXNzXG4gICAgaWYgKGluY29tZVR5cGVzLnNvbGUpIHtcbiAgICAgIGJhdGNoLnB1c2godGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLlNPTEVfQlVTSU5FU1MsIHRoaXMuc29sZUJ1c2luZXNzU2VydmljZS5nZXQoKSkpO1xuICAgIH1cblxuICAgIC8vIEJhbmsgZmVlZHMgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBiYW5rIGFjY291bnQgKGJhc2lxIG9yIG1hbnVhbClcbiAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5CQU5LX0ZFRURTLCB0aGlzLmJhbmtBY2NvdW50c1NlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuXG4gICAgLy8gTG9nYm9vayBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IG9uZSB2ZWhpY2xlIGNsYWltIHdpdGggYW55IG1ldGhvZCAoa21zIG9yIGxvZ2Jvb2spXG4gICAgYmF0Y2gucHVzaCh0aGlzLmdldExvZ2Jvb2tJdGVtKCkpO1xuXG4gICAgLy8gQWxsb2NhdGlvbiBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uIGFsbG9jYXRpb25cbiAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5UUkFOU0FDVElPTiwgdGhpcy50cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLmdldCgpKSk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChiYXRjaCkucGlwZShtYXAoKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtW10pID0+IG5ldyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbihpdGVtcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4OiB3b3JrIHdpdGggY29sbGVjdGlvbiB3aGVuIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAgICogQFRPRE8gVmlrOiB3YWl0aW5nIGZvciBpbmNvbWUgc291cmNlcyByZWZhY3RvcmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbmNvbWVTb3VyY2VzKGlzU2FsYXJ5OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21lU291cmNlU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSk6IEluY29tZVNvdXJjZVtdID0+IHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbjogSW5jb21lU291cmNlQ29sbGVjdGlvbiA9IG5ldyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uKGluY29tZVNvdXJjZXMpO1xuICAgICAgICBpZiAoaXNTYWxhcnkpIHtcbiAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5nZXRTYWxhcnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLml0ZW1zLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+ICFpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSAmJiAhaW5jb21lU291cmNlLmlzU29sZUluY29tZSgpKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbG9nYm9vayBpdGVtIHdoZW4gdXNlciBoYXMgYXQgbGVhc3QgMSB2ZWhpY2xlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldExvZ2Jvb2tJdGVtKCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIEBUT0RPIEFsZXg6IHJlbW92ZSBtYXAgd2hlbiBzZXJ2aWNlcyBzdGFydCB3b3JrIHdpdGggY29sbGVjdGlvbnNcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKSksXG4gICAgICAgIG1lcmdlTWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbnMuZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5XT1JLX0xPR0JPT0ssIHRoaXMudmVoaWNsZUNsYWltU2VydmljZS5nZXQoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19