@veloceapps/sdk 3.1.17-1 → 3.1.17

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.
Files changed (33) hide show
  1. package/bundles/veloce-sdk-core.umd.js +68 -212
  2. package/bundles/veloce-sdk-core.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-runtime.umd.js +6 -5
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +35 -42
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +17 -11
  8. package/core/services/quote-draft.service.d.ts +7 -41
  9. package/esm2015/core/modules/configuration/services/configuration.service.js +3 -3
  10. package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +49 -43
  11. package/esm2015/core/services/quote-draft.service.js +22 -138
  12. package/esm2015/runtime/components/ui-runtime/runtime.component.js +2 -2
  13. package/esm2015/runtime/execution/directives/section-script.directive.js +2 -2
  14. package/esm2015/runtime/services/cart.service.js +3 -2
  15. package/esm2015/runtime/services/section.service.js +1 -1
  16. package/esm2015/src/components/header/header.component.js +19 -23
  17. package/esm2015/src/components/header/header.types.js +1 -1
  18. package/esm2015/src/pages/legacy-product/legacy-product.component.js +4 -4
  19. package/esm2015/src/pages/product/product.component.js +5 -8
  20. package/esm2015/src/resolvers/quote.resolver.js +11 -4
  21. package/esm2015/src/services/flow.service.js +5 -6
  22. package/fesm2015/veloce-sdk-core.js +66 -177
  23. package/fesm2015/veloce-sdk-core.js.map +1 -1
  24. package/fesm2015/veloce-sdk-runtime.js +4 -3
  25. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  26. package/fesm2015/veloce-sdk.js +36 -38
  27. package/fesm2015/veloce-sdk.js.map +1 -1
  28. package/package.json +1 -1
  29. package/runtime/services/cart.service.d.ts +1 -1
  30. package/src/components/header/header.component.d.ts +2 -5
  31. package/src/components/header/header.types.d.ts +1 -0
  32. package/src/pages/product/product.component.d.ts +0 -1
  33. package/src/resolvers/quote.resolver.d.ts +1 -0
@@ -408,7 +408,7 @@ export class RuntimeComponent {
408
408
  }
409
409
  }
410
410
  RuntimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RuntimeComponent, deps: [{ token: i1.SectionsService }, { token: i2.FormScopeService }, { token: i3.CollapsibleStateService }, { token: i4.RuntimeFormService }, { token: i5.RuntimeService }, { token: MessageService }, { token: i6.ContextService }, { token: i7.OrderByPipe }, { token: i7.SearchFilterPipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
411
- RuntimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RuntimeComponent, selector: "vl-runtime", outputs: { solutionUpdated: "solutionUpdated" }, providers: [FormScopeService, CollapsibleStateService, OrderByPipe, SearchFilterPipe], ngImport: i0, template: "<vl-loader label=\"Loading UI\" *ngIf=\"!solutionIsReady; else content\"></vl-loader>\n\n<ng-template #content>\n <div\n class=\"sidebar-tabs\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n #uiTabs=\"sidebarTabs\"\n sidebarTabs=\"{{ activeUITab?.id }}\"\n id=\"vl-default-sidebar-tabs\"\n >\n <ul>\n <li\n *ngFor=\"let tab of runtimeContext?.uiDefinition?.tabs | orderBy: 'order':'asc'\"\n [ngClass]=\"{ active: uiTabs.activeTab === tab.id }\"\n (click)=\"uiTabs.switchTab(tab.id)\"\n >\n <a href=\"javascript:void(0);\">{{ tab.name }}</a>\n </li>\n </ul>\n </div>\n\n <div class=\"sections-wrapper\">\n <form role=\"form\" name=\"form\" class=\"form-horizontal\" [formGroup]=\"form\" novalidate autocomplete=\"off\">\n <ng-container *ngFor=\"let section of staticSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let section of sortedSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n </form>\n\n <div\n class=\"modal-footer\"\n *ngIf=\"runtimeContext?.runtimeMode === 1\"\n id=\"vl-runtime-default-footer\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n >\n <div class=\"col-md-12 input-form-input\">\n <a href=\"javascript:void(0);\" class=\"btn btn-default\" (click)=\"form.valid && addToCart()\" id=\"add-to-cart-btn\"\n >Add to cart</a\n >\n <a href=\"javascript:void(0);\" class=\"btn btn-link\" (click)=\"hideModal()\" id=\"cancel-btn\">Cancel</a>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";body.veloce-apex-index,body.veloce-index,body.sfdcBody{overflow:hidden;margin:0;padding:0}:host ::ng-deep .velo-app .modal.in .modal-dialog.runtime-modal{margin-left:5%;margin-right:5%;padding:0;position:relative;width:auto}:host ::ng-deep .modal-body.runtime-modal.main-container{height:100%;margin:0;padding:0}:host ::ng-deep .modal-body.runtime-modal.main-container .content-wrapper{display:flex;flex-direction:column;height:100%}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper{display:flex;flex-direction:column;flex-grow:1;padding:0}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid{height:100%;margin:0;padding:0;overflow:auto}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid .input-form.form-horizontal,:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid .input-form.form-horizontal .form-horizontal,:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid section-script>:first-child{height:100%}:host ::ng-deep .runtime-modal .modal-content,:host ::ng-deep .gu-mirror .modal-content{background-color:--vl-input-background}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a{color:#333333b3;font-weight:600;text-transform:uppercase;letter-spacing:.85px;font-size:10px}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.active,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.active{color:#333}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.disabled,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.disabled{color:#33333380}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.active:after,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.active:after{background-color:#f36;bottom:-1px;content:\"\";height:1px;left:0;position:absolute;width:100%}:host ::ng-deep .runtime-modal .modal-content .modal-header,:host ::ng-deep .gu-mirror .modal-content .modal-header{background:transparent;color:#fff}:host ::ng-deep .runtime-modal .runtime-group-divider,:host ::ng-deep .gu-mirror .runtime-group-divider{border-bottom:1px solid #e5e5e5}:host ::ng-deep .runtime-modal .input-form-input,:host ::ng-deep .gu-mirror .input-form-input{position:relative;padding-left:0;padding-top:0}:host ::ng-deep .runtime-modal .input-form-input--required>label,:host ::ng-deep .gu-mirror .input-form-input--required>label{color:#ff4233;font-weight:bold}:host ::ng-deep .form-control-wrapper{position:relative}:host ::ng-deep .add-config-control:hover{background-color:#e96099;color:#fff;border:1px solid transparent}:host ::ng-deep .remove-config-control:hover{background-color:#828c9e;color:#fff}:host ::ng-deep .add-config-control[disabled],:host ::ng-deep .remove-config-control[disabled]{background-color:transparent;color:#ccc;border:1px dashed #ccc}:host ::ng-deep .add-config-control[disabled]:hover,:host ::ng-deep .remove-config-control[disabled]:hover{cursor:default}:host ::ng-deep .add-config-control{height:36px;width:36px;line-height:36px;font-size:14px;text-align:center;border-radius:50%;float:left;position:absolute;top:0;right:-57px;z-index:500;background-color:#e3337c;color:#fff;border:1px solid #e3337c;transition:all .5s ease 0s}:host ::ng-deep .add-config-control .plus-icon{line-height:36px}:host ::ng-deep .remove-config-control{height:36px;width:36px;line-height:36px;font-size:14px;text-align:center;margin-right:25px;border-radius:50%;float:left;position:absolute;top:33px;right:51px;z-index:500;background-color:transparent;color:#687285;border:1px solid transparent;transition:all .5s ease 0s}:host ::ng-deep .remove-config-control .plus-icon{line-height:36px}:host ::ng-deep .sidebar .new-wrapper{min-height:96px;margin-bottom:25px}:host ::ng-deep .sidebar .new-wrapper .add-container .add-card{left:0;margin-left:15px}:host ::ng-deep .ui-settings{height:100%;display:flex;flex-direction:column}:host ::ng-deep .runtime-modal .form-horizontal form,:host ::ng-deep .gu-mirror form{margin:0}:host ::ng-deep .runtime-modal .form-horizontal .form-group,:host ::ng-deep .gu-mirror .form-group{margin:0;padding:0}:host ::ng-deep .runtime-modal .form-horizontal .control.form-group,:host ::ng-deep .gu-mirror .control.form-group{margin-bottom:25px}:host ::ng-deep .runtime-modal .form-horizontal .form-control-wrapper,:host ::ng-deep .gu-mirror .form-control-wrapper{min-width:172px;margin-bottom:25px}:host ::ng-deep .runtime-modal .form-horizontal .quantity-form-input .form-control-wrapper,:host ::ng-deep .gu-mirror .quantity-form-input .form-control-wrapper{min-width:50px}:host ::ng-deep .runtime-modal .form-horizontal .quantity-form-input .form-control-wrapper .form-control,:host ::ng-deep .gu-mirror .quantity-form-input .form-control-wrapper .form-control{width:50px}:host ::ng-deep .runtime-left-side{height:calc(100% - 97px);background:#fff;padding:48px 56px 0}:host ::ng-deep .ui-controls-group{margin-left:-8px;margin-right:-8px}:host ::ng-deep .ui-controls-group .ui-control-type:hover{border-color:#3384ff}:host ::ng-deep .ui-controls-group .ui-control-type{position:relative;min-width:140px;float:left;border-radius:3px;border:1px solid #c4c4c4;background-color:#fff;width:calc(50% - 16px);padding:12px 13px;margin-bottom:16px;margin-right:8px;margin-left:8px;cursor:pointer}:host ::ng-deep .ui-controls-group .ui-control-type span{padding-left:3px}:host ::ng-deep .sidebar-header{letter-spacing:-.5px;padding-bottom:24px;padding-top:0;line-height:32px;font-size:24px;font-weight:700;color:#333}:host ::ng-deep .sidebar-header small{display:block;color:#333;font-size:11px;font-weight:300;line-height:20px;margin:0}:host ::ng-deep .sidebar-menu-list{color:#333333b3;margin:0;width:100%;list-style:none;font-size:12px}:host ::ng-deep .sidebar-menu-list li.active a,:host ::ng-deep .sidebar-menu-list li.active i{color:#005ee3}:host ::ng-deep .sidebar-menu-list li:hover{cursor:pointer}:host ::ng-deep .sidebar-menu-list li{text-align:right;padding-left:16px}:host ::ng-deep .sidebar-menu-list li a{padding:0 8px;margin-left:-8px;cursor:pointer;white-space:nowrap;color:inherit;font-weight:700;display:inline-block;line-height:32px}:host ::ng-deep .sidebar-menu-list li i{display:none;padding-right:5px}:host ::ng-deep .runtime-builder-content{min-height:100%}:host ::ng-deep .runtime-builder-content .input-form{margin:0;padding:18px 11px 0}:host ::ng-deep .runtime-builder-content .input-form .form-group{border:3px dashed transparent}:host ::ng-deep .runtime-builder-content .input-form .form-group:hover{border:3px dashed #dedede}:host ::ng-deep .runtime-right-side{background:#fff}:host ::ng-deep .sidebar-section .section-title{color:#a1a1a1;background:#fff;position:relative;display:inline-block;padding-right:16px;text-transform:uppercase;font-size:10px;letter-spacing:.2px}:host ::ng-deep .sidebar-section:before{content:\" \";position:absolute;top:50%;left:0;right:0;border-top:1px solid #e6e6e6}:host ::ng-deep .sidebar-section{position:relative;margin-top:16px;margin-bottom:16px}:host ::ng-deep .sidebar-section .section-title{color:#a1a1a1;background-color:var(--vl-input-background);position:relative;display:inline-block;padding-right:16px;padding-left:8px;text-transform:uppercase;font-size:6px;letter-spacing:.2px}:host ::ng-deep .section-wrapper{top:-21px;position:absolute;right:0;left:12px}:host ::ng-deep .container-box.container-box-bordered{border:1px solid rgba(0,0,0,.2);margin-bottom:25px;padding-left:25px}:host ::ng-deep .container-box.container-box-radio{margin-left:0}:host ::ng-deep .container-box.container-box-radio:hover,:host ::ng-deep .container-box.container-box-checkbox:hover{cursor:pointer}:host ::ng-deep .container-box{position:relative;overflow:auto;border:1px solid transparent;background:var(--vl-input-background)}:host ::ng-deep .container-box .container-box{border:1px solid rgba(0,0,0,.2);margin-left:25px;margin-right:25px;margin-bottom:25px}:host ::ng-deep .container-box .container-box:hover{border-color:var(--vl-primary-color)}:host ::ng-deep .container-box .box-title .header .header-label{color:#333;margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;line-height:75px}:host ::ng-deep .container-box .box-title .header .header-label small{padding-left:21px;color:#757575;font-weight:400;font-size:10px;line-height:75px}:host ::ng-deep .container-box .box-title .header .header-qty-container,:host ::ng-deep .container-box .box-title .header .radio-button,:host ::ng-deep .container-box .box-title .header .checkbox-select{display:table-cell;vertical-align:middle;height:75px;padding-left:21px}:host ::ng-deep .container-box .box-title .header .header-qty-container .form-control,:host ::ng-deep .container-box .box-title .header .radio-button .form-control,:host ::ng-deep .container-box .box-title .header .checkbox-select .form-control{height:auto;color:#333;width:50px;border:1px solid #dddddd}:host ::ng-deep .container-box .box-title .header .header-qty-container .form-control:focus,:host ::ng-deep .container-box .box-title .header .radio-button .form-control:focus,:host ::ng-deep .container-box .box-title .header .checkbox-select .form-control:focus{border:1px solid #c4c4c4}:host ::ng-deep .container-box .box-title .header .header-qty-container .validation-message,:host ::ng-deep .container-box .box-title .header .radio-button .validation-message,:host ::ng-deep .container-box .box-title .header .checkbox-select .validation-message{position:absolute;margin-top:3px}:host ::ng-deep .container-box .box-title .header .radio-button,:host ::ng-deep .container-box .box-title .header .checkbox-select{padding-left:0;vertical-align:middle}:host ::ng-deep .container-box .box-content{padding:25px 0 25px 33px}:host ::ng-deep .container-box .timeline-item{clear:both;display:block;width:100%;position:relative}:host ::ng-deep .container-box .timeline-item:before{display:block!important;content:\"\";position:absolute;left:25px;top:-25px;bottom:25px;width:1px;border-left:1px dashed rgba(0,0,0,.2)}:host ::ng-deep .container-box .timeline-item .icon{background:#90c7ec;width:35px;height:35px;border-radius:50%;position:absolute;left:24px;top:4px}:host ::ng-deep .container-box .timeline-item .icon .fa.fa-upload{left:11px;top:10px}:host ::ng-deep .container-box .timeline-item .icon .fa{color:#fff;position:absolute}:host ::ng-deep .container-box .timeline-item .message .content{float:left;width:80%}:host ::ng-deep .container-box .container-group-control{background:transparent;text-transform:uppercase}:host ::ng-deep .container-box-custom{margin-bottom:25px}:host ::ng-deep .unchecked .container-box{border-color:#0003}:host ::ng-deep .unchecked .container-box:hover{border-color:var(--vl-primary-color)}:host ::ng-deep .unchecked.timeline-item .icon-circle{background-color:#6e6e6e}:host ::ng-deep .collapsed .box-content-wrapper{opacity:0;display:none;transition:max-height .3s .1s}:host ::ng-deep .box-content-wrapper{transition:opacity .5s .1s;display:block;opacity:1}:host ::ng-deep .box-actions{position:absolute;right:25px;z-index:2;top:21px;opacity:1;transition:height .3s ease-out,opacity .5s .1s}:host ::ng-deep .box-action-button{height:32px;width:32px;line-height:32px;font-size:12px;text-align:center;float:left;margin-left:5px;border-radius:50%;transition:all .25s ease 0s}:host ::ng-deep .box-action-button a{color:#0000008a}:host ::ng-deep .box-action-button .check-icon{line-height:32px}:host ::ng-deep .box-actions-group{top:18px;right:45px}:host ::ng-deep .box-action-button:hover,:host ::ng-deep .box-action-button:focus{background-color:#0000001a;cursor:pointer;outline:none}:host ::ng-deep .box-action-button:active{background-color:#0003;cursor:pointer}:host ::ng-deep .box-action-button.active{background-color:#0000001a}:host ::ng-deep .div-block{clear:both;display:block}:host ::ng-deep .div-inline{float:left}:host ::ng-deep .checkbox-select{position:relative;display:block}:host ::ng-deep .checkbox-select label{color:#333;margin:0;line-height:16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;padding-left:25px;position:relative;min-height:16px;cursor:pointer}:host ::ng-deep .checkbox-select input[type=checkbox]{position:absolute;width:16px;height:16px;top:0;left:0;z-index:1;cursor:pointer;opacity:0;filter:alpha(opacity=0);margin:0;line-height:normal}:host ::ng-deep .checkbox-select .input-helper:before{position:absolute;content:\"\";top:-1px;width:12px;height:12px;border-radius:2px;left:0;border:2px solid rgba(0,0,0,.54);transition:all;transition-duration:.25s}:host ::ng-deep .checkbox-select .input-helper:after{font-weight:100;line-height:12px;font-size:10px;color:#fff;font-family:FontAwesome;position:absolute;content:\"\\f00c\";width:12px;height:12px;background:#0065ff;border-radius:0;top:1px;left:2px;transform:scale(0);transition:all;transition-duration:.15s}:host ::ng-deep .checkbox-select input[type=checkbox]:checked+.input-helper:before,:host ::ng-deep .checkbox-select input[type=checkbox].checkbox--checked+.input-helper:before{border-color:var(--vl-primary-color)}:host ::ng-deep .checkbox-select input[type=checkbox]:checked+.input-helper:after,:host ::ng-deep .checkbox-select input[type=checkbox].checkbox--checked+.input-helper:after{transform:scale(1)}:host ::ng-deep .radio-button{position:relative;display:block}:host ::ng-deep .radio-button label{color:#333;margin:0;line-height:16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;padding-left:25px;position:relative;min-height:16px;cursor:pointer}:host ::ng-deep .radio-button input[type=radio]{position:absolute;width:16px;height:16px;top:0;left:0;z-index:1;cursor:pointer;opacity:0;filter:alpha(opacity=0);margin:0;line-height:normal}:host ::ng-deep .radio-button .input-helper:before{position:absolute;content:\"\";top:-1px;width:12px;height:12px;border-radius:50%;left:0;border:2px solid rgba(0,0,0,.54);transition:all;transition-duration:.25s}:host ::ng-deep .radio-button .input-helper:after{position:absolute;content:\"\";width:6px;height:6px;background:var(--vl-primary-color);border-radius:50%;top:4px;left:5px;transform:scale(0);transition:all;transition-duration:.25s}:host ::ng-deep .radio-button input[type=radio]:checked+.input-helper:before{border-color:var(--vl-primary-color)}:host ::ng-deep .radio-button input[type=radio]:checked+.input-helper:after{transform:scale(1)}:host ::ng-deep .radio-button[disabled] input[type=radio]+.input-helper:before,:host ::ng-deep .checkbox-select[disabled] input[type=radio]+.input-helper:before{border-color:#0003}:host ::ng-deep .radio-button[disabled] input[type=checkbox]+.input-helper:before,:host ::ng-deep .checkbox-select[disabled] input[type=checkbox]+.input-helper:before{border-color:#0003}:host ::ng-deep .radio-button[disabled] input[type=radio]+.input-helper:after,:host ::ng-deep .checkbox-select[disabled] input[type=radio]+.input-helper:after{background:rgba(0,0,0,.2)}:host ::ng-deep .radio-button[disabled] input[type=checkbox]+.input-helper:after,:host ::ng-deep .checkbox-select[disabled] input[type=checkbox]+.input-helper:after{background:rgba(0,0,0,.2)}:host ::ng-deep .form-control-wrapper .checkbox-select,:host ::ng-deep .form-control-wrapper .radio-button{padding-top:10px}:host ::ng-deep .shopping-bag-sidebar.open{transform:translate(-100%)}:host ::ng-deep .shopping-bag-sidebar{position:fixed;top:0;bottom:0;z-index:1051;width:420px;right:-420px;background-color:#2a2b30;transition:.3s transform}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart{color:#abacae;position:absolute;top:20%;width:50px;height:50px;line-height:50px;text-align:center;right:100%;left:auto;background:#2a2b30;border-radius:3px 0 0 3px;display:block}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:before{font-family:FontAwesome;content:\"\\f291\"}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:hover{text-decoration:none;color:#abacae}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:active,:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:focus,:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:visited{text-decoration:none;color:#abacae}:host ::ng-deep .shopping-bag-sidebar .cart-count{font-size:9px;font-weight:bold;line-height:15px;position:absolute;top:50%;right:8px;width:15px;height:15px;margin:-16px 0 0;text-align:center;color:#fff;border-radius:50%;background:var(--vl-primary-color)}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-container{overflow:auto;display:block;height:100%;padding:0 25px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item{color:#abacae;background-color:#000;position:relative;overflow:auto;margin-bottom:10px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title{position:relative;padding-right:25px;padding-left:25px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .header{float:left;color:#abacae;margin:0;line-height:48px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .box-actions{height:48px;float:right;top:0}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .box-action-button{height:32px;width:32px;line-height:32px;font-size:10px;font-weight:700;margin-top:8px;text-align:center;transition:all .25s ease 0s;color:#fff;background-color:var(--vl-primary-color)}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-title{color:#cecece;font-size:11px;text-transform:uppercase;line-height:64px;font-weight:600;padding-top:0;margin-top:25px;margin-bottom:25px;text-align:right}:host ::ng-deep .container-box.hovered:before,:host ::ng-deep .box-title.hovered:before,:host ::ng-deep .container-box.selected:before,:host ::ng-deep .box-title.selected:before{top:0;right:0;left:0;bottom:0}:host ::ng-deep .selectable{position:relative;cursor:pointer}:host ::ng-deep .container-box.hovered:before{border-color:transparent}:host ::ng-deep .container-box.hovered{border-color:var(--vl-primary-color)}:host ::ng-deep .container-box.selected:before{border-color:transparent}:host ::ng-deep .container-box.selected{border-color:var(--vl-primary-color)}:host ::ng-deep .hovered:before{display:block!important;position:absolute;content:\" \";top:-15px;bottom:15px;left:-15px;right:15px;border:1px solid var(--vl-primary-color)}:host ::ng-deep .hovered .box-action-button{opacity:1!important}:host ::ng-deep .opacity-1{opacity:1!important}:host ::ng-deep .overflow-y--auto{overflow-y:auto}:host ::ng-deep .gu-mirror{position:fixed!important;margin:0!important;z-index:9999!important;opacity:.8;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)\";filter:alpha(opacity=80)}:host ::ng-deep .gu-hide{display:none!important}:host ::ng-deep .gu-unselectable{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}:host ::ng-deep .gu-transit{opacity:.2;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)\";filter:alpha(opacity=20)}:host ::ng-deep .top-nav-msg{margin-top:-30px}:host ::ng-deep .runtime-info-message ul{margin-bottom:0;list-style:none}:host ::ng-deep .runtime-info-message ul li{margin-bottom:10px}:host ::ng-deep .runtime-info-message ul li:last-child{margin-bottom:0}:host ::ng-deep .runtime-info-message .message-text{font-family:\"Open Sans\",Tahoma,sans-serif!important;overflow:hidden;padding:0;font-size:11px}:host ::ng-deep .runtime-attributes-popover .popover-arrow{display:none}:host ::ng-deep .runtime-attributes-popover .popover-content{padding:0}:host ::ng-deep .runtime-attributes-popover .runtime-content-wrapper{padding:0}:host ::ng-deep .runtime-attributes-popover .container-box-custom{margin-bottom:0}:host ::ng-deep .runtime-attributes-popover .input-form{margin:0;padding:0}:host ::ng-deep .runtime-attributes-popover .input-form form{margin-bottom:0}:host ::ng-deep .runtime-attributes-popover .input-form form .div-inline{display:block;float:none}:host ::ng-deep .runtime-attributes-popover .input-form form .form-group{padding:0;margin:0}:host ::ng-deep .runtime-attributes-popover .container-box .box-content{padding:0}:host ::ng-deep .v-custom-title,:host ::ng-deep .v-custom-description,:host ::ng-deep .v-custom-image{display:none}:host ::ng-deep .dropdown{position:relative}:host ::ng-deep .dropdown-toggle:focus{outline:0}:host ::ng-deep .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px #0000002d}:host ::ng-deep .dropdown-menu.pull-right{right:0;left:auto}:host ::ng-deep .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}:host ::ng-deep .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}:host ::ng-deep .dropdown-menu>li>a:hover,:host ::ng-deep .dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}:host ::ng-deep .dropdown-menu>.active>a,:host ::ng-deep .dropdown-menu>.active>a:hover,:host ::ng-deep .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}:host ::ng-deep .dropdown-menu>.disabled>a,:host ::ng-deep .dropdown-menu>.disabled>a:hover,:host ::ng-deep .dropdown-menu>.disabled>a:focus{color:#777}:host ::ng-deep .dropdown-menu>.disabled>a:hover,:host ::ng-deep .dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}:host ::ng-deep .open>.dropdown-menu{display:block}:host ::ng-deep .open>a{outline:0}:host ::ng-deep .dropdown-menu-right{right:0;left:auto}:host ::ng-deep .dropdown-menu-left{right:auto;left:0}:host ::ng-deep .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}:host ::ng-deep .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}\n", ":host{height:100%;display:flex;flex-direction:column}.sections-wrapper{flex-grow:1;display:flex;flex-direction:column}form{flex-grow:1;display:flex;flex-direction:column}.hidden{display:none}\n"], components: [{ type: i8.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i9.SectionRendererComponent, selector: "vl-section-renderer", inputs: ["section", "form"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.SidebarTabsDirective, selector: "[sidebarTabs]", inputs: ["sidebarTabs"], exportAs: ["sidebarTabs"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], pipes: { "orderBy": i7.OrderByPipe } });
411
+ RuntimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RuntimeComponent, selector: "vl-runtime", outputs: { solutionUpdated: "solutionUpdated" }, providers: [FormScopeService, CollapsibleStateService, OrderByPipe, SearchFilterPipe], ngImport: i0, template: "<vl-loader label=\"Loading UI\" *ngIf=\"!solutionIsReady; else content\"></vl-loader>\n\n<ng-template #content>\n <!-- TODO: Add validation messages -->\n\n <div\n class=\"sidebar-tabs\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n #uiTabs=\"sidebarTabs\"\n sidebarTabs=\"{{ activeUITab?.id }}\"\n id=\"vl-default-sidebar-tabs\"\n >\n <ul>\n <li\n *ngFor=\"let tab of runtimeContext?.uiDefinition?.tabs | orderBy: 'order':'asc'\"\n [ngClass]=\"{ active: uiTabs.activeTab === tab.id }\"\n (click)=\"uiTabs.switchTab(tab.id)\"\n >\n <a href=\"javascript:void(0);\">{{ tab.name }}</a>\n </li>\n </ul>\n </div>\n\n <div class=\"sections-wrapper\">\n <form role=\"form\" name=\"form\" class=\"form-horizontal\" [formGroup]=\"form\" novalidate autocomplete=\"off\">\n <ng-container *ngFor=\"let section of staticSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let section of sortedSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n </form>\n\n <div\n class=\"modal-footer\"\n *ngIf=\"runtimeContext?.runtimeMode === 1\"\n id=\"vl-runtime-default-footer\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n >\n <div class=\"col-md-12 input-form-input\">\n <a href=\"javascript:void(0);\" class=\"btn btn-default\" (click)=\"form.valid && addToCart()\" id=\"add-to-cart-btn\"\n >Add to cart</a\n >\n <a href=\"javascript:void(0);\" class=\"btn btn-link\" (click)=\"hideModal()\" id=\"cancel-btn\">Cancel</a>\n </div>\n </div>\n </div>\n\n <div style=\"position: relative\">\n <!-- TODO: Add validation messages -->\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";body.veloce-apex-index,body.veloce-index,body.sfdcBody{overflow:hidden;margin:0;padding:0}:host ::ng-deep .velo-app .modal.in .modal-dialog.runtime-modal{margin-left:5%;margin-right:5%;padding:0;position:relative;width:auto}:host ::ng-deep .modal-body.runtime-modal.main-container{height:100%;margin:0;padding:0}:host ::ng-deep .modal-body.runtime-modal.main-container .content-wrapper{display:flex;flex-direction:column;height:100%}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper{display:flex;flex-direction:column;flex-grow:1;padding:0}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid{height:100%;margin:0;padding:0;overflow:auto}:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid .input-form.form-horizontal,:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid .input-form.form-horizontal .form-horizontal,:host ::ng-deep .modal-body.runtime-modal.main-container .sections-wrapper .modal-body.runtime-modal.container-fluid section-script>:first-child{height:100%}:host ::ng-deep .runtime-modal .modal-content,:host ::ng-deep .gu-mirror .modal-content{background-color:--vl-input-background}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a{color:#333333b3;font-weight:600;text-transform:uppercase;letter-spacing:.85px;font-size:10px}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.active,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.active{color:#333}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.disabled,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.disabled{color:#33333380}:host ::ng-deep .runtime-modal .modal-content .modal-header-menu ul li a.active:after,:host ::ng-deep .gu-mirror .modal-content .modal-header-menu ul li a.active:after{background-color:#f36;bottom:-1px;content:\"\";height:1px;left:0;position:absolute;width:100%}:host ::ng-deep .runtime-modal .modal-content .modal-header,:host ::ng-deep .gu-mirror .modal-content .modal-header{background:transparent;color:#fff}:host ::ng-deep .runtime-modal .runtime-group-divider,:host ::ng-deep .gu-mirror .runtime-group-divider{border-bottom:1px solid #e5e5e5}:host ::ng-deep .runtime-modal .input-form-input,:host ::ng-deep .gu-mirror .input-form-input{position:relative;padding-left:0;padding-top:0}:host ::ng-deep .runtime-modal .input-form-input--required>label,:host ::ng-deep .gu-mirror .input-form-input--required>label{color:#ff4233;font-weight:bold}:host ::ng-deep .form-control-wrapper{position:relative}:host ::ng-deep .add-config-control:hover{background-color:#e96099;color:#fff;border:1px solid transparent}:host ::ng-deep .remove-config-control:hover{background-color:#828c9e;color:#fff}:host ::ng-deep .add-config-control[disabled],:host ::ng-deep .remove-config-control[disabled]{background-color:transparent;color:#ccc;border:1px dashed #ccc}:host ::ng-deep .add-config-control[disabled]:hover,:host ::ng-deep .remove-config-control[disabled]:hover{cursor:default}:host ::ng-deep .add-config-control{height:36px;width:36px;line-height:36px;font-size:14px;text-align:center;border-radius:50%;float:left;position:absolute;top:0;right:-57px;z-index:500;background-color:#e3337c;color:#fff;border:1px solid #e3337c;transition:all .5s ease 0s}:host ::ng-deep .add-config-control .plus-icon{line-height:36px}:host ::ng-deep .remove-config-control{height:36px;width:36px;line-height:36px;font-size:14px;text-align:center;margin-right:25px;border-radius:50%;float:left;position:absolute;top:33px;right:51px;z-index:500;background-color:transparent;color:#687285;border:1px solid transparent;transition:all .5s ease 0s}:host ::ng-deep .remove-config-control .plus-icon{line-height:36px}:host ::ng-deep .sidebar .new-wrapper{min-height:96px;margin-bottom:25px}:host ::ng-deep .sidebar .new-wrapper .add-container .add-card{left:0;margin-left:15px}:host ::ng-deep .ui-settings{height:100%;display:flex;flex-direction:column}:host ::ng-deep .runtime-modal .form-horizontal form,:host ::ng-deep .gu-mirror form{margin:0}:host ::ng-deep .runtime-modal .form-horizontal .form-group,:host ::ng-deep .gu-mirror .form-group{margin:0;padding:0}:host ::ng-deep .runtime-modal .form-horizontal .control.form-group,:host ::ng-deep .gu-mirror .control.form-group{margin-bottom:25px}:host ::ng-deep .runtime-modal .form-horizontal .form-control-wrapper,:host ::ng-deep .gu-mirror .form-control-wrapper{min-width:172px;margin-bottom:25px}:host ::ng-deep .runtime-modal .form-horizontal .quantity-form-input .form-control-wrapper,:host ::ng-deep .gu-mirror .quantity-form-input .form-control-wrapper{min-width:50px}:host ::ng-deep .runtime-modal .form-horizontal .quantity-form-input .form-control-wrapper .form-control,:host ::ng-deep .gu-mirror .quantity-form-input .form-control-wrapper .form-control{width:50px}:host ::ng-deep .runtime-left-side{height:calc(100% - 97px);background:#fff;padding:48px 56px 0}:host ::ng-deep .ui-controls-group{margin-left:-8px;margin-right:-8px}:host ::ng-deep .ui-controls-group .ui-control-type:hover{border-color:#3384ff}:host ::ng-deep .ui-controls-group .ui-control-type{position:relative;min-width:140px;float:left;border-radius:3px;border:1px solid #c4c4c4;background-color:#fff;width:calc(50% - 16px);padding:12px 13px;margin-bottom:16px;margin-right:8px;margin-left:8px;cursor:pointer}:host ::ng-deep .ui-controls-group .ui-control-type span{padding-left:3px}:host ::ng-deep .sidebar-header{letter-spacing:-.5px;padding-bottom:24px;padding-top:0;line-height:32px;font-size:24px;font-weight:700;color:#333}:host ::ng-deep .sidebar-header small{display:block;color:#333;font-size:11px;font-weight:300;line-height:20px;margin:0}:host ::ng-deep .sidebar-menu-list{color:#333333b3;margin:0;width:100%;list-style:none;font-size:12px}:host ::ng-deep .sidebar-menu-list li.active a,:host ::ng-deep .sidebar-menu-list li.active i{color:#005ee3}:host ::ng-deep .sidebar-menu-list li:hover{cursor:pointer}:host ::ng-deep .sidebar-menu-list li{text-align:right;padding-left:16px}:host ::ng-deep .sidebar-menu-list li a{padding:0 8px;margin-left:-8px;cursor:pointer;white-space:nowrap;color:inherit;font-weight:700;display:inline-block;line-height:32px}:host ::ng-deep .sidebar-menu-list li i{display:none;padding-right:5px}:host ::ng-deep .runtime-builder-content{min-height:100%}:host ::ng-deep .runtime-builder-content .input-form{margin:0;padding:18px 11px 0}:host ::ng-deep .runtime-builder-content .input-form .form-group{border:3px dashed transparent}:host ::ng-deep .runtime-builder-content .input-form .form-group:hover{border:3px dashed #dedede}:host ::ng-deep .runtime-right-side{background:#fff}:host ::ng-deep .sidebar-section .section-title{color:#a1a1a1;background:#fff;position:relative;display:inline-block;padding-right:16px;text-transform:uppercase;font-size:10px;letter-spacing:.2px}:host ::ng-deep .sidebar-section:before{content:\" \";position:absolute;top:50%;left:0;right:0;border-top:1px solid #e6e6e6}:host ::ng-deep .sidebar-section{position:relative;margin-top:16px;margin-bottom:16px}:host ::ng-deep .sidebar-section .section-title{color:#a1a1a1;background-color:var(--vl-input-background);position:relative;display:inline-block;padding-right:16px;padding-left:8px;text-transform:uppercase;font-size:6px;letter-spacing:.2px}:host ::ng-deep .section-wrapper{top:-21px;position:absolute;right:0;left:12px}:host ::ng-deep .container-box.container-box-bordered{border:1px solid rgba(0,0,0,.2);margin-bottom:25px;padding-left:25px}:host ::ng-deep .container-box.container-box-radio{margin-left:0}:host ::ng-deep .container-box.container-box-radio:hover,:host ::ng-deep .container-box.container-box-checkbox:hover{cursor:pointer}:host ::ng-deep .container-box{position:relative;overflow:auto;border:1px solid transparent;background:var(--vl-input-background)}:host ::ng-deep .container-box .container-box{border:1px solid rgba(0,0,0,.2);margin-left:25px;margin-right:25px;margin-bottom:25px}:host ::ng-deep .container-box .container-box:hover{border-color:var(--vl-primary-color)}:host ::ng-deep .container-box .box-title .header .header-label{color:#333;margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;line-height:75px}:host ::ng-deep .container-box .box-title .header .header-label small{padding-left:21px;color:#757575;font-weight:400;font-size:10px;line-height:75px}:host ::ng-deep .container-box .box-title .header .header-qty-container,:host ::ng-deep .container-box .box-title .header .radio-button,:host ::ng-deep .container-box .box-title .header .checkbox-select{display:table-cell;vertical-align:middle;height:75px;padding-left:21px}:host ::ng-deep .container-box .box-title .header .header-qty-container .form-control,:host ::ng-deep .container-box .box-title .header .radio-button .form-control,:host ::ng-deep .container-box .box-title .header .checkbox-select .form-control{height:auto;color:#333;width:50px;border:1px solid #dddddd}:host ::ng-deep .container-box .box-title .header .header-qty-container .form-control:focus,:host ::ng-deep .container-box .box-title .header .radio-button .form-control:focus,:host ::ng-deep .container-box .box-title .header .checkbox-select .form-control:focus{border:1px solid #c4c4c4}:host ::ng-deep .container-box .box-title .header .header-qty-container .validation-message,:host ::ng-deep .container-box .box-title .header .radio-button .validation-message,:host ::ng-deep .container-box .box-title .header .checkbox-select .validation-message{position:absolute;margin-top:3px}:host ::ng-deep .container-box .box-title .header .radio-button,:host ::ng-deep .container-box .box-title .header .checkbox-select{padding-left:0;vertical-align:middle}:host ::ng-deep .container-box .box-content{padding:25px 0 25px 33px}:host ::ng-deep .container-box .timeline-item{clear:both;display:block;width:100%;position:relative}:host ::ng-deep .container-box .timeline-item:before{display:block!important;content:\"\";position:absolute;left:25px;top:-25px;bottom:25px;width:1px;border-left:1px dashed rgba(0,0,0,.2)}:host ::ng-deep .container-box .timeline-item .icon{background:#90c7ec;width:35px;height:35px;border-radius:50%;position:absolute;left:24px;top:4px}:host ::ng-deep .container-box .timeline-item .icon .fa.fa-upload{left:11px;top:10px}:host ::ng-deep .container-box .timeline-item .icon .fa{color:#fff;position:absolute}:host ::ng-deep .container-box .timeline-item .message .content{float:left;width:80%}:host ::ng-deep .container-box .container-group-control{background:transparent;text-transform:uppercase}:host ::ng-deep .container-box-custom{margin-bottom:25px}:host ::ng-deep .unchecked .container-box{border-color:#0003}:host ::ng-deep .unchecked .container-box:hover{border-color:var(--vl-primary-color)}:host ::ng-deep .unchecked.timeline-item .icon-circle{background-color:#6e6e6e}:host ::ng-deep .collapsed .box-content-wrapper{opacity:0;display:none;transition:max-height .3s .1s}:host ::ng-deep .box-content-wrapper{transition:opacity .5s .1s;display:block;opacity:1}:host ::ng-deep .box-actions{position:absolute;right:25px;z-index:2;top:21px;opacity:1;transition:height .3s ease-out,opacity .5s .1s}:host ::ng-deep .box-action-button{height:32px;width:32px;line-height:32px;font-size:12px;text-align:center;float:left;margin-left:5px;border-radius:50%;transition:all .25s ease 0s}:host ::ng-deep .box-action-button a{color:#0000008a}:host ::ng-deep .box-action-button .check-icon{line-height:32px}:host ::ng-deep .box-actions-group{top:18px;right:45px}:host ::ng-deep .box-action-button:hover,:host ::ng-deep .box-action-button:focus{background-color:#0000001a;cursor:pointer;outline:none}:host ::ng-deep .box-action-button:active{background-color:#0003;cursor:pointer}:host ::ng-deep .box-action-button.active{background-color:#0000001a}:host ::ng-deep .div-block{clear:both;display:block}:host ::ng-deep .div-inline{float:left}:host ::ng-deep .checkbox-select{position:relative;display:block}:host ::ng-deep .checkbox-select label{color:#333;margin:0;line-height:16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;padding-left:25px;position:relative;min-height:16px;cursor:pointer}:host ::ng-deep .checkbox-select input[type=checkbox]{position:absolute;width:16px;height:16px;top:0;left:0;z-index:1;cursor:pointer;opacity:0;filter:alpha(opacity=0);margin:0;line-height:normal}:host ::ng-deep .checkbox-select .input-helper:before{position:absolute;content:\"\";top:-1px;width:12px;height:12px;border-radius:2px;left:0;border:2px solid rgba(0,0,0,.54);transition:all;transition-duration:.25s}:host ::ng-deep .checkbox-select .input-helper:after{font-weight:100;line-height:12px;font-size:10px;color:#fff;font-family:FontAwesome;position:absolute;content:\"\\f00c\";width:12px;height:12px;background:#0065ff;border-radius:0;top:1px;left:2px;transform:scale(0);transition:all;transition-duration:.15s}:host ::ng-deep .checkbox-select input[type=checkbox]:checked+.input-helper:before,:host ::ng-deep .checkbox-select input[type=checkbox].checkbox--checked+.input-helper:before{border-color:var(--vl-primary-color)}:host ::ng-deep .checkbox-select input[type=checkbox]:checked+.input-helper:after,:host ::ng-deep .checkbox-select input[type=checkbox].checkbox--checked+.input-helper:after{transform:scale(1)}:host ::ng-deep .radio-button{position:relative;display:block}:host ::ng-deep .radio-button label{color:#333;margin:0;line-height:16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;padding-left:25px;position:relative;min-height:16px;cursor:pointer}:host ::ng-deep .radio-button input[type=radio]{position:absolute;width:16px;height:16px;top:0;left:0;z-index:1;cursor:pointer;opacity:0;filter:alpha(opacity=0);margin:0;line-height:normal}:host ::ng-deep .radio-button .input-helper:before{position:absolute;content:\"\";top:-1px;width:12px;height:12px;border-radius:50%;left:0;border:2px solid rgba(0,0,0,.54);transition:all;transition-duration:.25s}:host ::ng-deep .radio-button .input-helper:after{position:absolute;content:\"\";width:6px;height:6px;background:var(--vl-primary-color);border-radius:50%;top:4px;left:5px;transform:scale(0);transition:all;transition-duration:.25s}:host ::ng-deep .radio-button input[type=radio]:checked+.input-helper:before{border-color:var(--vl-primary-color)}:host ::ng-deep .radio-button input[type=radio]:checked+.input-helper:after{transform:scale(1)}:host ::ng-deep .radio-button[disabled] input[type=radio]+.input-helper:before,:host ::ng-deep .checkbox-select[disabled] input[type=radio]+.input-helper:before{border-color:#0003}:host ::ng-deep .radio-button[disabled] input[type=checkbox]+.input-helper:before,:host ::ng-deep .checkbox-select[disabled] input[type=checkbox]+.input-helper:before{border-color:#0003}:host ::ng-deep .radio-button[disabled] input[type=radio]+.input-helper:after,:host ::ng-deep .checkbox-select[disabled] input[type=radio]+.input-helper:after{background:rgba(0,0,0,.2)}:host ::ng-deep .radio-button[disabled] input[type=checkbox]+.input-helper:after,:host ::ng-deep .checkbox-select[disabled] input[type=checkbox]+.input-helper:after{background:rgba(0,0,0,.2)}:host ::ng-deep .form-control-wrapper .checkbox-select,:host ::ng-deep .form-control-wrapper .radio-button{padding-top:10px}:host ::ng-deep .shopping-bag-sidebar.open{transform:translate(-100%)}:host ::ng-deep .shopping-bag-sidebar{position:fixed;top:0;bottom:0;z-index:1051;width:420px;right:-420px;background-color:#2a2b30;transition:.3s transform}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart{color:#abacae;position:absolute;top:20%;width:50px;height:50px;line-height:50px;text-align:center;right:100%;left:auto;background:#2a2b30;border-radius:3px 0 0 3px;display:block}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:before{font-family:FontAwesome;content:\"\\f291\"}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:hover{text-decoration:none;color:#abacae}:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:active,:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:focus,:host ::ng-deep .shopping-bag-sidebar .close-shopping-cart:visited{text-decoration:none;color:#abacae}:host ::ng-deep .shopping-bag-sidebar .cart-count{font-size:9px;font-weight:bold;line-height:15px;position:absolute;top:50%;right:8px;width:15px;height:15px;margin:-16px 0 0;text-align:center;color:#fff;border-radius:50%;background:var(--vl-primary-color)}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-container{overflow:auto;display:block;height:100%;padding:0 25px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item{color:#abacae;background-color:#000;position:relative;overflow:auto;margin-bottom:10px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title{position:relative;padding-right:25px;padding-left:25px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .header{float:left;color:#abacae;margin:0;line-height:48px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2px}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .box-actions{height:48px;float:right;top:0}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-item .item-title .box-action-button{height:32px;width:32px;line-height:32px;font-size:10px;font-weight:700;margin-top:8px;text-align:center;transition:all .25s ease 0s;color:#fff;background-color:var(--vl-primary-color)}:host ::ng-deep .shopping-bag-sidebar .shopping-bag-title{color:#cecece;font-size:11px;text-transform:uppercase;line-height:64px;font-weight:600;padding-top:0;margin-top:25px;margin-bottom:25px;text-align:right}:host ::ng-deep .container-box.hovered:before,:host ::ng-deep .box-title.hovered:before,:host ::ng-deep .container-box.selected:before,:host ::ng-deep .box-title.selected:before{top:0;right:0;left:0;bottom:0}:host ::ng-deep .selectable{position:relative;cursor:pointer}:host ::ng-deep .container-box.hovered:before{border-color:transparent}:host ::ng-deep .container-box.hovered{border-color:var(--vl-primary-color)}:host ::ng-deep .container-box.selected:before{border-color:transparent}:host ::ng-deep .container-box.selected{border-color:var(--vl-primary-color)}:host ::ng-deep .hovered:before{display:block!important;position:absolute;content:\" \";top:-15px;bottom:15px;left:-15px;right:15px;border:1px solid var(--vl-primary-color)}:host ::ng-deep .hovered .box-action-button{opacity:1!important}:host ::ng-deep .opacity-1{opacity:1!important}:host ::ng-deep .overflow-y--auto{overflow-y:auto}:host ::ng-deep .gu-mirror{position:fixed!important;margin:0!important;z-index:9999!important;opacity:.8;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)\";filter:alpha(opacity=80)}:host ::ng-deep .gu-hide{display:none!important}:host ::ng-deep .gu-unselectable{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}:host ::ng-deep .gu-transit{opacity:.2;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)\";filter:alpha(opacity=20)}:host ::ng-deep .top-nav-msg{margin-top:-30px}:host ::ng-deep .runtime-info-message ul{margin-bottom:0;list-style:none}:host ::ng-deep .runtime-info-message ul li{margin-bottom:10px}:host ::ng-deep .runtime-info-message ul li:last-child{margin-bottom:0}:host ::ng-deep .runtime-info-message .message-text{font-family:\"Open Sans\",Tahoma,sans-serif!important;overflow:hidden;padding:0;font-size:11px}:host ::ng-deep .runtime-attributes-popover .popover-arrow{display:none}:host ::ng-deep .runtime-attributes-popover .popover-content{padding:0}:host ::ng-deep .runtime-attributes-popover .runtime-content-wrapper{padding:0}:host ::ng-deep .runtime-attributes-popover .container-box-custom{margin-bottom:0}:host ::ng-deep .runtime-attributes-popover .input-form{margin:0;padding:0}:host ::ng-deep .runtime-attributes-popover .input-form form{margin-bottom:0}:host ::ng-deep .runtime-attributes-popover .input-form form .div-inline{display:block;float:none}:host ::ng-deep .runtime-attributes-popover .input-form form .form-group{padding:0;margin:0}:host ::ng-deep .runtime-attributes-popover .container-box .box-content{padding:0}:host ::ng-deep .v-custom-title,:host ::ng-deep .v-custom-description,:host ::ng-deep .v-custom-image{display:none}:host ::ng-deep .dropdown{position:relative}:host ::ng-deep .dropdown-toggle:focus{outline:0}:host ::ng-deep .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px #0000002d}:host ::ng-deep .dropdown-menu.pull-right{right:0;left:auto}:host ::ng-deep .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}:host ::ng-deep .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}:host ::ng-deep .dropdown-menu>li>a:hover,:host ::ng-deep .dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}:host ::ng-deep .dropdown-menu>.active>a,:host ::ng-deep .dropdown-menu>.active>a:hover,:host ::ng-deep .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}:host ::ng-deep .dropdown-menu>.disabled>a,:host ::ng-deep .dropdown-menu>.disabled>a:hover,:host ::ng-deep .dropdown-menu>.disabled>a:focus{color:#777}:host ::ng-deep .dropdown-menu>.disabled>a:hover,:host ::ng-deep .dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}:host ::ng-deep .open>.dropdown-menu{display:block}:host ::ng-deep .open>a{outline:0}:host ::ng-deep .dropdown-menu-right{right:0;left:auto}:host ::ng-deep .dropdown-menu-left{right:auto;left:0}:host ::ng-deep .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}:host ::ng-deep .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}\n", ":host{height:100%;display:flex;flex-direction:column}.sections-wrapper{flex-grow:1;display:flex;flex-direction:column}form{flex-grow:1;display:flex;flex-direction:column}.hidden{display:none}\n"], components: [{ type: i8.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i9.SectionRendererComponent, selector: "vl-section-renderer", inputs: ["section", "form"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.SidebarTabsDirective, selector: "[sidebarTabs]", inputs: ["sidebarTabs"], exportAs: ["sidebarTabs"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], pipes: { "orderBy": i7.OrderByPipe } });
412
412
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: RuntimeComponent, decorators: [{
413
413
  type: Component,
414
414
  args: [{
@@ -424,4 +424,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
424
424
  }] }, { type: i6.ContextService }, { type: i7.OrderByPipe }, { type: i7.SearchFilterPipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { solutionUpdated: [{
425
425
  type: Output
426
426
  }] } });
427
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2NvbXBvbmVudHMvdWktcnVudGltZS9ydW50aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lL3J1bnRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBR0wsVUFBVSxFQUVWLFdBQVcsRUFFWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBSWhCLElBQUksR0FDTCxNQUFNLGNBQWMsQ0FBQztBQUd0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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LGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQywwQkN2Q3ZGLG1nRUFtREE7NEZEVmEsZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ25CLFdBQVcsRUFBRSx3QkFBd0I7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixFQUFFLHdCQUF3QixDQUFDO29CQUNyRSxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3RGOzswQkF5QkksTUFBTTsyQkFBQyxjQUFjO2tLQVJHLGVBQWU7c0JBQXpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENoYXJnZUl0ZW0sXG4gIEVudGl0eVV0aWwsXG4gIExpbmVJdGVtLFxuICBPcmRlckJ5UGlwZSxcbiAgUHJpY2VBZGp1c3RtZW50LFxuICBTYWxlc2ZvcmNlSWRVdGlscyxcbiAgU2VhcmNoRmlsdGVyUGlwZSxcbiAgU2VjdGlvbixcbiAgU2VjdGlvblBhdGgsXG4gIFVJVGFiLFxuICBVVUlELFxufSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL3Nkay9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbGxhcHNpYmxlLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBSdW50aW1lRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ydW50aW1lLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3J1bnRpbWUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExlZ2FjeVJ1bnRpbWVDb250ZXh0LCBTb2x1dGlvblJlYWR5QXdhcmUsIFVwZGF0ZURhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCb3VuZERhdGFUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMvYm91bmQtZGF0YS50eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVV0aWwgfSBmcm9tICcuLi8uLi91dGlscy9saW5lLWl0ZW0udXRpbCc7XG5pbXBvcnQgeyBnZXRTZWN0aW9uVHJlZSB9IGZyb20gJy4uLy4uL3V0aWxzL3NlY3Rpb24udXRpbHMnO1xuaW1wb3J0IHsgU2VjdGlvbnNCaW5kZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9zZWN0aW9ucy1iaW5kZXIuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtcnVudGltZScsXG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHRlbXBsYXRlVXJsOiAncnVudGltZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bnRpbWUtbGVnYWN5LXN0eWxlcy5zY3NzJywgJ3J1bnRpbWUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRm9ybVNjb3BlU2VydmljZSwgQ29sbGFwc2libGVTdGF0ZVNlcnZpY2UsIE9yZGVyQnlQaXBlLCBTZWFyY2hGaWx0ZXJQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgUnVudGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBTb2x1dGlvblJlYWR5QXdhcmUge1xuICByZWFkb25seSBtZXNzYWdlQnVja2V0SWQgPSAndWkucnVudGltZSc7XG5cbiAgcHVibGljIHNvcnRlZFNlY3Rpb25zOiBTZWN0aW9uW10gPSBbXTtcbiAgcHVibGljIHN0YXRpY1NlY3Rpb25zOiBTZWN0aW9uW10gPSBbXTtcblxuICBydW50aW1lQ29udGV4dCE6IExlZ2FjeVJ1bnRpbWVDb250ZXh0O1xuICBzb2x1dGlvbkxpbmVJdGVtITogTGluZUl0ZW07XG4gIGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIGFjdGl2ZVVJVGFiPzogVUlUYWI7XG5cbiAgc29sdXRpb25Jc1JlYWR5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpIHByaXZhdGUgcmVhZG9ubHkgc29sdXRpb25VcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWN0aW9uc1NlcnZpY2U6IFNlY3Rpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1TY29wZTogRm9ybVNjb3BlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbGxhcHNpYmxlU3RhdGU6IENvbGxhcHNpYmxlU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNlcnZpY2U6IFJ1bnRpbWVGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBSdW50aW1lU2VydmljZSxcbiAgICBASW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKSBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIG9yZGVyQnlQaXBlOiBPcmRlckJ5UGlwZSxcbiAgICBwcml2YXRlIHNlYXJjaEZpbHRlclBpcGU6IFNlYXJjaEZpbHRlclBpcGUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBhZGp1c3RQcmljZShcbiAgICB2YWx1ZU9wdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHNlY3Rpb246IFNlY3Rpb24sXG4gICAgc29sdXRpb25MaW5lSXRlbTogTGluZUl0ZW0sXG4gICAgcGF0Y2g6IERpY3Rpb25hcnk8UHJpY2VBZGp1c3RtZW50PixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgaWYgKCFwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcyA9IHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcy5tYXAobGluZUl0ZW0gPT4ge1xuICAgICAgY29uc3QgeyBwcm9kdWN0SWQsIGNoYXJnZUl0ZW1zIH0gPSBsaW5lSXRlbTtcblxuICAgICAgaWYgKHByb2R1Y3RJZCAhPT0gdmFsdWVPcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIGxpbmVJdGVtO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaGFyZ2VJdGVtID0gY2hhcmdlSXRlbXMuc2hpZnQoKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRDaGFyZ2VJdGVtID0ge1xuICAgICAgICAuLi5jaGFyZ2VJdGVtLFxuICAgICAgICAuLi5wYXRjaCxcbiAgICAgIH0gYXMgQ2hhcmdlSXRlbTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICAgIGNoYXJnZUl0ZW1zOiBbdXBkYXRlZENoYXJnZUl0ZW0sIC4uLmNoYXJnZUl0ZW1zXSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1TY29wZS5mb3JtU3VibWl0RXZlbnQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZTogVXBkYXRlRGF0YSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgY29uc3Qgc29sdXRpb25MaW5lSXRlbSA9IEVudGl0eVV0aWwuY2xvbmUodGhpcy5zb2x1dGlvbkxpbmVJdGVtKTtcblxuICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5maW5kU2VjdGlvbihlLmlkKTtcblxuICAgICAgICBpZiAoIXNlY3Rpb24pIHtcbiAgICAgICAgICB0aHJvdyAnU2VjdGlvbiBub3QgZm91bmQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBzZWN0aW9uLmJvdW5kRGF0YS5lbnRpdHlUeXBlO1xuXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuUE9SVF0gfHwgZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlRZUEVdKSB7XG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAncGF0Y2gnICYmIEVudGl0eVV0aWwuaXNQcmVzZW50KGUudmFsdWVPcHRpb24pKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZU9wdGlvbjogYW55ID0gZVsndmFsdWVPcHRpb24nXTtcblxuICAgICAgICAgICAgaWYgKCFzZWN0aW9uLm1vZGVsPy5wYXJlbnRJZCkge1xuICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNpYmxlU3RhdGUuY2xlYXJTdGF0ZShzZWN0aW9uLmlkKTtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHZhbHVlT3B0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwucGFyZW50SWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgICAgaWYgKHBhcmVudExpbmVJdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5keCA9IHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBzZWN0aW9uLm1vZGVsPy5pZCk7XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuc3BsaWNlKGluZHgsIDEsIHZhbHVlT3B0aW9uKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2libGVTdGF0ZS5jbGVhclN0YXRlKHNlY3Rpb24uaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuUE9SVF0pIHtcbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICd1cHNlcnQnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgICBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZm9yRWFjaChpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBlLnNlbGVjdGVkVmFsdWVPcHRpb25zICYmXG4gICAgICAgICAgICAgICAgICBlLnNlbGVjdGVkVmFsdWVPcHRpb25zLmZpbmRJbmRleCh2ID0+IHYudG9Mb3dlckNhc2UoKSA9PT0gaS50eXBlLnRvTG93ZXJDYXNlKCkpIDwgMFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBpLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBjb25zdCBsaW5lSXRlbXMgPSBwYXJlbnRMaW5lSXRlbT8ubGluZUl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgICAgICBpID0+XG4gICAgICAgICAgICAgICAgICBlLnNlbGVjdGVkVmFsdWVPcHRpb25zICYmXG4gICAgICAgICAgICAgICAgICBlLnNlbGVjdGVkVmFsdWVPcHRpb25zLmZpbmRJbmRleCh2ID0+IHYudG9Mb3dlckNhc2UoKSA9PT0gaS50eXBlLnRvTG93ZXJDYXNlKCkpID4gLTEsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGUuc2VsZWN0ZWRWYWx1ZU9wdGlvbnM/LmZvckVhY2godiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmVJdGVtcz8uZmluZEluZGV4KGl0ZW0gPT4gaXRlbS50eXBlLnRvTG93ZXJDYXNlKCkgPT09IHYudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuY3JlYXRlTGluZUl0ZW0oc2VjdGlvbiwgdiwgcGFyZW50TGluZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBsaW5lSXRlbSk7XG4gICAgICAgICAgICAgICAgICBsaW5lSXRlbXMucHVzaChsaW5lSXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAnY3JlYXRlJykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50TGluZUl0ZW0pIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVPcHRpb24gPSBlLnZhbHVlT3B0aW9uO1xuICAgICAgICAgICAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuY3JlYXRlTGluZUl0ZW0oc2VjdGlvbiwgdmFsdWVPcHRpb24sIHBhcmVudExpbmVJdGVtKTtcbiAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLnB1c2gobGluZUl0ZW0pO1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50TGluZUl0ZW0sIGxpbmVJdGVtKTtcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAnY29weScpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gc2VjdGlvbi5tb2RlbCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5pZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudExpbmVJdGVtKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlT3B0aW9uID0gZS52YWx1ZU9wdGlvbjtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW1Ub0NvcHkgPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZmluZChsaSA9PiBsaS5pZCA9PT0gdmFsdWVPcHRpb24pO1xuICAgICAgICAgICAgICBpZiAobGluZUl0ZW1Ub0NvcHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lSXRlbTogTGluZUl0ZW0gPSB7IC4uLmxpbmVJdGVtVG9Db3B5LCBpZDogJycgfTtcbiAgICAgICAgICAgICAgICBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMucHVzaChsaW5lSXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBsaW5lSXRlbSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgICAvL0Fzc3VtaW5nIHRoYXQgcmFkaW8gY29udHJvbCBpcyB0aGUgb25seSBjb250cm9sLCB0aGF0ICd1cGRhdGVzJyB2YWx1ZXNcbiAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXMgPSBzZWN0aW9uLm1vZGVsPy5saW5lSXRlbXMuZmlsdGVyKGxpID0+IGxpLnBvcnQgJiYgbGkucG9ydCA9PT0gc2VjdGlvbi5ib3VuZERhdGEubmFtZSlbMF07XG5cbiAgICAgICAgICAgICAgaWYgKHByZXZpb3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBwcmV2aW91cywgMCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcy5maW5kSW5kZXgobGkgPT4gbGkuaWQgPT09IHByZXZpb3VzPy5pZCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW06IExpbmVJdGVtID0ge1xuICAgICAgICAgICAgICAgIGlkOiBVVUlELlVVSUQoKSxcbiAgICAgICAgICAgICAgICBxdHk6IHByZXZpb3VzPy5xdHksXG4gICAgICAgICAgICAgICAgcG9ydDogcHJldmlvdXM/LnBvcnQsXG4gICAgICAgICAgICAgICAgdHlwZTogRW50aXR5VXRpbC5pc1ByZXNlbnQoZS52YWx1ZU9wdGlvbikgPyBlLnZhbHVlT3B0aW9uIDogdGhpcy5mb3JtLmNvbnRyb2xzW2UuaWRdLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNmZ1N0YXR1czogJ05ldycsXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IHByZXZpb3VzPy5wYXJlbnRJZCxcbiAgICAgICAgICAgICAgfSBhcyBMaW5lSXRlbTtcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50TGluZUl0ZW0sIGxpbmVJdGVtKTtcbiAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zW2luZGV4XSA9IGxpbmVJdGVtO1xuXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0gJiZcbiAgICAgICAgICAgICAgU2VjdGlvbnNCaW5kZXJIZWxwZXIuaXNSZW1vdmVBbGxvd2VkKHBhcmVudExpbmVJdGVtLCBzZWN0aW9uLmJvdW5kRGF0YS5uYW1lLCBzZWN0aW9uLm1vZGVsPy5xdHkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS50eXBlLnRvTG93ZXJDYXNlKCkgPT09IGUudmFsdWVPcHRpb24/LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnRMaW5lSXRlbSwgcmVtb3ZlZCwgMCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAncXR5VXBkYXRlJykge1xuICAgICAgICAgICAgY29uc3QgdHlwZVNlY3Rpb24gPSBlLnZhbHVlT3B0aW9uXG4gICAgICAgICAgICAgID8gU2VjdGlvbkhlbHBlclNlcnZpY2UuZmluZFNlY3Rpb25Gb3JWYWx1ZShzZWN0aW9uLCBlLnZhbHVlT3B0aW9uKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgY29uc3QgdHlwZUxpbmVJdGVtID0gdHlwZVNlY3Rpb24/Lm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZCh0eXBlU2VjdGlvbi5tb2RlbC5pZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcbiAgICAgICAgICAgIGlmICh0eXBlU2VjdGlvbiAmJiB0eXBlTGluZUl0ZW0pIHtcbiAgICAgICAgICAgICAgdHlwZUxpbmVJdGVtLnF0eSA9ICt0aGlzLmZvcm0uY29udHJvbHNbdHlwZVNlY3Rpb24uaWQgKyAncXR5J10udmFsdWU7XG4gICAgICAgICAgICAgIHR5cGVMaW5lSXRlbS5jZmdTdGF0dXMgPSAnVXNlcic7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICdhZGp1c3ROZXRQcmljZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmFsdWVPcHRpb24sIG9wdGlvbnMgfSA9IGU7XG4gICAgICAgICAgICBjb25zdCB7IGFtb3VudCB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgICAgICAgICAgY29uc3QgcHJpY2VBZGp1c3RtZW50OiBQcmljZUFkanVzdG1lbnQgPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdPVkVSUklERV9BTU9VTlQnLFxuICAgICAgICAgICAgICBleHBsYW5hdGlvbjogJ01hbnVhbCBuZXQgcHJpY2UgYWRqdXN0bWVudCcsXG4gICAgICAgICAgICAgIGFtb3VudCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWRqdXN0UHJpY2UodmFsdWVPcHRpb24sIHNlY3Rpb24sIHNvbHV0aW9uTGluZUl0ZW0sIHsgcHJpY2VBZGp1c3RtZW50IH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ2FkanVzdExpc3RQcmljZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmFsdWVPcHRpb24sIG9wdGlvbnMgfSA9IGU7XG4gICAgICAgICAgICBjb25zdCB7IGFtb3VudCB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgICAgICAgICAgY29uc3QgbGlzdFByaWNlQWRqdXN0bWVudDogUHJpY2VBZGp1c3RtZW50ID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnT1ZFUlJJREVfQU1PVU5UJyxcbiAgICAgICAgICAgICAgZXhwbGFuYXRpb246ICdNYW51YWwgbGlzdCBwcmljZSBhZGp1c3RtZW50JyxcbiAgICAgICAgICAgICAgYW1vdW50LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5hZGp1c3RQcmljZSh2YWx1ZU9wdGlvbiwgc2VjdGlvbiwgc29sdXRpb25MaW5lSXRlbSwgeyBsaXN0UHJpY2VBZGp1c3RtZW50IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuVFlQRV0pIHtcbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9XG4gICAgICAgICAgICAgIHNlY3Rpb24ubW9kZWw/LnBhcmVudElkICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLnBhcmVudElkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHBhcmVudExpbmVJdGVtICYmXG4gICAgICAgICAgICAgIHNlY3Rpb24ubW9kZWwgJiZcbiAgICAgICAgICAgICAgc2VjdGlvbi5tb2RlbC5wb3J0ICYmXG4gICAgICAgICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmlzUmVtb3ZlQWxsb3dlZChwYXJlbnRMaW5lSXRlbSwgc2VjdGlvbi5tb2RlbC5wb3J0LCBzZWN0aW9uLm1vZGVsPy5xdHkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gc2VjdGlvbi5tb2RlbD8uaWQpO1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuc3BsaWNlKGluZGV4LCAxKVswXTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50TGluZUl0ZW0sIHJlbW92ZWQsIDApO1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2libGVTdGF0ZS5jbGVhclN0YXRlKHNlY3Rpb24uaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ3F0eVVwZGF0ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgIGlmICh0eXBlTGluZUl0ZW0pIHtcbiAgICAgICAgICAgICAgY29uc3QgcXR5ID0gK3RoaXMuZm9ybS5jb250cm9sc1tlLmlkICsgJ3F0eSddLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAodHlwZUxpbmVJdGVtLnBhcmVudElkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBMaW5lSXRlbVV0aWwuZmluZEJ5SWQodHlwZUxpbmVJdGVtLnBhcmVudElkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudExpbmVJdGVtKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50TGluZUl0ZW0sIHR5cGVMaW5lSXRlbSwgcXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdHlwZUxpbmVJdGVtLnF0eSA9IHF0eTtcbiAgICAgICAgICAgICAgdHlwZUxpbmVJdGVtLmNmZ1N0YXR1cyA9ICdVc2VyJztcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSBCb3VuZERhdGFUeXBlW0JvdW5kRGF0YVR5cGUuQVRUUklCVVRFXSkge1xuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gc2VjdGlvbi5tb2RlbCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5pZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IHBhcmVudExpbmVJdGVtPy5hdHRyaWJ1dGVzLmZpbmQoXG4gICAgICAgICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgLy9FeHBsaWNpdGx5IHNldCB2YWx1ZSBhbHdheXMgd2luXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHR5cGVvZiBlLnZhbHVlT3B0aW9uICE9PSAndW5kZWZpbmVkJyA/IGUudmFsdWVPcHRpb24gOiB0aGlzLmZvcm0uY29udHJvbHNbZS5pZF0udmFsdWU7XG5cbiAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZS50eXBlID09PSAnQk9PTEVBTicpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gMSA6IDA7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBhdHRyaWJ1dGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgYXR0cmlidXRlLmNmZ1N0YXR1cyA9ICdVc2VyJztcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogdGhpcy5tZXNzYWdlQnVja2V0SWQsIHN1bW1hcnk6IGBDb25maWd1cmF0aW9uIGZhaWxlZCAkeyhlIGFzIGFueSk/Lm1lc3NhZ2V9YCB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblJlYWR5RXZlbnRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUobGluZUl0ZW0gPT4gdGhpcy5vblNvbHV0aW9uUmVhZHkobGluZUl0ZW0pKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblVwZGF0ZWRFdmVudFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogTGluZUl0ZW0gfCBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoIShkYXRhIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlU29sdXRpb25VcGRhdGUoZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhhbmRsZVNvbHV0aW9uRmFpbGVkVXBkYXRlKGRhdGEpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uVUlSZWZyZXNoRXZlbnQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB7IHVpRGVmaW5pdGlvbiB9ID0gdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpID8/IHt9O1xuICAgICAgdGhpcy5ydW50aW1lQ29udGV4dC51aURlZmluaXRpb24gPSB1aURlZmluaXRpb24gYXMgYW55O1xuICAgICAgdGhpcy5mb3JtU2NvcGUuc2NyaXB0U2Vzc2lvblNjb3BlID0ge307XG4gICAgICB0aGlzLnN0YXJ0UnVudGltZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25Tb2x1dGlvblJlYWR5KGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmdldFJ1bnRpbWVDb250ZXh0KCkgYXMgTGVnYWN5UnVudGltZUNvbnRleHQ7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbkNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IG1lcmdlQ29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQgPSB7XG4gICAgICAuLi5jb250ZXh0LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5jb250ZXh0LnByb3BlcnRpZXMsXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb25Db250ZXh0LnByb3BlcnRpZXMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBhY2NvdW50SWQgPSBtZXJnZUNvbnRleHQucHJvcGVydGllcz8uQWNjb3VudElkO1xuICAgIGlmIChhY2NvdW50SWQgJiYgYWNjb3VudElkLmxlbmd0aCA9PT0gMTUpIHtcbiAgICAgIHRoaXMucnVudGltZUNvbnRleHQgPSB7XG4gICAgICAgIC4uLm1lcmdlQ29udGV4dCxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIC4uLm1lcmdlQ29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgICAgIEFjY291bnRJZDogU2FsZXNmb3JjZUlkVXRpbHMuZ2VuZXJhdGVJZDE4RnJvbUlkMTUoYWNjb3VudElkKSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgYW55O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJ1bnRpbWVDb250ZXh0ID0gbWVyZ2VDb250ZXh0IGFzIGFueTtcbiAgICB9XG5cbiAgICB0aGlzLnNvbHV0aW9uTGluZUl0ZW0gPSBsaW5lSXRlbTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnNldFJ1bnRpbWVDb250ZXh0KHRoaXMucnVudGltZUNvbnRleHQpO1xuXG4gICAgdGhpcy5zdGFydFJ1bnRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU29sdXRpb25VcGRhdGUodXBkYXRlZExpbmVJdGVtOiBMaW5lSXRlbSkge1xuICAgIHRoaXMuc29sdXRpb25MaW5lSXRlbSA9IHVwZGF0ZWRMaW5lSXRlbTtcbiAgICB0aGlzLnByb2Nlc3NTb2x1dGlvbih0cnVlKTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnNvbHV0aW9uUHJvY2Vzc2VkKHRoaXMuc29sdXRpb25MaW5lSXRlbSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTb2x1dGlvbkZhaWxlZFVwZGF0ZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNFcnJvck1lc3NhZ2UgPSBFbnRpdHlVdGlsLmlzUHJlc2VudChlcnJvci5lcnJvcikgJiYgRW50aXR5VXRpbC5pc1ByZXNlbnQoZXJyb3IuZXJyb3IubWVzc2FnZSk7XG4gICAgY29uc3QgbWVzc2FnZSA9IGhhc0Vycm9yTWVzc2FnZSA/IGVycm9yLmVycm9yLm1lc3NhZ2UgOiAnQ29uZmlndXJhdGlvbiBmYWlsZWQnO1xuICAgIGNvbnN0IHsgaXNIYW5kbGluZ0NvbmZpZ3VyYXRpb25FcnJvcnMgfSA9IHRoaXMucnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uID8/IHt9O1xuXG4gICAgaWYgKGlzSGFuZGxpbmdDb25maWd1cmF0aW9uRXJyb3JzKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogdGhpcy5tZXNzYWdlQnVja2V0SWQsIHN1bW1hcnk6IG1lc3NhZ2UgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb2x1dGlvbkxpbmVJdGVtID0ge1xuICAgICAgLi4udGhpcy5zb2x1dGlvbkxpbmVJdGVtLFxuICAgICAgbWVzc2FnZXM6IFsuLi50aGlzLnNvbHV0aW9uTGluZUl0ZW0ubWVzc2FnZXMsIGBFOiR7bWVzc2FnZX1gXSxcbiAgICB9O1xuICAgIHRoaXMucHJvY2Vzc1NvbHV0aW9uKHRydWUsIHRydWUpO1xuICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc29sdXRpb25Qcm9jZXNzZWQodGhpcy5zb2x1dGlvbkxpbmVJdGVtKTtcblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnQ6IExpbmVJdGVtLCB1cGRhdGVkOiBMaW5lSXRlbSwgbmV3UXVhbnRpdHk/OiBudW1iZXIpIHtcbiAgICBjb25zdCBwb3J0RG9tYWluID0gdXBkYXRlZC5wb3J0ID8gcGFyZW50LnBvcnREb21haW5zW3VwZGF0ZWQucG9ydF0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZG9tYWluVHlwZSA9IHBvcnREb21haW4/LmRvbWFpblR5cGVzLmZpbmQodCA9PiB0Lm5hbWUgPT09IHVwZGF0ZWQudHlwZSk7XG4gICAgY29uc3QgY2FyZGluYWxpdHkgPSBkb21haW5UeXBlPy5jYXJkaW5hbGl0eSA/PyAwO1xuXG4gICAgbGV0IHF0eTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShkb21haW5UeXBlPy5jYXJkaW5hbGl0eSkpIHtcbiAgICAgIHF0eSA9IE51bWJlci5pc0Zpbml0ZShuZXdRdWFudGl0eSkgPyBuZXdRdWFudGl0eSA6IHVwZGF0ZWQucXR5O1xuICAgIH0gZWxzZSB7XG4gICAgICBxdHkgPSBFbnRpdHlVdGlsLmlzUHJlc2VudChuZXdRdWFudGl0eSlcbiAgICAgICAgPyBjYXJkaW5hbGl0eSAtIHVwZGF0ZWQucXR5ICsgKG5ld1F1YW50aXR5IGFzIG51bWJlcilcbiAgICAgICAgOiBjYXJkaW5hbGl0eSArIHVwZGF0ZWQucXR5O1xuICAgIH1cblxuICAgIGNvbnN0IGNhcmRpbmFsaXR5TmFtZSA9ICcjQ1YtJyArIHVwZGF0ZWQudHlwZSArICdAJyArIHVwZGF0ZWQucG9ydDtcblxuICAgIGxldCBjYXJkaW5hbGl0eVZhcmlhYmxlID0gcGFyZW50LmF0dHJpYnV0ZXMuZmluZChhID0+IGEubmFtZSA9PT0gY2FyZGluYWxpdHlOYW1lKTtcbiAgICBpZiAoIWNhcmRpbmFsaXR5VmFyaWFibGUpIHtcbiAgICAgIGNhcmRpbmFsaXR5VmFyaWFibGUgPSB7XG4gICAgICAgIGlkOiBVVUlELlVVSUQoKSxcbiAgICAgICAgbmFtZTogY2FyZGluYWxpdHlOYW1lLFxuICAgICAgfSBhcyBBdHRyaWJ1dGU7XG4gICAgICBwYXJlbnQuYXR0cmlidXRlcy5wdXNoKGNhcmRpbmFsaXR5VmFyaWFibGUpO1xuICAgIH1cbiAgICBjYXJkaW5hbGl0eVZhcmlhYmxlLnZhbHVlID0gcXR5O1xuICAgIGNhcmRpbmFsaXR5VmFyaWFibGUuY2ZnU3RhdHVzID0gJ1VzZXInO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMaW5lSXRlbShzZWN0aW9uOiBTZWN0aW9uLCB2YWx1ZU9wdGlvbj86IHN0cmluZywgcGFyZW50TGluZUl0ZW0/OiBMaW5lSXRlbSk6IExpbmVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXR5OiArdGhpcy5mb3JtLmNvbnRyb2xzW3NlY3Rpb24uaWQgKyAncXR5J10udmFsdWUsXG4gICAgICBwb3J0OiBzZWN0aW9uLmJvdW5kRGF0YS5uYW1lLFxuICAgICAgdHlwZTogRW50aXR5VXRpbC5pc1ByZXNlbnQodmFsdWVPcHRpb24pID8gdmFsdWVPcHRpb24gOiB0aGlzLmZvcm0uY29udHJvbHNbc2VjdGlvbi5pZF0udmFsdWUsXG4gICAgICBjZmdTdGF0dXM6ICdOZXcnLFxuICAgICAgcGFyZW50SWQ6IHBhcmVudExpbmVJdGVtPy5pZCxcbiAgICB9IGFzIExpbmVJdGVtO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XG5cbiAgICB0aGlzLnNlY3Rpb25zU2VydmljZS5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UnVudGltZSgpIHtcbiAgICBjb25zdCB1aURlZmluaXRpb24gPSB0aGlzLnJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbjtcblxuICAgIGNvbnN0IGRlZmF1bHRUYWIgPSB1aURlZmluaXRpb24/LnRhYnM/LmZpbmQodGFiID0+IHRhYi5pc0RlZmF1bHQpO1xuICAgIHRoaXMuYWN0aXZlVUlUYWIgPSBFbnRpdHlVdGlsLmlzUHJlc2VudChkZWZhdWx0VGFiKSA/IGRlZmF1bHRUYWIgOiB1aURlZmluaXRpb24/LnRhYnM/LlswXTtcblxuICAgIHRoaXMuc2VjdGlvbnNTZXJ2aWNlLmNvbXBpbGVNb2R1bGUodWlEZWZpbml0aW9uPy5zZWN0aW9ucyA/PyBbXSwgdWlEZWZpbml0aW9uPy5pc1ZpZXdFbmNhcHN1bGF0ZWQpO1xuXG4gICAgdGhpcy5wcm9jZXNzU29sdXRpb24oKTtcblxuICAgIHRoaXMuc29sdXRpb25Jc1JlYWR5ID0gdHJ1ZTtcblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUnVudGltZShsaW5lSXRlbTogTGluZUl0ZW0pIHtcbiAgICB0aGlzLnNvbHV0aW9uVXBkYXRlZC5lbWl0KGxpbmVJdGVtKTtcbiAgfVxuXG4gIGFkZFRvQ2FydCgpIHtcbiAgICBjb25zdCBsaW5lSXRlbSA9IEVudGl0eVV0aWwuY2xvbmUodGhpcy5zb2x1dGlvbkxpbmVJdGVtKTtcblxuICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RvcFJ1bnRpbWUobGluZUl0ZW0pO1xuICB9XG5cbiAgcHJvY2Vzc1NvbHV0aW9uKGlzVXBkYXRlPzogYm9vbGVhbiwgaXNFcnJvcj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLzEuIEJpbmQgc2VjdGlvbnMgdG8gc29sdXRpb25cbiAgICBsZXQgc2VjdGlvbnMgPSBFbnRpdHlVdGlsLmNsb25lKHRoaXMucnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5zZWN0aW9ucykgPz8gW107XG4gICAgY29uc3Qgc291cmNlU2VjdGlvbnMgPSBFbnRpdHlVdGlsLmNsb25lKHRoaXMucnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5zZWN0aW9ucykgPz8gW107XG4gICAgdGhpcy51cGRhdGVMaW5lSXRlbXNTZWN0aW9uUGF0aCh0aGlzLnNvbHV0aW9uTGluZUl0ZW0pO1xuICAgIFNlY3Rpb25zQmluZGVySGVscGVyLnNldExpbmVJdGVtc1BhdGgoXG4gICAgICB0aGlzLnJ1bnRpbWVDb250ZXh0LnJ1bnRpbWVNb2RlbCxcbiAgICAgIHRoaXMuc29sdXRpb25MaW5lSXRlbSxcbiAgICAgIHNlY3Rpb25zLFxuICAgICAgc291cmNlU2VjdGlvbnMsXG4gICAgICAoc2VjOiBhbnkpID0+ICFzZWMucGFyZW50SWQgJiYgc2VjLmJvdW5kRGF0YSxcbiAgICAgIHRoaXMucnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5wcmljaW5nRW5hYmxlZCA/PyBmYWxzZSxcbiAgICApO1xuXG4gICAgc2VjdGlvbnMgPSBzZWN0aW9ucy5maWx0ZXIocyA9PiBzLm1vZGVsICYmIHMudGVtcGxhdGUpO1xuXG4gICAgLy8yLiBJbml0IGZvcm1cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmluaXRGb3JtKHNlY3Rpb25zLCB0aGlzLnNvbHV0aW9uTGluZUl0ZW0pO1xuICAgIHRoaXMuZm9ybVNjb3BlLmZvcm0gPSB0aGlzLmZvcm07XG5cbiAgICB0aGlzLnNvcnRlZFNlY3Rpb25zID0gdGhpcy5maWx0ZXJBbmRTb3J0KGdldFNlY3Rpb25UcmVlKHNlY3Rpb25zLmZpbHRlcihzID0+ICFzLmlzU3RhdGljKSkpO1xuXG4gICAgaWYgKCFpc1VwZGF0ZSkge1xuICAgICAgdGhpcy5zdGF0aWNTZWN0aW9ucyA9IHRoaXMuZmlsdGVyQW5kU29ydChnZXRTZWN0aW9uVHJlZShzZWN0aW9ucy5maWx0ZXIocyA9PiBzLmlzU3RhdGljKSkpO1xuICAgIH1cblxuICAgIGlmICghaXNFcnJvcikge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5jbGVhcih0aGlzLm1lc3NhZ2VCdWNrZXRJZCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMucnVudGltZVNlcnZpY2UuY2FuY2VsUnVudGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMaW5lSXRlbXNTZWN0aW9uUGF0aChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudD86IFNlY3Rpb25QYXRoKSB7XG4gICAgY29uc3QgcGF0aDogU2VjdGlvblBhdGggPSB7XG4gICAgICB0eXBlczogcGFyZW50ID8gcGFyZW50LnR5cGVzLmNvbmNhdChbbGluZUl0ZW0udHlwZV0pIDogW2xpbmVJdGVtLnR5cGVdLFxuICAgICAgcG9ydHM6IHBhcmVudCA/IHBhcmVudC5wb3J0cy5jb25jYXQobGluZUl0ZW0ucG9ydCA/IFtsaW5lSXRlbS5wb3J0XSA6IFtdKSA6IFtdLFxuICAgIH0gYXMgU2VjdGlvblBhdGg7XG5cbiAgICBsaW5lSXRlbS5wYXRoID0gcGF0aDtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgbGluZUl0ZW0ubGluZUl0ZW1zKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxpbmVJdGVtc1NlY3Rpb25QYXRoKGNoaWxkLCBsaW5lSXRlbS5wYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckFuZFNvcnQoc2VjdGlvbnM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLnNlYXJjaEZpbHRlclBpcGUudHJhbnNmb3JtKHNlY3Rpb25zLCB0aGlzLmFjdGl2ZVVJVGFiPy5pZCwgJ3BhZ2UnKTtcbiAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5vcmRlckJ5UGlwZS50cmFuc2Zvcm0oZmlsdGVyZWQsICdvcmRlcicsICdhc2MnKTtcblxuICAgIHJldHVybiBvcmRlcmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU2VjdGlvbihpZDogc3RyaW5nKTogU2VjdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWwuZmluZEJ5RmllbGRIaWVyYXJjaGljYWxseSgnaWQnLCBpZCwgWy4uLnRoaXMuc29ydGVkU2VjdGlvbnMsIC4uLnRoaXMuc3RhdGljU2VjdGlvbnNdLCAnY2hpbGRyZW4nKTtcbiAgfVxufVxuIiwiPHZsLWxvYWRlciBsYWJlbD1cIkxvYWRpbmcgVUlcIiAqbmdJZj1cIiFzb2x1dGlvbklzUmVhZHk7IGVsc2UgY29udGVudFwiPjwvdmwtbG9hZGVyPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNpZGViYXItdGFic1wiXG4gICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFydW50aW1lQ29udGV4dD8udWlEZWZpbml0aW9uPy5kZWZhdWx0UGFuZWxzIH1cIlxuICAgICN1aVRhYnM9XCJzaWRlYmFyVGFic1wiXG4gICAgc2lkZWJhclRhYnM9XCJ7eyBhY3RpdmVVSVRhYj8uaWQgfX1cIlxuICAgIGlkPVwidmwtZGVmYXVsdC1zaWRlYmFyLXRhYnNcIlxuICA+XG4gICAgPHVsPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgcnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbj8udGFicyB8IG9yZGVyQnk6ICdvcmRlcic6J2FzYydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdWlUYWJzLmFjdGl2ZVRhYiA9PT0gdGFiLmlkIH1cIlxuICAgICAgICAoY2xpY2spPVwidWlUYWJzLnN3aXRjaFRhYih0YWIuaWQpXCJcbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIj57eyB0YWIubmFtZSB9fTwvYT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLXdyYXBwZXJcIj5cbiAgICA8Zm9ybSByb2xlPVwiZm9ybVwiIG5hbWU9XCJmb3JtXCIgY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBub3ZhbGlkYXRlIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzdGF0aWNTZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VjdGlvbi5tb2RlbCAmJiBzZWN0aW9uLnRlbXBsYXRlICYmICFzZWN0aW9uLmhpZGRlblwiPlxuICAgICAgICAgIDx2bC1zZWN0aW9uLXJlbmRlcmVyIFtzZWN0aW9uXT1cInNlY3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+PC92bC1zZWN0aW9uLXJlbmRlcmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNvcnRlZFNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWN0aW9uLm1vZGVsICYmIHNlY3Rpb24udGVtcGxhdGUgJiYgIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgICAgICAgPHZsLXNlY3Rpb24tcmVuZGVyZXIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmb3JtXT1cImZvcm1cIj48L3ZsLXNlY3Rpb24tcmVuZGVyZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtb2RhbC1mb290ZXJcIlxuICAgICAgKm5nSWY9XCJydW50aW1lQ29udGV4dD8ucnVudGltZU1vZGUgPT09IDFcIlxuICAgICAgaWQ9XCJ2bC1ydW50aW1lLWRlZmF1bHQtZm9vdGVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAhcnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbj8uZGVmYXVsdFBhbmVscyB9XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGlucHV0LWZvcm0taW5wdXRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIChjbGljayk9XCJmb3JtLnZhbGlkICYmIGFkZFRvQ2FydCgpXCIgaWQ9XCJhZGQtdG8tY2FydC1idG5cIlxuICAgICAgICAgID5BZGQgdG8gY2FydDwvYVxuICAgICAgICA+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiAoY2xpY2spPVwiaGlkZU1vZGFsKClcIiBpZD1cImNhbmNlbC1idG5cIj5DYW5jZWw8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
427
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2NvbXBvbmVudHMvdWktcnVudGltZS9ydW50aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lL3J1bnRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBR0wsVUFBVSxFQUVWLFdBQVcsRUFFWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBSWhCLElBQUksR0FDTCxNQUFNLGNBQWMsQ0FBQztBQUd0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FB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LGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQywwQkN2Q3ZGLDZvRUF5REE7NEZEaEJhLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNuQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQztvQkFDckUsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDO2lCQUN0Rjs7MEJBeUJJLE1BQU07MkJBQUMsY0FBYztrS0FSRyxlQUFlO3NCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBDaGFyZ2VJdGVtLFxuICBFbnRpdHlVdGlsLFxuICBMaW5lSXRlbSxcbiAgT3JkZXJCeVBpcGUsXG4gIFByaWNlQWRqdXN0bWVudCxcbiAgU2FsZXNmb3JjZUlkVXRpbHMsXG4gIFNlYXJjaEZpbHRlclBpcGUsXG4gIFNlY3Rpb24sXG4gIFNlY3Rpb25QYXRoLFxuICBVSVRhYixcbiAgVVVJRCxcbn0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29sbGFwc2libGVTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb2xsYXBzaWJsZS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnVudGltZUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VjdGlvbkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMZWdhY3lSdW50aW1lQ29udGV4dCwgU29sdXRpb25SZWFkeUF3YXJlLCBVcGRhdGVEYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQm91bmREYXRhVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL2JvdW5kLWRhdGEudHlwZXMnO1xuaW1wb3J0IHsgTGluZUl0ZW1VdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGluZS1pdGVtLnV0aWwnO1xuaW1wb3J0IHsgZ2V0U2VjdGlvblRyZWUgfSBmcm9tICcuLi8uLi91dGlscy9zZWN0aW9uLnV0aWxzJztcbmltcG9ydCB7IFNlY3Rpb25zQmluZGVySGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VjdGlvbnMtYmluZGVyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLXJ1bnRpbWUnLFxuICBtb2R1bGVJZDogbW9kdWxlLmlkLFxuICB0ZW1wbGF0ZVVybDogJ3J1bnRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ydW50aW1lLWxlZ2FjeS1zdHlsZXMuc2NzcycsICdydW50aW1lLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0Zvcm1TY29wZVNlcnZpY2UsIENvbGxhcHNpYmxlU3RhdGVTZXJ2aWNlLCBPcmRlckJ5UGlwZSwgU2VhcmNoRmlsdGVyUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgU29sdXRpb25SZWFkeUF3YXJlIHtcbiAgcmVhZG9ubHkgbWVzc2FnZUJ1Y2tldElkID0gJ3VpLnJ1bnRpbWUnO1xuXG4gIHB1YmxpYyBzb3J0ZWRTZWN0aW9uczogU2VjdGlvbltdID0gW107XG4gIHB1YmxpYyBzdGF0aWNTZWN0aW9uczogU2VjdGlvbltdID0gW107XG5cbiAgcnVudGltZUNvbnRleHQhOiBMZWdhY3lSdW50aW1lQ29udGV4dDtcbiAgc29sdXRpb25MaW5lSXRlbSE6IExpbmVJdGVtO1xuICBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBhY3RpdmVVSVRhYj86IFVJVGFiO1xuXG4gIHNvbHV0aW9uSXNSZWFkeSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKSBwcml2YXRlIHJlYWRvbmx5IHNvbHV0aW9uVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VjdGlvbnNTZXJ2aWNlOiBTZWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2xsYXBzaWJsZVN0YXRlOiBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1TZXJ2aWNlOiBSdW50aW1lRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgQEluamVjdChNZXNzYWdlU2VydmljZSkgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvcmRlckJ5UGlwZTogT3JkZXJCeVBpcGUsXG4gICAgcHJpdmF0ZSBzZWFyY2hGaWx0ZXJQaXBlOiBTZWFyY2hGaWx0ZXJQaXBlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHByaXZhdGUgYWRqdXN0UHJpY2UoXG4gICAgdmFsdWVPcHRpb246IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBzZWN0aW9uOiBTZWN0aW9uLFxuICAgIHNvbHV0aW9uTGluZUl0ZW06IExpbmVJdGVtLFxuICAgIHBhdGNoOiBEaWN0aW9uYXJ5PFByaWNlQWRqdXN0bWVudD4sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gc2VjdGlvbi5tb2RlbCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5pZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcblxuICAgIGlmICghcGFyZW50TGluZUl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMgPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMubWFwKGxpbmVJdGVtID0+IHtcbiAgICAgIGNvbnN0IHsgcHJvZHVjdElkLCBjaGFyZ2VJdGVtcyB9ID0gbGluZUl0ZW07XG5cbiAgICAgIGlmIChwcm9kdWN0SWQgIT09IHZhbHVlT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBsaW5lSXRlbTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hhcmdlSXRlbSA9IGNoYXJnZUl0ZW1zLnNoaWZ0KCk7XG4gICAgICBjb25zdCB1cGRhdGVkQ2hhcmdlSXRlbSA9IHtcbiAgICAgICAgLi4uY2hhcmdlSXRlbSxcbiAgICAgICAgLi4ucGF0Y2gsXG4gICAgICB9IGFzIENoYXJnZUl0ZW07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmxpbmVJdGVtLFxuICAgICAgICBjaGFyZ2VJdGVtczogW3VwZGF0ZWRDaGFyZ2VJdGVtLCAuLi5jaGFyZ2VJdGVtc10sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtU2NvcGUuZm9ybVN1Ym1pdEV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKGU6IFVwZGF0ZURhdGEpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIGNvbnN0IHNvbHV0aW9uTGluZUl0ZW0gPSBFbnRpdHlVdGlsLmNsb25lKHRoaXMuc29sdXRpb25MaW5lSXRlbSk7XG5cbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuZmluZFNlY3Rpb24oZS5pZCk7XG5cbiAgICAgICAgaWYgKCFzZWN0aW9uKSB7XG4gICAgICAgICAgdGhyb3cgJ1NlY3Rpb24gbm90IGZvdW5kJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbnRpdHlUeXBlID0gc2VjdGlvbi5ib3VuZERhdGEuZW50aXR5VHlwZTtcblxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlBPUlRdIHx8IGVudGl0eVR5cGUgPT09IEJvdW5kRGF0YVR5cGVbQm91bmREYXRhVHlwZS5UWVBFXSkge1xuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ3BhdGNoJyAmJiBFbnRpdHlVdGlsLmlzUHJlc2VudChlLnZhbHVlT3B0aW9uKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVPcHRpb246IGFueSA9IGVbJ3ZhbHVlT3B0aW9uJ107XG5cbiAgICAgICAgICAgIGlmICghc2VjdGlvbi5tb2RlbD8ucGFyZW50SWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzaWJsZVN0YXRlLmNsZWFyU3RhdGUoc2VjdGlvbi5pZCk7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZSh2YWx1ZU9wdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLnBhcmVudElkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICAgIGlmIChwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZHggPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gc2VjdGlvbi5tb2RlbD8uaWQpO1xuXG4gICAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLnNwbGljZShpbmR4LCAxLCB2YWx1ZU9wdGlvbik7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNpYmxlU3RhdGUuY2xlYXJTdGF0ZShzZWN0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlBPUlRdKSB7XG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAndXBzZXJ0Jykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50TGluZUl0ZW0pIHtcbiAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZS5zZWxlY3RlZFZhbHVlT3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgICAgZS5zZWxlY3RlZFZhbHVlT3B0aW9ucy5maW5kSW5kZXgodiA9PiB2LnRvTG93ZXJDYXNlKCkgPT09IGkudHlwZS50b0xvd2VyQ2FzZSgpKSA8IDBcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnRMaW5lSXRlbSwgaSwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW1zID0gcGFyZW50TGluZUl0ZW0/LmxpbmVJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgaSA9PlxuICAgICAgICAgICAgICAgICAgZS5zZWxlY3RlZFZhbHVlT3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgICAgZS5zZWxlY3RlZFZhbHVlT3B0aW9ucy5maW5kSW5kZXgodiA9PiB2LnRvTG93ZXJDYXNlKCkgPT09IGkudHlwZS50b0xvd2VyQ2FzZSgpKSA+IC0xLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlLnNlbGVjdGVkVmFsdWVPcHRpb25zPy5mb3JFYWNoKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChsaW5lSXRlbXM/LmZpbmRJbmRleChpdGVtID0+IGl0ZW0udHlwZS50b0xvd2VyQ2FzZSgpID09PSB2LnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNyZWF0ZUxpbmVJdGVtKHNlY3Rpb24sIHYsIHBhcmVudExpbmVJdGVtKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnRMaW5lSXRlbSwgbGluZUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgbGluZUl0ZW1zLnB1c2gobGluZUl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gc2VjdGlvbi5tb2RlbCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5pZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudExpbmVJdGVtKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlT3B0aW9uID0gZS52YWx1ZU9wdGlvbjtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNyZWF0ZUxpbmVJdGVtKHNlY3Rpb24sIHZhbHVlT3B0aW9uLCBwYXJlbnRMaW5lSXRlbSk7XG4gICAgICAgICAgICAgIHBhcmVudExpbmVJdGVtLmxpbmVJdGVtcy5wdXNoKGxpbmVJdGVtKTtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBsaW5lSXRlbSk7XG5cbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ2NvcHknKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZU9wdGlvbiA9IGUudmFsdWVPcHRpb247XG4gICAgICAgICAgICAgIGNvbnN0IGxpbmVJdGVtVG9Db3B5ID0gcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLmZpbmQobGkgPT4gbGkuaWQgPT09IHZhbHVlT3B0aW9uKTtcbiAgICAgICAgICAgICAgaWYgKGxpbmVJdGVtVG9Db3B5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZUl0ZW06IExpbmVJdGVtID0geyAuLi5saW5lSXRlbVRvQ29weSwgaWQ6ICcnIH07XG4gICAgICAgICAgICAgICAgcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLnB1c2gobGluZUl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnRMaW5lSXRlbSwgbGluZUl0ZW0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50TGluZUl0ZW0pIHtcbiAgICAgICAgICAgICAgLy9Bc3N1bWluZyB0aGF0IHJhZGlvIGNvbnRyb2wgaXMgdGhlIG9ubHkgY29udHJvbCwgdGhhdCAndXBkYXRlcycgdmFsdWVzXG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gc2VjdGlvbi5tb2RlbD8ubGluZUl0ZW1zLmZpbHRlcihsaSA9PiBsaS5wb3J0ICYmIGxpLnBvcnQgPT09IHNlY3Rpb24uYm91bmREYXRhLm5hbWUpWzBdO1xuXG4gICAgICAgICAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FyZGluYWxpdHlWYXJpYWJsZShwYXJlbnRMaW5lSXRlbSwgcHJldmlvdXMsIDApO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuZmluZEluZGV4KGxpID0+IGxpLmlkID09PSBwcmV2aW91cz8uaWQpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGxpbmVJdGVtOiBMaW5lSXRlbSA9IHtcbiAgICAgICAgICAgICAgICBpZDogVVVJRC5VVUlEKCksXG4gICAgICAgICAgICAgICAgcXR5OiBwcmV2aW91cz8ucXR5LFxuICAgICAgICAgICAgICAgIHBvcnQ6IHByZXZpb3VzPy5wb3J0LFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudGl0eVV0aWwuaXNQcmVzZW50KGUudmFsdWVPcHRpb24pID8gZS52YWx1ZU9wdGlvbiA6IHRoaXMuZm9ybS5jb250cm9sc1tlLmlkXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBjZmdTdGF0dXM6ICdOZXcnLFxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBwcmV2aW91cz8ucGFyZW50SWQsXG4gICAgICAgICAgICAgIH0gYXMgTGluZUl0ZW07XG5cbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCBsaW5lSXRlbSk7XG4gICAgICAgICAgICAgIHBhcmVudExpbmVJdGVtLmxpbmVJdGVtc1tpbmRleF0gPSBsaW5lSXRlbTtcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHBhcmVudExpbmVJdGVtICYmXG4gICAgICAgICAgICAgIFNlY3Rpb25zQmluZGVySGVscGVyLmlzUmVtb3ZlQWxsb3dlZChwYXJlbnRMaW5lSXRlbSwgc2VjdGlvbi5ib3VuZERhdGEubmFtZSwgc2VjdGlvbi5tb2RlbD8ucXR5KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICBpdGVtID0+IGl0ZW0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBlLnZhbHVlT3B0aW9uPy50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBwYXJlbnRMaW5lSXRlbS5saW5lSXRlbXMuc3BsaWNlKGluZGV4LCAxKVswXTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50TGluZUl0ZW0sIHJlbW92ZWQsIDApO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlLmFjdGlvbiA9PT0gJ3F0eVVwZGF0ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVTZWN0aW9uID0gZS52YWx1ZU9wdGlvblxuICAgICAgICAgICAgICA/IFNlY3Rpb25IZWxwZXJTZXJ2aWNlLmZpbmRTZWN0aW9uRm9yVmFsdWUoc2VjdGlvbiwgZS52YWx1ZU9wdGlvbilcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IHR5cGVMaW5lSXRlbSA9IHR5cGVTZWN0aW9uPy5tb2RlbCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQodHlwZVNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG4gICAgICAgICAgICBpZiAodHlwZVNlY3Rpb24gJiYgdHlwZUxpbmVJdGVtKSB7XG4gICAgICAgICAgICAgIHR5cGVMaW5lSXRlbS5xdHkgPSArdGhpcy5mb3JtLmNvbnRyb2xzW3R5cGVTZWN0aW9uLmlkICsgJ3F0eSddLnZhbHVlO1xuICAgICAgICAgICAgICB0eXBlTGluZUl0ZW0uY2ZnU3RhdHVzID0gJ1VzZXInO1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAnYWRqdXN0TmV0UHJpY2UnKSB7XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlT3B0aW9uLCBvcHRpb25zIH0gPSBlO1xuICAgICAgICAgICAgY29uc3QgeyBhbW91bnQgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgICAgICAgICAgIGNvbnN0IHByaWNlQWRqdXN0bWVudDogUHJpY2VBZGp1c3RtZW50ID0ge1xuICAgICAgICAgICAgICB0eXBlOiAnT1ZFUlJJREVfQU1PVU5UJyxcbiAgICAgICAgICAgICAgZXhwbGFuYXRpb246ICdNYW51YWwgbmV0IHByaWNlIGFkanVzdG1lbnQnLFxuICAgICAgICAgICAgICBhbW91bnQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmFkanVzdFByaWNlKHZhbHVlT3B0aW9uLCBzZWN0aW9uLCBzb2x1dGlvbkxpbmVJdGVtLCB7IHByaWNlQWRqdXN0bWVudCB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICdhZGp1c3RMaXN0UHJpY2UnKSB7XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlT3B0aW9uLCBvcHRpb25zIH0gPSBlO1xuICAgICAgICAgICAgY29uc3QgeyBhbW91bnQgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgICAgICAgICAgIGNvbnN0IGxpc3RQcmljZUFkanVzdG1lbnQ6IFByaWNlQWRqdXN0bWVudCA9IHtcbiAgICAgICAgICAgICAgdHlwZTogJ09WRVJSSURFX0FNT1VOVCcsXG4gICAgICAgICAgICAgIGV4cGxhbmF0aW9uOiAnTWFudWFsIGxpc3QgcHJpY2UgYWRqdXN0bWVudCcsXG4gICAgICAgICAgICAgIGFtb3VudCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWRqdXN0UHJpY2UodmFsdWVPcHRpb24sIHNlY3Rpb24sIHNvbHV0aW9uTGluZUl0ZW0sIHsgbGlzdFByaWNlQWRqdXN0bWVudCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLlRZUEVdKSB7XG4gICAgICAgICAgaWYgKGUuYWN0aW9uID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TGluZUl0ZW0gPVxuICAgICAgICAgICAgICBzZWN0aW9uLm1vZGVsPy5wYXJlbnRJZCAmJiBMaW5lSXRlbVV0aWwuZmluZEJ5SWQoc2VjdGlvbi5tb2RlbC5wYXJlbnRJZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwYXJlbnRMaW5lSXRlbSAmJlxuICAgICAgICAgICAgICBzZWN0aW9uLm1vZGVsICYmXG4gICAgICAgICAgICAgIHNlY3Rpb24ubW9kZWwucG9ydCAmJlxuICAgICAgICAgICAgICBTZWN0aW9uc0JpbmRlckhlbHBlci5pc1JlbW92ZUFsbG93ZWQocGFyZW50TGluZUl0ZW0sIHNlY3Rpb24ubW9kZWwucG9ydCwgc2VjdGlvbi5tb2RlbD8ucXR5KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHNlY3Rpb24ubW9kZWw/LmlkKTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdmVkID0gcGFyZW50TGluZUl0ZW0ubGluZUl0ZW1zLnNwbGljZShpbmRleCwgMSlbMF07XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCByZW1vdmVkLCAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNpYmxlU3RhdGUuY2xlYXJTdGF0ZShzZWN0aW9uLmlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bnRpbWUoc29sdXRpb25MaW5lSXRlbSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICdxdHlVcGRhdGUnKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTGluZUl0ZW0gPSBzZWN0aW9uLm1vZGVsICYmIExpbmVJdGVtVXRpbC5maW5kQnlJZChzZWN0aW9uLm1vZGVsLmlkLCBbc29sdXRpb25MaW5lSXRlbV0pO1xuXG4gICAgICAgICAgICBpZiAodHlwZUxpbmVJdGVtKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHF0eSA9ICt0aGlzLmZvcm0uY29udHJvbHNbZS5pZCArICdxdHknXS52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVMaW5lSXRlbS5wYXJlbnRJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudExpbmVJdGVtID0gTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHR5cGVMaW5lSXRlbS5wYXJlbnRJZCwgW3NvbHV0aW9uTGluZUl0ZW1dKTtcblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRMaW5lSXRlbSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYXJkaW5hbGl0eVZhcmlhYmxlKHBhcmVudExpbmVJdGVtLCB0eXBlTGluZUl0ZW0sIHF0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHR5cGVMaW5lSXRlbS5xdHkgPSBxdHk7XG4gICAgICAgICAgICAgIHR5cGVMaW5lSXRlbS5jZmdTdGF0dXMgPSAnVXNlcic7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlUnVudGltZShzb2x1dGlvbkxpbmVJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gQm91bmREYXRhVHlwZVtCb3VuZERhdGFUeXBlLkFUVFJJQlVURV0pIHtcbiAgICAgICAgICBpZiAoZS5hY3Rpb24gPT09ICd1cGRhdGUnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRMaW5lSXRlbSA9IHNlY3Rpb24ubW9kZWwgJiYgTGluZUl0ZW1VdGlsLmZpbmRCeUlkKHNlY3Rpb24ubW9kZWwuaWQsIFtzb2x1dGlvbkxpbmVJdGVtXSk7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBwYXJlbnRMaW5lSXRlbT8uYXR0cmlidXRlcy5maW5kKFxuICAgICAgICAgICAgICBhdHRyID0+IGF0dHIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBzZWN0aW9uLmJvdW5kRGF0YS5uYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoYXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgIC8vRXhwbGljaXRseSBzZXQgdmFsdWUgYWx3YXlzIHdpblxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0eXBlb2YgZS52YWx1ZU9wdGlvbiAhPT0gJ3VuZGVmaW5lZCcgPyBlLnZhbHVlT3B0aW9uIDogdGhpcy5mb3JtLmNvbnRyb2xzW2UuaWRdLnZhbHVlO1xuXG4gICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUudHlwZSA9PT0gJ0JPT0xFQU4nKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/IDEgOiAwO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYXR0cmlidXRlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZS5jZmdTdGF0dXMgPSAnVXNlcic7XG5cbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKHNvbHV0aW9uTGluZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6IHRoaXMubWVzc2FnZUJ1Y2tldElkLCBzdW1tYXJ5OiBgQ29uZmlndXJhdGlvbiBmYWlsZWQgJHsoZSBhcyBhbnkpPy5tZXNzYWdlfWAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uU29sdXRpb25SZWFkeUV2ZW50XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKGxpbmVJdGVtID0+IHRoaXMub25Tb2x1dGlvblJlYWR5KGxpbmVJdGVtKSk7XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uU29sdXRpb25VcGRhdGVkRXZlbnRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IExpbmVJdGVtIHwgSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVNvbHV0aW9uVXBkYXRlKGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYW5kbGVTb2x1dGlvbkZhaWxlZFVwZGF0ZShkYXRhKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5vblVJUmVmcmVzaEV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgeyB1aURlZmluaXRpb24gfSA9IHRoaXMucnVudGltZVNlcnZpY2UuZ2V0UnVudGltZUNvbnRleHQoKSA/PyB7fTtcbiAgICAgIHRoaXMucnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uID0gdWlEZWZpbml0aW9uIGFzIGFueTtcbiAgICAgIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFNlc3Npb25TY29wZSA9IHt9O1xuICAgICAgdGhpcy5zdGFydFJ1bnRpbWUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uU29sdXRpb25SZWFkeShsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpIGFzIExlZ2FjeVJ1bnRpbWVDb250ZXh0O1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25Db250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG5cbiAgICBjb25zdCBtZXJnZUNvbnRleHQ6IExlZ2FjeVJ1bnRpbWVDb250ZXh0ID0ge1xuICAgICAgLi4uY29udGV4dCxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4uY29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgICAuLi5jb25maWd1cmF0aW9uQ29udGV4dC5wcm9wZXJ0aWVzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgYWNjb3VudElkID0gbWVyZ2VDb250ZXh0LnByb3BlcnRpZXM/LkFjY291bnRJZDtcbiAgICBpZiAoYWNjb3VudElkICYmIGFjY291bnRJZC5sZW5ndGggPT09IDE1KSB7XG4gICAgICB0aGlzLnJ1bnRpbWVDb250ZXh0ID0ge1xuICAgICAgICAuLi5tZXJnZUNvbnRleHQsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAuLi5tZXJnZUNvbnRleHQucHJvcGVydGllcyxcbiAgICAgICAgICBBY2NvdW50SWQ6IFNhbGVzZm9yY2VJZFV0aWxzLmdlbmVyYXRlSWQxOEZyb21JZDE1KGFjY291bnRJZCksXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ydW50aW1lQ29udGV4dCA9IG1lcmdlQ29udGV4dCBhcyBhbnk7XG4gICAgfVxuXG4gICAgdGhpcy5zb2x1dGlvbkxpbmVJdGVtID0gbGluZUl0ZW07XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5zZXRSdW50aW1lQ29udGV4dCh0aGlzLnJ1bnRpbWVDb250ZXh0KTtcblxuICAgIHRoaXMuc3RhcnRSdW50aW1lKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNvbHV0aW9uVXBkYXRlKHVwZGF0ZWRMaW5lSXRlbTogTGluZUl0ZW0pIHtcbiAgICB0aGlzLnNvbHV0aW9uTGluZUl0ZW0gPSB1cGRhdGVkTGluZUl0ZW07XG4gICAgdGhpcy5wcm9jZXNzU29sdXRpb24odHJ1ZSk7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5zb2x1dGlvblByb2Nlc3NlZCh0aGlzLnNvbHV0aW9uTGluZUl0ZW0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU29sdXRpb25GYWlsZWRVcGRhdGUoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgY29uc3QgaGFzRXJyb3JNZXNzYWdlID0gRW50aXR5VXRpbC5pc1ByZXNlbnQoZXJyb3IuZXJyb3IpICYmIEVudGl0eVV0aWwuaXNQcmVzZW50KGVycm9yLmVycm9yLm1lc3NhZ2UpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBoYXNFcnJvck1lc3NhZ2UgPyBlcnJvci5lcnJvci5tZXNzYWdlIDogJ0NvbmZpZ3VyYXRpb24gZmFpbGVkJztcbiAgICBjb25zdCB7IGlzSGFuZGxpbmdDb25maWd1cmF0aW9uRXJyb3JzIH0gPSB0aGlzLnJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbiA/PyB7fTtcblxuICAgIGlmIChpc0hhbmRsaW5nQ29uZmlndXJhdGlvbkVycm9ycykge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6IHRoaXMubWVzc2FnZUJ1Y2tldElkLCBzdW1tYXJ5OiBtZXNzYWdlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc29sdXRpb25MaW5lSXRlbSA9IHtcbiAgICAgIC4uLnRoaXMuc29sdXRpb25MaW5lSXRlbSxcbiAgICAgIG1lc3NhZ2VzOiBbLi4udGhpcy5zb2x1dGlvbkxpbmVJdGVtLm1lc3NhZ2VzLCBgRToke21lc3NhZ2V9YF0sXG4gICAgfTtcbiAgICB0aGlzLnByb2Nlc3NTb2x1dGlvbih0cnVlLCB0cnVlKTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnNvbHV0aW9uUHJvY2Vzc2VkKHRoaXMuc29sdXRpb25MaW5lSXRlbSk7XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNhcmRpbmFsaXR5VmFyaWFibGUocGFyZW50OiBMaW5lSXRlbSwgdXBkYXRlZDogTGluZUl0ZW0sIG5ld1F1YW50aXR5PzogbnVtYmVyKSB7XG4gICAgY29uc3QgcG9ydERvbWFpbiA9IHVwZGF0ZWQucG9ydCA/IHBhcmVudC5wb3J0RG9tYWluc1t1cGRhdGVkLnBvcnRdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRvbWFpblR5cGUgPSBwb3J0RG9tYWluPy5kb21haW5UeXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSB1cGRhdGVkLnR5cGUpO1xuICAgIGNvbnN0IGNhcmRpbmFsaXR5ID0gZG9tYWluVHlwZT8uY2FyZGluYWxpdHkgPz8gMDtcblxuICAgIGxldCBxdHk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoZG9tYWluVHlwZT8uY2FyZGluYWxpdHkpKSB7XG4gICAgICBxdHkgPSBOdW1iZXIuaXNGaW5pdGUobmV3UXVhbnRpdHkpID8gbmV3UXVhbnRpdHkgOiB1cGRhdGVkLnF0eTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXR5ID0gRW50aXR5VXRpbC5pc1ByZXNlbnQobmV3UXVhbnRpdHkpXG4gICAgICAgID8gY2FyZGluYWxpdHkgLSB1cGRhdGVkLnF0eSArIChuZXdRdWFudGl0eSBhcyBudW1iZXIpXG4gICAgICAgIDogY2FyZGluYWxpdHkgKyB1cGRhdGVkLnF0eTtcbiAgICB9XG5cbiAgICBjb25zdCBjYXJkaW5hbGl0eU5hbWUgPSAnI0NWLScgKyB1cGRhdGVkLnR5cGUgKyAnQCcgKyB1cGRhdGVkLnBvcnQ7XG5cbiAgICBsZXQgY2FyZGluYWxpdHlWYXJpYWJsZSA9IHBhcmVudC5hdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IGNhcmRpbmFsaXR5TmFtZSk7XG4gICAgaWYgKCFjYXJkaW5hbGl0eVZhcmlhYmxlKSB7XG4gICAgICBjYXJkaW5hbGl0eVZhcmlhYmxlID0ge1xuICAgICAgICBpZDogVVVJRC5VVUlEKCksXG4gICAgICAgIG5hbWU6IGNhcmRpbmFsaXR5TmFtZSxcbiAgICAgIH0gYXMgQXR0cmlidXRlO1xuICAgICAgcGFyZW50LmF0dHJpYnV0ZXMucHVzaChjYXJkaW5hbGl0eVZhcmlhYmxlKTtcbiAgICB9XG4gICAgY2FyZGluYWxpdHlWYXJpYWJsZS52YWx1ZSA9IHF0eTtcbiAgICBjYXJkaW5hbGl0eVZhcmlhYmxlLmNmZ1N0YXR1cyA9ICdVc2VyJztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTGluZUl0ZW0oc2VjdGlvbjogU2VjdGlvbiwgdmFsdWVPcHRpb24/OiBzdHJpbmcsIHBhcmVudExpbmVJdGVtPzogTGluZUl0ZW0pOiBMaW5lSXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF0eTogK3RoaXMuZm9ybS5jb250cm9sc1tzZWN0aW9uLmlkICsgJ3F0eSddLnZhbHVlLFxuICAgICAgcG9ydDogc2VjdGlvbi5ib3VuZERhdGEubmFtZSxcbiAgICAgIHR5cGU6IEVudGl0eVV0aWwuaXNQcmVzZW50KHZhbHVlT3B0aW9uKSA/IHZhbHVlT3B0aW9uIDogdGhpcy5mb3JtLmNvbnRyb2xzW3NlY3Rpb24uaWRdLnZhbHVlLFxuICAgICAgY2ZnU3RhdHVzOiAnTmV3JyxcbiAgICAgIHBhcmVudElkOiBwYXJlbnRMaW5lSXRlbT8uaWQsXG4gICAgfSBhcyBMaW5lSXRlbTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xuXG4gICAgdGhpcy5zZWN0aW9uc1NlcnZpY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFJ1bnRpbWUoKSB7XG4gICAgY29uc3QgdWlEZWZpbml0aW9uID0gdGhpcy5ydW50aW1lQ29udGV4dC51aURlZmluaXRpb247XG5cbiAgICBjb25zdCBkZWZhdWx0VGFiID0gdWlEZWZpbml0aW9uPy50YWJzPy5maW5kKHRhYiA9PiB0YWIuaXNEZWZhdWx0KTtcbiAgICB0aGlzLmFjdGl2ZVVJVGFiID0gRW50aXR5VXRpbC5pc1ByZXNlbnQoZGVmYXVsdFRhYikgPyBkZWZhdWx0VGFiIDogdWlEZWZpbml0aW9uPy50YWJzPy5bMF07XG5cbiAgICB0aGlzLnNlY3Rpb25zU2VydmljZS5jb21waWxlTW9kdWxlKHVpRGVmaW5pdGlvbj8uc2VjdGlvbnMgPz8gW10sIHVpRGVmaW5pdGlvbj8uaXNWaWV3RW5jYXBzdWxhdGVkKTtcblxuICAgIHRoaXMucHJvY2Vzc1NvbHV0aW9uKCk7XG5cbiAgICB0aGlzLnNvbHV0aW9uSXNSZWFkeSA9IHRydWU7XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJ1bnRpbWUobGluZUl0ZW06IExpbmVJdGVtKSB7XG4gICAgdGhpcy5zb2x1dGlvblVwZGF0ZWQuZW1pdChsaW5lSXRlbSk7XG4gIH1cblxuICBhZGRUb0NhcnQoKSB7XG4gICAgY29uc3QgbGluZUl0ZW0gPSBFbnRpdHlVdGlsLmNsb25lKHRoaXMuc29sdXRpb25MaW5lSXRlbSk7XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnN0b3BSdW50aW1lKGxpbmVJdGVtKTtcbiAgfVxuXG4gIHByb2Nlc3NTb2x1dGlvbihpc1VwZGF0ZT86IGJvb2xlYW4sIGlzRXJyb3I/OiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8xLiBCaW5kIHNlY3Rpb25zIHRvIHNvbHV0aW9uXG4gICAgbGV0IHNlY3Rpb25zID0gRW50aXR5VXRpbC5jbG9uZSh0aGlzLnJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbj8uc2VjdGlvbnMpID8/IFtdO1xuICAgIGNvbnN0IHNvdXJjZVNlY3Rpb25zID0gRW50aXR5VXRpbC5jbG9uZSh0aGlzLnJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbj8uc2VjdGlvbnMpID8/IFtdO1xuICAgIHRoaXMudXBkYXRlTGluZUl0ZW1zU2VjdGlvblBhdGgodGhpcy5zb2x1dGlvbkxpbmVJdGVtKTtcbiAgICBTZWN0aW9uc0JpbmRlckhlbHBlci5zZXRMaW5lSXRlbXNQYXRoKFxuICAgICAgdGhpcy5ydW50aW1lQ29udGV4dC5ydW50aW1lTW9kZWwsXG4gICAgICB0aGlzLnNvbHV0aW9uTGluZUl0ZW0sXG4gICAgICBzZWN0aW9ucyxcbiAgICAgIHNvdXJjZVNlY3Rpb25zLFxuICAgICAgKHNlYzogYW55KSA9PiAhc2VjLnBhcmVudElkICYmIHNlYy5ib3VuZERhdGEsXG4gICAgICB0aGlzLnJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbj8ucHJpY2luZ0VuYWJsZWQgPz8gZmFsc2UsXG4gICAgKTtcblxuICAgIHNlY3Rpb25zID0gc2VjdGlvbnMuZmlsdGVyKHMgPT4gcy5tb2RlbCAmJiBzLnRlbXBsYXRlKTtcblxuICAgIC8vMi4gSW5pdCBmb3JtXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2VydmljZS5pbml0Rm9ybShzZWN0aW9ucywgdGhpcy5zb2x1dGlvbkxpbmVJdGVtKTtcbiAgICB0aGlzLmZvcm1TY29wZS5mb3JtID0gdGhpcy5mb3JtO1xuXG4gICAgdGhpcy5zb3J0ZWRTZWN0aW9ucyA9IHRoaXMuZmlsdGVyQW5kU29ydChnZXRTZWN0aW9uVHJlZShzZWN0aW9ucy5maWx0ZXIocyA9PiAhcy5pc1N0YXRpYykpKTtcblxuICAgIGlmICghaXNVcGRhdGUpIHtcbiAgICAgIHRoaXMuc3RhdGljU2VjdGlvbnMgPSB0aGlzLmZpbHRlckFuZFNvcnQoZ2V0U2VjdGlvblRyZWUoc2VjdGlvbnMuZmlsdGVyKHMgPT4gcy5pc1N0YXRpYykpKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzRXJyb3IpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5tZXNzYWdlQnVja2V0SWQpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmNhbmNlbFJ1bnRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGluZUl0ZW1zU2VjdGlvblBhdGgobGluZUl0ZW06IExpbmVJdGVtLCBwYXJlbnQ/OiBTZWN0aW9uUGF0aCkge1xuICAgIGNvbnN0IHBhdGg6IFNlY3Rpb25QYXRoID0ge1xuICAgICAgdHlwZXM6IHBhcmVudCA/IHBhcmVudC50eXBlcy5jb25jYXQoW2xpbmVJdGVtLnR5cGVdKSA6IFtsaW5lSXRlbS50eXBlXSxcbiAgICAgIHBvcnRzOiBwYXJlbnQgPyBwYXJlbnQucG9ydHMuY29uY2F0KGxpbmVJdGVtLnBvcnQgPyBbbGluZUl0ZW0ucG9ydF0gOiBbXSkgOiBbXSxcbiAgICB9IGFzIFNlY3Rpb25QYXRoO1xuXG4gICAgbGluZUl0ZW0ucGF0aCA9IHBhdGg7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGxpbmVJdGVtLmxpbmVJdGVtcykge1xuICAgICAgdGhpcy51cGRhdGVMaW5lSXRlbXNTZWN0aW9uUGF0aChjaGlsZCwgbGluZUl0ZW0ucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJBbmRTb3J0KHNlY3Rpb25zOiBTZWN0aW9uW10pOiBTZWN0aW9uW10ge1xuICAgIGNvbnN0IGZpbHRlcmVkID0gdGhpcy5zZWFyY2hGaWx0ZXJQaXBlLnRyYW5zZm9ybShzZWN0aW9ucywgdGhpcy5hY3RpdmVVSVRhYj8uaWQsICdwYWdlJyk7XG4gICAgY29uc3Qgb3JkZXJlZCA9IHRoaXMub3JkZXJCeVBpcGUudHJhbnNmb3JtKGZpbHRlcmVkLCAnb3JkZXInLCAnYXNjJyk7XG5cbiAgICByZXR1cm4gb3JkZXJlZDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNlY3Rpb24oaWQ6IHN0cmluZyk6IFNlY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBFbnRpdHlVdGlsLmZpbmRCeUZpZWxkSGllcmFyY2hpY2FsbHkoJ2lkJywgaWQsIFsuLi50aGlzLnNvcnRlZFNlY3Rpb25zLCAuLi50aGlzLnN0YXRpY1NlY3Rpb25zXSwgJ2NoaWxkcmVuJyk7XG4gIH1cbn1cbiIsIjx2bC1sb2FkZXIgbGFiZWw9XCJMb2FkaW5nIFVJXCIgKm5nSWY9XCIhc29sdXRpb25Jc1JlYWR5OyBlbHNlIGNvbnRlbnRcIj48L3ZsLWxvYWRlcj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8IS0tIFRPRE86IEFkZCB2YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNpZGViYXItdGFic1wiXG4gICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFydW50aW1lQ29udGV4dD8udWlEZWZpbml0aW9uPy5kZWZhdWx0UGFuZWxzIH1cIlxuICAgICN1aVRhYnM9XCJzaWRlYmFyVGFic1wiXG4gICAgc2lkZWJhclRhYnM9XCJ7eyBhY3RpdmVVSVRhYj8uaWQgfX1cIlxuICAgIGlkPVwidmwtZGVmYXVsdC1zaWRlYmFyLXRhYnNcIlxuICA+XG4gICAgPHVsPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgcnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbj8udGFicyB8IG9yZGVyQnk6ICdvcmRlcic6J2FzYydcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogdWlUYWJzLmFjdGl2ZVRhYiA9PT0gdGFiLmlkIH1cIlxuICAgICAgICAoY2xpY2spPVwidWlUYWJzLnN3aXRjaFRhYih0YWIuaWQpXCJcbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIj57eyB0YWIubmFtZSB9fTwvYT5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLXdyYXBwZXJcIj5cbiAgICA8Zm9ybSByb2xlPVwiZm9ybVwiIG5hbWU9XCJmb3JtXCIgY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBub3ZhbGlkYXRlIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzdGF0aWNTZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VjdGlvbi5tb2RlbCAmJiBzZWN0aW9uLnRlbXBsYXRlICYmICFzZWN0aW9uLmhpZGRlblwiPlxuICAgICAgICAgIDx2bC1zZWN0aW9uLXJlbmRlcmVyIFtzZWN0aW9uXT1cInNlY3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+PC92bC1zZWN0aW9uLXJlbmRlcmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNvcnRlZFNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWN0aW9uLm1vZGVsICYmIHNlY3Rpb24udGVtcGxhdGUgJiYgIXNlY3Rpb24uaGlkZGVuXCI+XG4gICAgICAgICAgPHZsLXNlY3Rpb24tcmVuZGVyZXIgW3NlY3Rpb25dPVwic2VjdGlvblwiIFtmb3JtXT1cImZvcm1cIj48L3ZsLXNlY3Rpb24tcmVuZGVyZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtb2RhbC1mb290ZXJcIlxuICAgICAgKm5nSWY9XCJydW50aW1lQ29udGV4dD8ucnVudGltZU1vZGUgPT09IDFcIlxuICAgICAgaWQ9XCJ2bC1ydW50aW1lLWRlZmF1bHQtZm9vdGVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAhcnVudGltZUNvbnRleHQ/LnVpRGVmaW5pdGlvbj8uZGVmYXVsdFBhbmVscyB9XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGlucHV0LWZvcm0taW5wdXRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIChjbGljayk9XCJmb3JtLnZhbGlkICYmIGFkZFRvQ2FydCgpXCIgaWQ9XCJhZGQtdG8tY2FydC1idG5cIlxuICAgICAgICAgID5BZGQgdG8gY2FydDwvYVxuICAgICAgICA+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiAoY2xpY2spPVwiaGlkZU1vZGFsKClcIiBpZD1cImNhbmNlbC1idG5cIj5DYW5jZWw8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICAgIDwhLS0gVE9ETzogQWRkIHZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -183,7 +183,7 @@ export class SectionScriptDirective {
183
183
  solutionUpdated: this.runtimeService.onSolutionProcessed,
184
184
  cartService: this.cartService,
185
185
  configurationContextService: this.contextService,
186
- quoteDraft: this.quoteService.quoteDraft,
186
+ quoteDraft: this.quoteService.quoteSnapshot,
187
187
  currentStateService: this.currentStateService,
188
188
  };
189
189
  }
@@ -239,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
239
239
  type: Inject,
240
240
  args: [VlDocumentAttachmentsDirective]
241
241
  }] }, { type: i1.FormScopeService }, { type: i2.SectionScopeService }, { type: i0.Renderer2 }, { type: i3.FormBuilder }, { type: i4.RuntimeService }, { type: i0.ChangeDetectorRef }, { type: i5.ShoppingCartService }, { type: i6.ContextService }, { type: i7.CurrentStateService }, { type: i6.QuoteDraftService }]; } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vZGlyZWN0aXZlcy9zZWN0aW9uLXNjcmlwdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQW9DLFNBQVMsRUFBRSxNQUFNLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRWxILE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBT2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsTUFBTSxrQkFBa0IsR0FBRyxP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aUI7UUFDakIsZ0JBQWdCO1FBQ2hCLDRCQUE0QjtRQUM1QixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLDhCQUE4QjtLQUMvQjs0RkFFVSxzQkFBc0I7a0JBZGxDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNULGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7MERBUXdDLFFBQVE7MEJBQTVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUNuQyxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbCwgUGFnZWRFbnRpdHksIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyByeGpzT3BlcmF0b3JzIGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VycmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1cnJlbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyaXB0UmVnaXN0cnkgfSBmcm9tICcuLi8uLi90eXBlcy9zY3JpcHQtcmVnaXN0cnkudHlwZXMnO1xuaW1wb3J0IHsgU2ZRdWVyeURpcmVjdGl2ZSB9IGZyb20gJy4vc2YtcXVlcnkuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpbmVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi92ZWxvLXBvcnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsQXBwcm92YWxEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWFwcHJvdmFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWRvY3VtZW50LWF0dGFjaG1lbnRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlIH0gZnJvbSAnLi92bC1kb2N1bWVudC10ZW1wbGF0ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsUXVvdGVEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXF1b3RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbFJhbXBEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXJhbXAuZGlyZWN0aXZlJztcblxuY29uc3QgU0hBMSA9IFVVSUQuU0hBMSgpO1xuY29uc3QgU0NSSVBUX0dMT0JBTF9OQU1FID0gYCR2ZWxvYDtcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2VjdGlvbi1zY3JpcHQnLFxuICBleHBvcnRBczogJ3NjcmlwdEFwaScsXG4gIHByb3ZpZGVyczogW1xuICAgIFNmUXVlcnlEaXJlY3RpdmUsXG4gICAgTGluZUl0ZW1EaXJlY3RpdmUsXG4gICAgVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlLFxuICAgIFZsUmFtcERpcmVjdGl2ZSxcbiAgICBWbEFwcHJvdmFsRGlyZWN0aXZlLFxuICAgIFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvblNjcmlwdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzY3JpcHRFbGVtZW50OiBhbnk7XG4gIHByaXZhdGUgc2NyaXB0SWQgPSAnJztcbiAgcHJpdmF0ZSByZWdpc3RyeSE6IFNjcmlwdFJlZ2lzdHJ5O1xuICBwcml2YXRlIHNlc3Npb25TY29wZTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoU2ZRdWVyeURpcmVjdGl2ZSkgcHJpdmF0ZSBzZlF1ZXJ5RGlyZWN0aXZlOiBTZlF1ZXJ5RGlyZWN0aXZlLFxuICAgIEBJbmplY3QoTGluZUl0ZW1EaXJlY3RpdmUpIHByaXZhdGUgbGluZUl0ZW1EaXJlY3RpdmU6IExpbmVJdGVtRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxRdW90ZURpcmVjdGl2ZSkgcHJpdmF0ZSBxdW90ZURpcmVjdGl2ZTogVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUpIHByaXZhdGUgZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmU6IFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgQEluamVjdChWbFJhbXBEaXJlY3RpdmUpIHByaXZhdGUgcmFtcERpcmVjdGl2ZTogVmxSYW1wRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxBcHByb3ZhbERpcmVjdGl2ZSkgcHJpdmF0ZSBhcHByb3ZhbERpcmVjdGl2ZTogVmxBcHByb3ZhbERpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSkgcHJpdmF0ZSBkb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlOiBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VycmVudFN0YXRlU2VydmljZTogQ3VycmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlU2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RXhpc3RzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcmlwdElkID0gdGhpcy5nZW5lcmF0ZVNjcmlwdElkKCk7XG4gICAgdGhpcy5yZWdpc3RyeSA9IHRoaXMuZ2V0U2NyaXB0UmVnaXN0cnkoKTtcbiAgICB0aGlzLnNlc3Npb25TY29wZSA9IHRoaXMuZ2V0U2Vzc2lvblNjb3BlKCk7XG5cbiAgICBpZiAoIXRoaXMucmVnaXN0cnkuZXhpc3RzKHRoaXMuc2NyaXB0SWQpKSB7XG4gICAgICB0aGlzLmFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFNjcmlwdCgpO1xuXG4gICAgdGhpcy5yZWdpc3RyeS5kb1JlZ2lzdGVyKHRoaXMuc2NyaXB0SWQsIHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnk/LmdldEdsb2JhbEZvclNjcmlwdCh0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmIChzaGFyZWRTY3JpcHRHbG9iYWwpIHtcbiAgICAgIHRoaXMubWV0aG9kQXBwbHkoJ2FmdGVyVmlld0luaXQnLCBzaGFyZWRTY3JpcHRHbG9iYWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY3JpcHRJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVnaXN0cnkudW5SZWdpc3Rlcih0aGlzLnNjcmlwdElkLCB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmICghdGhpcy5yZWdpc3RyeS5leGlzdHModGhpcy5zY3JpcHRJZCkpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgICB0aGlzLnJlZ2lzdHJ5LnJlbW92ZUdsb2JhbEZvclNjcmlwdCh0aGlzLnNjcmlwdElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2NvcGUoKSB7XG4gICAgaWYgKCF0aGlzLnNjcmlwdElkIHx8ICF0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpIHx8IHt9LCB0aGlzLnNlc3Npb25TY29wZSk7XG4gIH1cblxuICBwcml2YXRlIHNjcmlwdEV4aXN0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2VjdGlvblNjb3BlPy5zZWN0aW9uPy5zY3JpcHQ/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZVNjcmlwdEJvZHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5zY3JpcHQgPyBhdG9iKHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uc2NyaXB0KSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVNjcmlwdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdfJyArIFNIQTEuaGV4KHRoaXMuZW5jb2RlU2NyaXB0Qm9keSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NyaXB0UmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFJlZ2lzdHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXNzaW9uU2NvcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFNlc3Npb25TY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcmlwdCgpOiB2b2lkIHtcbiAgICBsZXQgc2hhcmVkU2NyaXB0R2xvYmFsID0gdGhpcy5yZWdpc3RyeS5nZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCk7XG5cbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KHNoYXJlZFNjcmlwdEdsb2JhbCkpIHtcbiAgICAgIHNoYXJlZFNjcmlwdEdsb2JhbCA9IHt9O1xuICAgICAgdGhpcy5yZWdpc3RyeS5zZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCwgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgICB9XG5cbiAgICB0aGlzLm1ldGhvZEFwcGx5KCdpbml0Jywgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuXG4gICAgdGhpcy5tZXRob2RBcHBseSgnZGVzdHJveScsIHNoYXJlZFNjcmlwdEdsb2JhbCk7XG5cbiAgICB0aGlzLnJlbW92ZVNjcmlwdEVsZW1lbnRGcm9tRG9tKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnNjcmlwdEZyb21UZW1wbGF0ZSh0aGlzLmVuY29kZVNjcmlwdEJvZHkoKSwgdGhpcy5zY3JpcHRJZCwgdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbik7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRoaXMuc2NyaXB0RWxlbWVudC50eXBlID0gYHRleHQvamF2YXNjcmlwdGA7XG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnRleHQgPSBzY3JpcHQ7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMuc2NyaXB0SWQpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5ib2R5LCB0aGlzLnNjcmlwdEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTY3JpcHRFbGVtZW50RnJvbURvbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RWxlbWVudCkge1xuICAgICAgdGhpcy5zY3JpcHRFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zY3JpcHRJZCk7XG4gICAgfVxuXG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JpcHRGcm9tVGVtcGxhdGUoc2NyaXB0Qm9keTogc3RyaW5nLCBzY3JpcHRJZDogc3RyaW5nLCBzZWN0aW9uOiBTZWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhciAke3NjcmlwdElkfSA9IChmdW5jdGlvbiAoJHtTQ1JJUFRfR0xPQkFMX05BTUV9LCBmb3JtLCB7IHNlY3Rpb24sIHRlbXBsYXRlcyB9LCBzZXNzaW9uU2NvcGUsIGZvcm1CdWlsZGVyLCBydW50aW1lQ29udGV4dCwgY2RyLCBhcGlzKSB7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJmb3JtXCJdID0gZm9ybTtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInNlY3Rpb25cIl0gPSBzZWN0aW9uO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1widGVtcGxhdGVzXCJdID0gdGVtcGxhdGVzO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wic2Vzc2lvblNjb3BlXCJdID0gc2Vzc2lvblNjb3BlO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wiZm9ybUJ1aWxkZXJcIl0gPSBmb3JtQnVpbGRlcjtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInJ1bnRpbWVDb250ZXh0XCJdID0gcnVudGltZUNvbnRleHQ7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJjZHJcIl0gPSBjZHI7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJhcGlzXCJdID0gYXBpcztcblxuICAgICAgICAgICAgJHtzY3JpcHRCb2R5fVxuICAgICAgICAgICAgICAgIHJldHVybiAke1NDUklQVF9HTE9CQUxfTkFNRX07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8jIHNvdXJjZVVSTD0ke18ua2ViYWJDYXNlKHNlY3Rpb24ubGFiZWwpfS5qc2A7XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZEFwcGx5KG1ldGhvZE5hbWU6IHN0cmluZywgc2hhcmVkU2NyaXB0R2xvYmFsOiBhbnkpIHtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgc2hhcmVkU2NyaXB0R2xvYmFsLFxuICAgICAgdGhpcy5mb3JtU2NvcGUuZm9ybSxcbiAgICAgIHRoaXMuc2VjdGlvblNjb3BlLFxuICAgICAgdGhpcy5zZXNzaW9uU2NvcGUsXG4gICAgICB0aGlzLmZvcm1CdWlsZGVyLFxuICAgICAgdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpLFxuICAgICAgdGhpcy5jZHIsXG4gICAgICB0aGlzLmdldEV4cG9zZWRBcGlzKCksXG4gICAgXTtcblxuICAgIGNvbnN0IGZuSW5pdCA9ICh3aW5kb3cgYXMgYW55KVtgJHt0aGlzLnNjcmlwdElkfWBdKC4uLmFyZ3MpO1xuXG4gICAgZm5Jbml0ICYmIGZuSW5pdFttZXRob2ROYW1lXSAmJiBmbkluaXRbbWV0aG9kTmFtZV0uYXBwbHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhwb3NlZEFwaXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdzZi1xdWVyeSc6IHRoaXMuc2ZRdWVyeURpcmVjdGl2ZSxcbiAgICAgICdsaW5lLWl0ZW0nOiB0aGlzLmxpbmVJdGVtRGlyZWN0aXZlLFxuICAgICAgJ3F1b3RlLWRpcmVjdGl2ZSc6IHRoaXMucXVvdGVEaXJlY3RpdmUsXG4gICAgICAndGVtcGxhdGVzLWRpcmVjdGl2ZSc6IHRoaXMuZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgICAnYXR0YWNobWVudHMtZGlyZWN0aXZlJzogdGhpcy5kb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlLFxuICAgICAgJ3JhbXAtZGlyZWN0aXZlJzogdGhpcy5yYW1wRGlyZWN0aXZlLFxuICAgICAgJ2FwcHJvdmFsLWRpcmVjdGl2ZSc6IHRoaXMuYXBwcm92YWxEaXJlY3RpdmUsXG4gICAgICBlbnRpdHlVdGlsOiBFbnRpdHlVdGlsLFxuICAgICAgbW9tZW50LFxuICAgICAgbG9kYXNoOiBfLFxuICAgICAgcnhqczogeyAuLi5yeGpzT3BlcmF0b3JzLCAuLi5yeGpzIH0sXG4gICAgICBQYWdlZEVudGl0eSxcbiAgICAgIHBpcGVzOiB7XG4gICAgICAgIGN1cnJlbmN5OiBDdXJyZW5jeVBpcGUsXG4gICAgICB9LFxuICAgICAgc29sdXRpb25VcGRhdGVTdGFydGVkOiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uU29sdXRpb25VcGRhdGVTdGFydGVkRXZlbnQsXG4gICAgICBzb2x1dGlvblVwZGF0ZWQ6IHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblByb2Nlc3NlZCxcbiAgICAgIGNhcnRTZXJ2aWNlOiB0aGlzLmNhcnRTZXJ2aWNlLFxuICAgICAgY29uZmlndXJhdGlvbkNvbnRleHRTZXJ2aWNlOiB0aGlzLmNvbnRleHRTZXJ2aWNlLFxuICAgICAgcXVvdGVEcmFmdDogdGhpcy5xdW90ZVNlcnZpY2UucXVvdGVEcmFmdCxcbiAgICAgIGN1cnJlbnRTdGF0ZVNlcnZpY2U6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vZGlyZWN0aXZlcy9zZWN0aW9uLXNjcmlwdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQW9DLFNBQVMsRUFBRSxNQUFNLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRWxILE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBT2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFnQm5DLE1BQU0sT0FBTyxzQkFBc0I7SUFNakMsWUFDNEIsU0FBbUIsRUFDWCxnQkFBa0MsRUFDakMsaUJBQW9DLEVBQ3JDLGNBQWdDLEVBQ3BCLDBCQUF3RCxFQUNyRSxhQUE4QixFQUMxQixpQkFBc0MsRUFDM0IsNEJBQTRELEVBQ3BHLFNBQTJCLEVBQzNCLFlBQWlDLEVBQ2pDLFFBQW1CLEVBQ25CLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLEdBQXNCLEVBQ3RCLFdBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxZQUErQjtRQWpCYixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ1gscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNwQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQThCO1FBQ3JFLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBQzNCLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBZ0M7UUFDcEcsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUF0QmpDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFZCxpQkFBWSxHQUE2QixFQUFFLENBQUM7SUFxQmpELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxlQUFlOztRQUNiLE1BQU0sa0JBQWtCLEdBQUcsTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzRixJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVPLFlBQVk7O1FBQ2xCLE9BQU8sQ0FBQyxNQUFBLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLE9BQU8sMENBQUUsTUFBTSwwQ0FBRSxNQUFNLG1DQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDO0lBQzNDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzdDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuRTtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxPQUFnQjtRQUMvRSxPQUFPLE9BQU8sUUFBUSxpQkFBaUIsa0JBQWtCO2NBQy9DLGtCQUFrQjtjQUNsQixrQkFBa0I7Y0FDbEIsa0JBQWtCO2NBQ2xCLGtCQUFrQjtjQUNsQixrQkFBa0I7Y0FDbEIsa0JBQWtCO2NBQ2xCLGtCQUFrQjtjQUNsQixrQkFBa0I7O2NBRWxCLFVBQVU7eUJBQ0Msa0JBQWtCOzs7NEJBR2YsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCLEVBQUUsa0JBQXVCO1FBQzdELE1BQU0sSUFBSSxHQUFHO1lBQ1gsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUNuQixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZDLElBQUksQ0FBQyxHQUFHO1lBQ1IsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUN0QixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUksTUFBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUU1RCxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRU8sY0FBYztRQUNwQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDbkMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDdEMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQjtZQUN0RCx1QkFBdUIsRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQzFELGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3BDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDNUMsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTTtZQUNOLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxrQ0FBTyxhQUFhLEdBQUssSUFBSSxDQUFFO1lBQ25DLFdBQVc7WUFDWCxLQUFLLEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLFlBQVk7YUFDdkI7WUFDRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLDRCQUE0QjtZQUN2RSxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUI7WUFDeEQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLDJCQUEyQixFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2hELFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWE7WUFDM0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUM5QyxDQUFDO0lBQ0osQ0FBQzs7b0hBaE1VLHNCQUFzQixrQkFPdkIsUUFBUSxhQUNSLGdCQUFnQixhQUNoQixpQkFBaUIsYUFDakIsZ0JBQWdCLGFBQ2hCLDRCQUE0QixhQUM1QixlQUFlLGFBQ2YsbUJBQW1CLGFBQ25CLDhCQUE4Qjt3R0FkN0Isc0JBQXNCLHlDQVZ0QjtRQUNULGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLDRCQUE0QjtRQUM1QixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLDhCQUE4QjtLQUMvQjs0RkFFVSxzQkFBc0I7a0JBZGxDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNULGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7MERBUXdDLFFBQVE7MEJBQTVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUNuQyxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbCwgUGFnZWRFbnRpdHksIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyByeGpzT3BlcmF0b3JzIGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VycmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1cnJlbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyaXB0UmVnaXN0cnkgfSBmcm9tICcuLi8uLi90eXBlcy9zY3JpcHQtcmVnaXN0cnkudHlwZXMnO1xuaW1wb3J0IHsgU2ZRdWVyeURpcmVjdGl2ZSB9IGZyb20gJy4vc2YtcXVlcnkuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpbmVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi92ZWxvLXBvcnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsQXBwcm92YWxEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWFwcHJvdmFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWRvY3VtZW50LWF0dGFjaG1lbnRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlIH0gZnJvbSAnLi92bC1kb2N1bWVudC10ZW1wbGF0ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsUXVvdGVEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXF1b3RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbFJhbXBEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXJhbXAuZGlyZWN0aXZlJztcblxuY29uc3QgU0hBMSA9IFVVSUQuU0hBMSgpO1xuY29uc3QgU0NSSVBUX0dMT0JBTF9OQU1FID0gYCR2ZWxvYDtcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2VjdGlvbi1zY3JpcHQnLFxuICBleHBvcnRBczogJ3NjcmlwdEFwaScsXG4gIHByb3ZpZGVyczogW1xuICAgIFNmUXVlcnlEaXJlY3RpdmUsXG4gICAgTGluZUl0ZW1EaXJlY3RpdmUsXG4gICAgVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlLFxuICAgIFZsUmFtcERpcmVjdGl2ZSxcbiAgICBWbEFwcHJvdmFsRGlyZWN0aXZlLFxuICAgIFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvblNjcmlwdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzY3JpcHRFbGVtZW50OiBhbnk7XG4gIHByaXZhdGUgc2NyaXB0SWQgPSAnJztcbiAgcHJpdmF0ZSByZWdpc3RyeSE6IFNjcmlwdFJlZ2lzdHJ5O1xuICBwcml2YXRlIHNlc3Npb25TY29wZTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoU2ZRdWVyeURpcmVjdGl2ZSkgcHJpdmF0ZSBzZlF1ZXJ5RGlyZWN0aXZlOiBTZlF1ZXJ5RGlyZWN0aXZlLFxuICAgIEBJbmplY3QoTGluZUl0ZW1EaXJlY3RpdmUpIHByaXZhdGUgbGluZUl0ZW1EaXJlY3RpdmU6IExpbmVJdGVtRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxRdW90ZURpcmVjdGl2ZSkgcHJpdmF0ZSBxdW90ZURpcmVjdGl2ZTogVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUpIHByaXZhdGUgZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmU6IFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgQEluamVjdChWbFJhbXBEaXJlY3RpdmUpIHByaXZhdGUgcmFtcERpcmVjdGl2ZTogVmxSYW1wRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxBcHByb3ZhbERpcmVjdGl2ZSkgcHJpdmF0ZSBhcHByb3ZhbERpcmVjdGl2ZTogVmxBcHByb3ZhbERpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSkgcHJpdmF0ZSBkb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlOiBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VycmVudFN0YXRlU2VydmljZTogQ3VycmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlU2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RXhpc3RzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcmlwdElkID0gdGhpcy5nZW5lcmF0ZVNjcmlwdElkKCk7XG4gICAgdGhpcy5yZWdpc3RyeSA9IHRoaXMuZ2V0U2NyaXB0UmVnaXN0cnkoKTtcbiAgICB0aGlzLnNlc3Npb25TY29wZSA9IHRoaXMuZ2V0U2Vzc2lvblNjb3BlKCk7XG5cbiAgICBpZiAoIXRoaXMucmVnaXN0cnkuZXhpc3RzKHRoaXMuc2NyaXB0SWQpKSB7XG4gICAgICB0aGlzLmFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFNjcmlwdCgpO1xuXG4gICAgdGhpcy5yZWdpc3RyeS5kb1JlZ2lzdGVyKHRoaXMuc2NyaXB0SWQsIHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnk/LmdldEdsb2JhbEZvclNjcmlwdCh0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmIChzaGFyZWRTY3JpcHRHbG9iYWwpIHtcbiAgICAgIHRoaXMubWV0aG9kQXBwbHkoJ2FmdGVyVmlld0luaXQnLCBzaGFyZWRTY3JpcHRHbG9iYWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY3JpcHRJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVnaXN0cnkudW5SZWdpc3Rlcih0aGlzLnNjcmlwdElkLCB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmICghdGhpcy5yZWdpc3RyeS5leGlzdHModGhpcy5zY3JpcHRJZCkpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgICB0aGlzLnJlZ2lzdHJ5LnJlbW92ZUdsb2JhbEZvclNjcmlwdCh0aGlzLnNjcmlwdElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2NvcGUoKSB7XG4gICAgaWYgKCF0aGlzLnNjcmlwdElkIHx8ICF0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpIHx8IHt9LCB0aGlzLnNlc3Npb25TY29wZSk7XG4gIH1cblxuICBwcml2YXRlIHNjcmlwdEV4aXN0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2VjdGlvblNjb3BlPy5zZWN0aW9uPy5zY3JpcHQ/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZVNjcmlwdEJvZHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5zY3JpcHQgPyBhdG9iKHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uc2NyaXB0KSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVNjcmlwdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdfJyArIFNIQTEuaGV4KHRoaXMuZW5jb2RlU2NyaXB0Qm9keSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NyaXB0UmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFJlZ2lzdHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXNzaW9uU2NvcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFNlc3Npb25TY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcmlwdCgpOiB2b2lkIHtcbiAgICBsZXQgc2hhcmVkU2NyaXB0R2xvYmFsID0gdGhpcy5yZWdpc3RyeS5nZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCk7XG5cbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KHNoYXJlZFNjcmlwdEdsb2JhbCkpIHtcbiAgICAgIHNoYXJlZFNjcmlwdEdsb2JhbCA9IHt9O1xuICAgICAgdGhpcy5yZWdpc3RyeS5zZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCwgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgICB9XG5cbiAgICB0aGlzLm1ldGhvZEFwcGx5KCdpbml0Jywgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuXG4gICAgdGhpcy5tZXRob2RBcHBseSgnZGVzdHJveScsIHNoYXJlZFNjcmlwdEdsb2JhbCk7XG5cbiAgICB0aGlzLnJlbW92ZVNjcmlwdEVsZW1lbnRGcm9tRG9tKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnNjcmlwdEZyb21UZW1wbGF0ZSh0aGlzLmVuY29kZVNjcmlwdEJvZHkoKSwgdGhpcy5zY3JpcHRJZCwgdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbik7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRoaXMuc2NyaXB0RWxlbWVudC50eXBlID0gYHRleHQvamF2YXNjcmlwdGA7XG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnRleHQgPSBzY3JpcHQ7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMuc2NyaXB0SWQpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5ib2R5LCB0aGlzLnNjcmlwdEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTY3JpcHRFbGVtZW50RnJvbURvbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RWxlbWVudCkge1xuICAgICAgdGhpcy5zY3JpcHRFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zY3JpcHRJZCk7XG4gICAgfVxuXG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JpcHRGcm9tVGVtcGxhdGUoc2NyaXB0Qm9keTogc3RyaW5nLCBzY3JpcHRJZDogc3RyaW5nLCBzZWN0aW9uOiBTZWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhciAke3NjcmlwdElkfSA9IChmdW5jdGlvbiAoJHtTQ1JJUFRfR0xPQkFMX05BTUV9LCBmb3JtLCB7IHNlY3Rpb24sIHRlbXBsYXRlcyB9LCBzZXNzaW9uU2NvcGUsIGZvcm1CdWlsZGVyLCBydW50aW1lQ29udGV4dCwgY2RyLCBhcGlzKSB7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJmb3JtXCJdID0gZm9ybTtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInNlY3Rpb25cIl0gPSBzZWN0aW9uO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1widGVtcGxhdGVzXCJdID0gdGVtcGxhdGVzO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wic2Vzc2lvblNjb3BlXCJdID0gc2Vzc2lvblNjb3BlO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wiZm9ybUJ1aWxkZXJcIl0gPSBmb3JtQnVpbGRlcjtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInJ1bnRpbWVDb250ZXh0XCJdID0gcnVudGltZUNvbnRleHQ7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJjZHJcIl0gPSBjZHI7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJhcGlzXCJdID0gYXBpcztcblxuICAgICAgICAgICAgJHtzY3JpcHRCb2R5fVxuICAgICAgICAgICAgICAgIHJldHVybiAke1NDUklQVF9HTE9CQUxfTkFNRX07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8jIHNvdXJjZVVSTD0ke18ua2ViYWJDYXNlKHNlY3Rpb24ubGFiZWwpfS5qc2A7XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZEFwcGx5KG1ldGhvZE5hbWU6IHN0cmluZywgc2hhcmVkU2NyaXB0R2xvYmFsOiBhbnkpIHtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgc2hhcmVkU2NyaXB0R2xvYmFsLFxuICAgICAgdGhpcy5mb3JtU2NvcGUuZm9ybSxcbiAgICAgIHRoaXMuc2VjdGlvblNjb3BlLFxuICAgICAgdGhpcy5zZXNzaW9uU2NvcGUsXG4gICAgICB0aGlzLmZvcm1CdWlsZGVyLFxuICAgICAgdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpLFxuICAgICAgdGhpcy5jZHIsXG4gICAgICB0aGlzLmdldEV4cG9zZWRBcGlzKCksXG4gICAgXTtcblxuICAgIGNvbnN0IGZuSW5pdCA9ICh3aW5kb3cgYXMgYW55KVtgJHt0aGlzLnNjcmlwdElkfWBdKC4uLmFyZ3MpO1xuXG4gICAgZm5Jbml0ICYmIGZuSW5pdFttZXRob2ROYW1lXSAmJiBmbkluaXRbbWV0aG9kTmFtZV0uYXBwbHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhwb3NlZEFwaXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdzZi1xdWVyeSc6IHRoaXMuc2ZRdWVyeURpcmVjdGl2ZSxcbiAgICAgICdsaW5lLWl0ZW0nOiB0aGlzLmxpbmVJdGVtRGlyZWN0aXZlLFxuICAgICAgJ3F1b3RlLWRpcmVjdGl2ZSc6IHRoaXMucXVvdGVEaXJlY3RpdmUsXG4gICAgICAndGVtcGxhdGVzLWRpcmVjdGl2ZSc6IHRoaXMuZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgICAnYXR0YWNobWVudHMtZGlyZWN0aXZlJzogdGhpcy5kb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlLFxuICAgICAgJ3JhbXAtZGlyZWN0aXZlJzogdGhpcy5yYW1wRGlyZWN0aXZlLFxuICAgICAgJ2FwcHJvdmFsLWRpcmVjdGl2ZSc6IHRoaXMuYXBwcm92YWxEaXJlY3RpdmUsXG4gICAgICBlbnRpdHlVdGlsOiBFbnRpdHlVdGlsLFxuICAgICAgbW9tZW50LFxuICAgICAgbG9kYXNoOiBfLFxuICAgICAgcnhqczogeyAuLi5yeGpzT3BlcmF0b3JzLCAuLi5yeGpzIH0sXG4gICAgICBQYWdlZEVudGl0eSxcbiAgICAgIHBpcGVzOiB7XG4gICAgICAgIGN1cnJlbmN5OiBDdXJyZW5jeVBpcGUsXG4gICAgICB9LFxuICAgICAgc29sdXRpb25VcGRhdGVTdGFydGVkOiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uU29sdXRpb25VcGRhdGVTdGFydGVkRXZlbnQsXG4gICAgICBzb2x1dGlvblVwZGF0ZWQ6IHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblByb2Nlc3NlZCxcbiAgICAgIGNhcnRTZXJ2aWNlOiB0aGlzLmNhcnRTZXJ2aWNlLFxuICAgICAgY29uZmlndXJhdGlvbkNvbnRleHRTZXJ2aWNlOiB0aGlzLmNvbnRleHRTZXJ2aWNlLFxuICAgICAgcXVvdGVEcmFmdDogdGhpcy5xdW90ZVNlcnZpY2UucXVvdGVTbmFwc2hvdCxcbiAgICAgIGN1cnJlbnRTdGF0ZVNlcnZpY2U6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -16,7 +16,8 @@ export class ShoppingCartService {
16
16
  }));
17
17
  }
18
18
  getCurrentState() {
19
- return this.quoteService.currentState;
19
+ var _a;
20
+ return (_a = this.quoteService.quoteSnapshot) === null || _a === void 0 ? void 0 : _a.currentState;
20
21
  }
21
22
  }
22
23
  ShoppingCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartService, deps: [{ token: i1.PriceApiService }, { token: i2.ContextService }, { token: i2.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -24,4 +25,4 @@ ShoppingCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
24
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartService, decorators: [{
25
26
  type: Injectable
26
27
  }], ctorParameters: function () { return [{ type: i1.PriceApiService }, { type: i2.ContextService }, { type: i2.QuoteDraftService }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixZQUErQjtRQUYvQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtJQUN0QyxDQUFDO0lBRUosaUJBQWlCLENBQUMsWUFBd0I7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQWdCLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQzs7aUhBcEJVLG1CQUFtQjtxSEFBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmljZUFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2FwaSc7XG5pbXBvcnQgeyBMaW5lSXRlbSwgUHJpY2VTdW1tYXJ5IH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJpY2VBcGlTZXJ2aWNlOiBQcmljZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZVNlcnZpY2U6IFF1b3RlRHJhZnRTZXJ2aWNlLFxuICApIHt9XG5cbiAgc2V0Q2FydEV4dGVybmFsbHkoY3VycmVudFN0YXRlOiBMaW5lSXRlbVtdKTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG5cbiAgICByZXR1cm4gdGhpcy5wcmljZUFwaVNlcnZpY2UuY2FsY3VsYXRlKHsgY29udGV4dCwgY3VycmVudFN0YXRlIH0pLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFwKCh7IGxpbmVJdGVtcyB9OiBQcmljZVN1bW1hcnkpID0+IHtcbiAgICAgICAgdGhpcy5xdW90ZVNlcnZpY2Uuc2V0Q3VycmVudExpbmVJdGVtU3RhdGUobGluZUl0ZW1zKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBnZXRDdXJyZW50U3RhdGUoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVTZXJ2aWNlLmN1cnJlbnRTdGF0ZTtcbiAgfVxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixZQUErQjtRQUYvQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtJQUN0QyxDQUFDO0lBRUosaUJBQWlCLENBQUMsWUFBd0I7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQWdCLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTs7UUFDYixPQUFPLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLDBDQUFFLFlBQVksQ0FBQztJQUN2RCxDQUFDOztpSEFwQlUsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByaWNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IExpbmVJdGVtLCBQcmljZVN1bW1hcnkgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG9wcGluZ0NhcnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcmljZUFwaVNlcnZpY2U6IFByaWNlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlU2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICkge31cblxuICBzZXRDYXJ0RXh0ZXJuYWxseShjdXJyZW50U3RhdGU6IExpbmVJdGVtW10pOiBPYnNlcnZhYmxlPFByaWNlU3VtbWFyeT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcblxuICAgIHJldHVybiB0aGlzLnByaWNlQXBpU2VydmljZS5jYWxjdWxhdGUoeyBjb250ZXh0LCBjdXJyZW50U3RhdGUgfSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAoKHsgbGluZUl0ZW1zIH06IFByaWNlU3VtbWFyeSkgPT4ge1xuICAgICAgICB0aGlzLnF1b3RlU2VydmljZS5zZXRDdXJyZW50TGluZUl0ZW1TdGF0ZShsaW5lSXRlbXMpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRTdGF0ZSgpOiBMaW5lSXRlbVtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZVNlcnZpY2UucXVvdGVTbmFwc2hvdD8uY3VycmVudFN0YXRlO1xuICB9XG59XG4iXX0=
@@ -121,4 +121,4 @@ SectionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", vers
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService, decorators: [{
122
122
  type: Injectable
123
123
  }], ctorParameters: function () { return [{ type: i0.Compiler }, { type: i0.NgModuleRef }, { type: i1.SectionStoreService }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFLUixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUd6QixNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO3NHQUFwQixvQkFBb0Isa01BRFYsRUFBRTs0RkFDWixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQUd6QixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdvQyxTQUFTO3NCQUFsRCxZQUFZO3VC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QUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV0RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JGLFFBQVEsR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs2R0FwR1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgYXMgRXhwZXJpbWVudGFsU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrLWV4cGVyaW1lbnRhbC9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge1xuICBDb21waWxlcixcbiAgQ29tcG9uZW50LFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgTW9kdWxlV2l0aENvbXBvbmVudEZhY3RvcmllcyxcbiAgTmdNb2R1bGUsXG4gIE5nTW9kdWxlUmVmLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIEVudGl0eVV0aWwsIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgVmVsb2NlRWxlbWVudHNNb2R1bGUgfSBmcm9tICdAdmVsb2NlL2VsZW1lbnRzJztcbmltcG9ydCB7IHNldCwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUgfSBmcm9tICcuLi9leGVjdXRpb24vcnVudGltZS1leGVjdXRpb24ubW9kdWxlJztcbmltcG9ydCB7IFNlY3Rpb25IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWN0aW9uLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NlY3Rpb24tc3RvcmUuc2VydmljZSc7XG5cbmNvbnN0IFNIQTEgPSBVVUlELlNIQTEoKTtcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBzZWN0aW9uITogU2VjdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKCdjdXN0b21UZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWN0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIG1vZHVsZVR5cGU6IFR5cGU8YW55PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1vZHVsZUluc3RhbmNlOiBNb2R1bGVXaXRoQ29tcG9uZW50RmFjdG9yaWVzPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlciwgcHJpdmF0ZSBtOiBOZ01vZHVsZVJlZjxhbnk+LCBwcml2YXRlIHNlY3Rpb25TdG9yZTogU2VjdGlvblN0b3JlU2VydmljZSkge31cblxuICBjb21waWxlTW9kdWxlKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB1bmlxdWVTZWN0aW9ucyA9IHRoaXMuZ2V0VW5pcXVlU2VjdGlvbnMoc2VjdGlvbnMpO1xuXG4gICAgdGhpcy5tb2R1bGVUeXBlID0gdGhpcy5nZXRNb2R1bGVUeXBlKHVuaXF1ZVNlY3Rpb25zLCBpc1ZpZXdFbmNhcHN1bGF0ZWQpO1xuICAgIHRoaXMubW9kdWxlSW5zdGFuY2UgPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyh0aGlzLm1vZHVsZVR5cGUpO1xuXG4gICAgdGhpcy5zZWN0aW9uU3RvcmUuY29tcG9uZW50RmFjdG9yaWVzID0gdGhpcy5tb2R1bGVJbnN0YW5jZS5jb21wb25lbnRGYWN0b3JpZXM7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZHVsZUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnNlY3Rpb25TdG9yZS5jb21wb25lbnRGYWN0b3JpZXMgPSBbXTtcbiAgICAgIHRoaXMubW9kdWxlSW5zdGFuY2UgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZHVsZVR5cGUpIHtcbiAgICAgIHRoaXMuY29tcGlsZXIuY2xlYXJDYWNoZUZvcih0aGlzLm1vZHVsZVR5cGUpO1xuICAgICAgdGhpcy5tb2R1bGVUeXBlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlY29yYXRlZENvbXBvbmVudHMoc2VjdGlvbnM6IFNlY3Rpb25bXSwgaXNWaWV3RW5jYXBzdWxhdGVkOiBib29sZWFuID0gZmFsc2UpOiBhbnlbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXG4gICAgc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zcGlsZWRUZW1wbGF0ZSA9IHRoaXMuZ2V0VHJhbnNwaWxlZFRlbXBsYXRlKHNlY3Rpb24pO1xuXG4gICAgICBjb25zdCBEeW5hbWljQ29tcG9uZW50ID0gQ29tcG9uZW50KHtcbiAgICAgICAgc2VsZWN0b3I6IHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yLFxuICAgICAgICB0ZW1wbGF0ZTogdHJhbnNwaWxlZFRlbXBsYXRlLFxuICAgICAgICBzdHlsZXM6IFthdG9iKHNlY3Rpb24uc3R5bGVzIHx8ICcnKV0sXG4gICAgICAgIHByb3ZpZGVyczogW1NlY3Rpb25IZWxwZXJTZXJ2aWNlXSxcbiAgICAgICAgZW5jYXBzdWxhdGlvbjogaXNWaWV3RW5jYXBzdWxhdGVkID8gVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tIDogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gICAgICAgIGppdDogdHJ1ZSxcbiAgICAgIH0pKGNsYXNzIEMgZXh0ZW5kcyBCYXNlU2VjdGlvbkNvbXBvbmVudCB7fSk7XG5cbiAgICAgIHRoaXMuYXBwbHlTZWxlY3RvckZpZWxkKER5bmFtaWNDb21wb25lbnQsIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID8/ICcnKTtcbiAgICAgIHJlc3VsdC5wdXNoKER5bmFtaWNDb21wb25lbnQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlVHlwZShzZWN0aW9uczogU2VjdGlvbltdLCBpc1ZpZXdFbmNhcHN1bGF0ZWQ/OiBib29sZWFuKTogVHlwZTxhbnk+IHtcbiAgICBjb25zdCBkZWNvcmF0ZWRDb21wb25lbnRzID0gdGhpcy5nZXREZWNvcmF0ZWRDb21wb25lbnRzKHNlY3Rpb25zLCBpc1ZpZXdFbmNhcHN1bGF0ZWQpO1xuXG4gICAgQE5nTW9kdWxlKHtcbiAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSdW50aW1lRXhlY3V0aW9uTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBWZWxvY2VFbGVtZW50c01vZHVsZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgICAgICBFeHBlcmltZW50YWxTY3JvbGxpbmdNb2R1bGUsXG4gICAgICBdLFxuICAgICAgZGVjbGFyYXRpb25zOiBbZGVjb3JhdGVkQ29tcG9uZW50c10sXG4gICAgICBqaXQ6IHRydWUsXG4gICAgfSlcbiAgICBjbGFzcyBEeW5hbWljTW9kdWxlIHt9XG5cbiAgICByZXR1cm4gRHluYW1pY01vZHVsZTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3RvckZpZWxkKHRhcmdldDogYW55LCBkeW5hbWljU2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHNldCh0YXJnZXQsICckJGR5bmFtaWNTZWxlY3RvcicsIGR5bmFtaWNTZWxlY3Rvcik7XG4gIH1cblxuICBwcml2YXRlIGdldFVuaXF1ZVNlY3Rpb25zKHNlY3Rpb25zOiBTZWN0aW9uW10pOiBTZWN0aW9uW10ge1xuICAgIGNvbnN0IHVuaXF1ZVNlY3Rpb25zOiB7IFtpbmRleDogc3RyaW5nXTogU2VjdGlvbiB9ID0ge307XG5cbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5oYXNoID0gU0hBMS5oZXgoc2VjdGlvbi50ZW1wbGF0ZSk7XG5cbiAgICAgIGNvbnN0IGV4aXN0aW5nU2VjdGlvbiA9IHNlY3Rpb24uaGFzaCA/IHVuaXF1ZVNlY3Rpb25zW3NlY3Rpb24uaGFzaF0gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAoZXhpc3RpbmdTZWN0aW9uICYmIGV4aXN0aW5nU2VjdGlvbi50ZW1wbGF0ZSA9PT0gc2VjdGlvbi50ZW1wbGF0ZSkge1xuICAgICAgICBzZWN0aW9uLmR5bmFtaWNTZWxlY3RvciA9IGV4aXN0aW5nU2VjdGlvbi5keW5hbWljU2VsZWN0b3I7XG4gICAgICB9IGVsc2UgaWYgKHNlY3Rpb24uaGFzaCkge1xuICAgICAgICBzZWN0aW9uLmR5bmFtaWNTZWxlY3RvciA9IGBzZWN0aW9uLSR7c2VjdGlvbi5pZH1gO1xuXG4gICAgICAgIHVuaXF1ZVNlY3Rpb25zW3NlY3Rpb24uaGFzaF0gPSBzZWN0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlcyh1bmlxdWVTZWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zcGlsZWRUZW1wbGF0ZShzZWN0aW9uOiBTZWN0aW9uKTogc3RyaW5nIHtcbiAgICBsZXQgdGVtcGxhdGU6IHN0cmluZyA9IHNlY3Rpb24udGVtcGxhdGUgPyBhdG9iKHNlY3Rpb24udGVtcGxhdGUpIDogJyc7XG5cbiAgICBpZiAoIUVudGl0eVV0aWwuaXNFbXB0eShzZWN0aW9uLnNjcmlwdCkgJiYgdGVtcGxhdGUuaW5kZXhPZignPHNlY3Rpb24tc2NyaXB0JykgPT09IC0xKSB7XG4gICAgICB0ZW1wbGF0ZSA9IGA8c2VjdGlvbi1zY3JpcHQ+PC9zZWN0aW9uLXNjcmlwdD5gLmNvbmNhdCh0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG59XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFLUixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUd6QixNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO3NHQUFwQixvQkFBb0Isa01BRFYsRUFBRTs0RkFDWixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQUd6QixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdvQyxTQUFTO3NCQUFsRCxZQUFZO3VC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QUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV0RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JGLFFBQVEsR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs2R0FwR1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgYXMgRXhwZXJpbWVudGFsU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrLWV4cGVyaW1lbnRhbC9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge1xuICBDb21waWxlcixcbiAgQ29tcG9uZW50LFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgTW9kdWxlV2l0aENvbXBvbmVudEZhY3RvcmllcyxcbiAgTmdNb2R1bGUsXG4gIE5nTW9kdWxlUmVmLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIEVudGl0eVV0aWwsIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgVmVsb2NlRWxlbWVudHNNb2R1bGUgfSBmcm9tICdAdmVsb2NlL2VsZW1lbnRzJztcbmltcG9ydCB7IHNldCwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUgfSBmcm9tICcuLi9leGVjdXRpb24vcnVudGltZS1leGVjdXRpb24ubW9kdWxlJztcbmltcG9ydCB7IFNlY3Rpb25IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWN0aW9uLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NlY3Rpb24tc3RvcmUuc2VydmljZSc7XG5cbmNvbnN0IFNIQTEgPSBVVUlELlNIQTEoKTtcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBzZWN0aW9uITogU2VjdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKCdjdXN0b21UZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgLy8gQ3VycmVudGx5IHRoZXJlJ3Mgbm8gd2F5IHRvIGluamVjdCB2aWEgY29uc3RydWN0b3IuIE90aGVyd2lzZSBSdW50aW1lIGp1c3QgY3Jhc2hlc1xuICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBob3cgd2UgY2FuIGluamVjdCBzZXJ2aWNlcyBpbnRvIHRoZSBjb21wb25lbnRcblxuICAvLyBjb25zdHJ1Y3RvcihcbiAgLy8gICBASW5qZWN0KEZvcm1TY29wZVNlcnZpY2UpIHByaXZhdGUgZm9ybVNjb3BlOiBGb3JtU2NvcGVTZXJ2aWNlLFxuICAvLyAgIEBJbmplY3QoU2VjdGlvbkhlbHBlclNlcnZpY2UpIHByaXZhdGUgc2VjdGlvbkFwaTogU2VjdGlvbkhlbHBlclNlcnZpY2UsXG4gIC8vICkge31cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zU2VydmljZSB7XG4gIHByaXZhdGUgbW9kdWxlVHlwZTogVHlwZTxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kdWxlSW5zdGFuY2U6IE1vZHVsZVdpdGhDb21wb25lbnRGYWN0b3JpZXM8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLCBwcml2YXRlIG06IE5nTW9kdWxlUmVmPGFueT4sIHByaXZhdGUgc2VjdGlvblN0b3JlOiBTZWN0aW9uU3RvcmVTZXJ2aWNlKSB7fVxuXG4gIGNvbXBpbGVNb2R1bGUoc2VjdGlvbnM6IFNlY3Rpb25bXSwgaXNWaWV3RW5jYXBzdWxhdGVkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHVuaXF1ZVNlY3Rpb25zID0gdGhpcy5nZXRVbmlxdWVTZWN0aW9ucyhzZWN0aW9ucyk7XG5cbiAgICB0aGlzLm1vZHVsZVR5cGUgPSB0aGlzLmdldE1vZHVsZVR5cGUodW5pcXVlU2VjdGlvbnMsIGlzVmlld0VuY2Fwc3VsYXRlZCk7XG4gICAgdGhpcy5tb2R1bGVJbnN0YW5jZSA9IHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNTeW5jKHRoaXMubW9kdWxlVHlwZSk7XG5cbiAgICB0aGlzLnNlY3Rpb25TdG9yZS5jb21wb25lbnRGYWN0b3JpZXMgPSB0aGlzLm1vZHVsZUluc3RhbmNlLmNvbXBvbmVudEZhY3RvcmllcztcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kdWxlSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuc2VjdGlvblN0b3JlLmNvbXBvbmVudEZhY3RvcmllcyA9IFtdO1xuICAgICAgdGhpcy5tb2R1bGVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kdWxlVHlwZSkge1xuICAgICAgdGhpcy5jb21waWxlci5jbGVhckNhY2hlRm9yKHRoaXMubW9kdWxlVHlwZSk7XG4gICAgICB0aGlzLm1vZHVsZVR5cGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVjb3JhdGVkQ29tcG9uZW50cyhzZWN0aW9uczogU2VjdGlvbltdLCBpc1ZpZXdFbmNhcHN1bGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgY29uc3QgdHJhbnNwaWxlZFRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc3BpbGVkVGVtcGxhdGUoc2VjdGlvbik7XG5cbiAgICAgIGNvbnN0IER5bmFtaWNDb21wb25lbnQgPSBDb21wb25lbnQoe1xuICAgICAgICBzZWxlY3Rvcjogc2VjdGlvbi5keW5hbWljU2VsZWN0b3IsXG4gICAgICAgIHRlbXBsYXRlOiB0cmFuc3BpbGVkVGVtcGxhdGUsXG4gICAgICAgIHN0eWxlczogW2F0b2Ioc2VjdGlvbi5zdHlsZXMgfHwgJycpXSxcbiAgICAgICAgcHJvdmlkZXJzOiBbU2VjdGlvbkhlbHBlclNlcnZpY2VdLFxuICAgICAgICBlbmNhcHN1bGF0aW9uOiBpc1ZpZXdFbmNhcHN1bGF0ZWQgPyBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20gOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgICAgICAgaml0OiB0cnVlLFxuICAgICAgfSkoY2xhc3MgQyBleHRlbmRzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHt9KTtcblxuICAgICAgdGhpcy5hcHBseVNlbGVjdG9yRmllbGQoRHluYW1pY0NvbXBvbmVudCwgc2VjdGlvbi5keW5hbWljU2VsZWN0b3IgPz8gJycpO1xuICAgICAgcmVzdWx0LnB1c2goRHluYW1pY0NvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVUeXBlKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZD86IGJvb2xlYW4pOiBUeXBlPGFueT4ge1xuICAgIGNvbnN0IGRlY29yYXRlZENvbXBvbmVudHMgPSB0aGlzLmdldERlY29yYXRlZENvbXBvbmVudHMoc2VjdGlvbnMsIGlzVmlld0VuY2Fwc3VsYXRlZCk7XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFZlbG9jZUVsZW1lbnRzTW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIEV4cGVyaW1lbnRhbFNjcm9sbGluZ01vZHVsZSxcbiAgICAgIF0sXG4gICAgICBkZWNsYXJhdGlvbnM6IFtkZWNvcmF0ZWRDb21wb25lbnRzXSxcbiAgICAgIGppdDogdHJ1ZSxcbiAgICB9KVxuICAgIGNsYXNzIER5bmFtaWNNb2R1bGUge31cblxuICAgIHJldHVybiBEeW5hbWljTW9kdWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlbGVjdG9yRmllbGQodGFyZ2V0OiBhbnksIGR5bmFtaWNTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgc2V0KHRhcmdldCwgJyQkZHluYW1pY1NlbGVjdG9yJywgZHluYW1pY1NlbGVjdG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pcXVlU2VjdGlvbnMoc2VjdGlvbnM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgdW5pcXVlU2VjdGlvbnM6IHsgW2luZGV4OiBzdHJpbmddOiBTZWN0aW9uIH0gPSB7fTtcblxuICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmhhc2ggPSBTSEExLmhleChzZWN0aW9uLnRlbXBsYXRlKTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdTZWN0aW9uID0gc2VjdGlvbi5oYXNoID8gdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChleGlzdGluZ1NlY3Rpb24gJiYgZXhpc3RpbmdTZWN0aW9uLnRlbXBsYXRlID09PSBzZWN0aW9uLnRlbXBsYXRlKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gZXhpc3RpbmdTZWN0aW9uLmR5bmFtaWNTZWxlY3RvcjtcbiAgICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5oYXNoKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gYHNlY3Rpb24tJHtzZWN0aW9uLmlkfWA7XG5cbiAgICAgICAgdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA9IHNlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWVzKHVuaXF1ZVNlY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhbnNwaWxlZFRlbXBsYXRlKHNlY3Rpb246IFNlY3Rpb24pOiBzdHJpbmcge1xuICAgIGxldCB0ZW1wbGF0ZTogc3RyaW5nID0gc2VjdGlvbi50ZW1wbGF0ZSA/IGF0b2Ioc2VjdGlvbi50ZW1wbGF0ZSkgOiAnJztcblxuICAgIGlmICghRW50aXR5VXRpbC5pc0VtcHR5KHNlY3Rpb24uc2NyaXB0KSAmJiB0ZW1wbGF0ZS5pbmRleE9mKCc8c2VjdGlvbi1zY3JpcHQnKSA9PT0gLTEpIHtcbiAgICAgIHRlbXBsYXRlID0gYDxzZWN0aW9uLXNjcmlwdD48L3NlY3Rpb24tc2NyaXB0PmAuY29uY2F0KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cbn1cbiJdfQ==