@symphony-talent/component-library 3.38.2 → 3.39.0

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.
@@ -2,4 +2,4 @@ export class MultiselectSearchCheckbox {
2
2
  }
3
3
  export class MultiSelectDataModule {
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7Q0FNckM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0NBc0JqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94IHtcbiAgICBpZDogbnVtYmVyIHwgYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsSW5mbz86IHN0cmluZztcbiAgICBzb3J0T3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERhdGFNb2R1bGUge1xuICAgIHNlYXJjaGVkRHJvcGRvd25MaXN0OiBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94W107XG4gICAgc2VsZWN0ZWREcm9wZG93bkxpc3Q6IE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3hbXTtcbiAgICBjb21wb25lbnRIZWFkaW5nOiBzdHJpbmc7XG4gICAgc2VhcmNoSW5wdXQ6IHN0cmluZztcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gICAgc2hvd0NyZWF0ZU5ld0l0ZW1zOiBib29sZWFuO1xuICAgIGxhYmVsQ3JlYXRlTmV3SXRlbXM/OiBzdHJpbmc7XG4gICAgaGFzTWF4U2VsZWN0aW9uczogYm9vbGVhbjtcbiAgICBtYXhTZWxlY3Rpb25zQ291bnQ6IG51bWJlcjtcbiAgICBzaG91bGRJbml0aWFsaXplPzogYm9vbGVhbjtcbiAgICBzaG91bGRMb2FkRGF0YU9uSW5pdD86IGJvb2xlYW47XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGhhc1BhZ2luYXRpb24/OiBib29sZWFuO1xuICAgIGZldGNoRnJvbVNlc3Npb24/OiBib29sZWFuO1xuICAgIGhhc1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgICBtb2RlbElkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzUmVsZXZhbmNlPzogYm9vbGVhbjtcbiAgICBzaG93Q3JlYXRlTmV3TW9kYWw/OiBib29sZWFuO1xuICAgIGlzRXhwYW5kZWRPbkluaXRpYWxpemU/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkxpc3Qge1xuICAgIGxhdGl0dWRlPzogbnVtYmVyO1xuICAgIGxvbmdpdHVkZT86IG51bWJlcjtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7Q0FNckM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0NBdUJqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94IHtcbiAgICBpZDogbnVtYmVyIHwgYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsSW5mbz86IHN0cmluZztcbiAgICBzb3J0T3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERhdGFNb2R1bGUge1xuICAgIHNlYXJjaGVkRHJvcGRvd25MaXN0OiBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94W107XG4gICAgc2VsZWN0ZWREcm9wZG93bkxpc3Q6IE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3hbXTtcbiAgICBjb21wb25lbnRIZWFkaW5nOiBzdHJpbmc7XG4gICAgc2VhcmNoSW5wdXQ6IHN0cmluZztcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gICAgc2hvd0NyZWF0ZU5ld0l0ZW1zOiBib29sZWFuO1xuICAgIGxhYmVsQ3JlYXRlTmV3SXRlbXM/OiBzdHJpbmc7XG4gICAgaGFzTWF4U2VsZWN0aW9uczogYm9vbGVhbjtcbiAgICBtYXhTZWxlY3Rpb25zQ291bnQ6IG51bWJlcjtcbiAgICBzaG91bGRJbml0aWFsaXplPzogYm9vbGVhbjtcbiAgICBzaG91bGRMb2FkRGF0YU9uSW5pdD86IGJvb2xlYW47XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGhhc1BhZ2luYXRpb24/OiBib29sZWFuO1xuICAgIGZldGNoRnJvbVNlc3Npb24/OiBib29sZWFuO1xuICAgIGhhc1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgICBtb2RlbElkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzUmVsZXZhbmNlPzogYm9vbGVhbjtcbiAgICBzaG93Q3JlYXRlTmV3TW9kYWw/OiBib29sZWFuO1xuICAgIGlzRXhwYW5kZWRPbkluaXRpYWxpemU/OiBib29sZWFuO1xuICAgIHNob3VsZFNvcnRJdGVtPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25MaXN0IHtcbiAgICBsYXRpdHVkZT86IG51bWJlcjtcbiAgICBsb25naXR1ZGU/OiBudW1iZXI7XG59XG4iXX0=
@@ -96,7 +96,6 @@ export class AdvertiseModalComponent {
96
96
  };
97
97
  }
98
98
  onKeywordSearch(keyword) {
99
- this.filteredPostingBoardList = this.model.jobBoards.filter(board => board.boardName.toLowerCase().includes(keyword.toLowerCase()));
100
99
  this.keywordSearchChange.emit(keyword);
101
100
  }
102
101
  onButtonClick(text) {
@@ -159,10 +158,10 @@ export class AdvertiseModalComponent {
159
158
  }
160
159
  }
161
160
  AdvertiseModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
162
- AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
161
+ AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
163
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, decorators: [{
164
163
  type: Component,
165
- args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
164
+ args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
166
165
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
167
166
  type: Input
168
167
  }], buttonClicked: [{
@@ -174,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
174
173
  }], keywordSearchChange: [{
175
174
  type: Output
176
175
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEM7UUF4QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFDTSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELGNBQVMsR0FBb0I7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBR0ssc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFB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QztRQUMvRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOztvSEEvS1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsOFJDekJwQyw4dUxBb0xBOzJGRDNKYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUszQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2F0b21zL2ljb24vaWNvbi5lbnVtJztcbmltcG9ydCB7IE9yZGVyU3VtbWFyeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL29yZGVyLXN1bW1hcnkvb3JkZXItc3VtbWFyeS5tb2RlbCc7XG5pbXBvcnQgeyBINVdpdGhJY29uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaDUtd2l0aC1pY29uL2g1LXdpdGgtaWNvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBBZHZlcnRpc2VNb2RhbE1vZGVsLFxuICBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbn0gZnJvbSAnLi9hZHZlcnRpc2UtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHsgSW52b2ljZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9sZWN1bGVzL2ludm9pY2UtbGluZS1pdGVtL2ludm9pY2UtbGluZS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1hZHZlcnRpc2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWR2ZXJ0aXNlTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1vZGVsOiBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+O1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHBvc3RpbmdCb2FyZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgUGFydGlhbDxBZHZlcnRpc2VNb2RhbE1vZGVsPlxuICA+KCk7XG4gIEBPdXRwdXQoKSBrZXl3b3JkU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsW107XG4gIHB1YmxpYyBvcmRlclN1bW1hcnk6IE9yZGVyU3VtbWFyeU1vZGVsO1xuICBwdWJsaWMgc3ViVGl0bGU6IEg1V2l0aEljb25Nb2RlbDtcbiAgcHVibGljIGZ1bmRzSW5mbzogSDVXaXRoSWNvbk1vZGVsID0ge1xuICAgIGljb246IEljb25zLkNPTkZJUk1BVElPTixcbiAgICBpY29uRmlyc3Q6IHRydWUsXG4gICAgdGV4dDogJ1N1ZmZpY2llbnQgRnVuZHMnLFxuICAgIGljb25Db2xvcjogJyMwMEQ1NkInXG4gIH07XG4gIHB1YmxpYyBjYW5jZWxDb250ZW50OiBDb25maXJtYXRpb25Nb2RlbDtcblxuICBwdWJsaWMgcGF5UGVyQ2xpY2tCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JDb3VudDogbnVtYmVyID0gMDtcbiAgcHVibGljIG1vZGFsVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpO1xuICAgIHRoaXMudXBkYXRlTW9kYWxIZWFkZXIoKTtcbiAgICB0aGlzLnVwZGF0ZU9yZGVyU3VtbWFyeSgpO1xuICAgIHRoaXMuY2FuY2VsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFiYW5kb24geW91ciBvcmRlcj8nLFxuICAgICAgY29udGVudDpcbiAgICAgICAgJ0FsbCBzZWxlY3Rpb25zIHdpbGwgYmUgZGVsZXRlZCBhbmQgeW91IHdpbGwgaGF2ZSB0byBzdGFydCBvdmVyLicsXG4gICAgICBidG5QcmltYXJ5OiAnQ29udGludWUgT3JkZXInLFxuICAgICAgYnRuU2Vjb25kYXJ5OiAnQWJhbmRvbiBPcmRlcidcbiAgICB9O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHM7XG4gIH1cblxuICBpbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpIHtcbiAgICB0aGlzLmZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdCA9IHRoaXMubW9kZWwuam9iQm9hcmRzO1xuICAgIHRoaXMuam9iQ291bnQgPSB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGg7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkgPSB7XG4gICAgICB0aXRsZTogJ1lvdXIgT3JkZXInLFxuICAgICAgaW52b2ljZUFyZWFzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5lSXRlbXM6IFtdLFxuICAgICAgICAgIHRpdGxlOiAnUGF5LVBlci1DbGljaycsXG4gICAgICAgICAgdG90YWw6IHtcbiAgICAgICAgICAgIHRleHRMZWZ0OiAnQ29zdCBQcm9ncmFtYXRpYyBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdKb2IgQm9hcmRzJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IEpvYiBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIHRleHRMZWZ0OiAnJyxcbiAgICAgICAgdGV4dFJpZ2h0OiAnJDAnLFxuICAgICAgICBsYWJlbDogJ1RvdGFsOidcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlTW9kYWxIZWFkZXIoKSB7XG4gICAgbGV0IHN1YlRpdGxlVG9vbHRpcDogc3RyaW5nID0gJyc7XG4gICAgbGV0IGpvYk51bWJlciA9IDE7XG4gICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UuZm9yRWFjaChqb2IgPT4ge1xuICAgICAgc3ViVGl0bGVUb29sdGlwID0gc3ViVGl0bGVUb29sdGlwICsgYCR7am9iLmpvYlRpdGxlfSBbJHtqb2IuaWR9XWA7XG4gICAgICBpZiAoam9iTnVtYmVyICE9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aCkge1xuICAgICAgICBzdWJUaXRsZVRvb2x0aXAgPSBzdWJUaXRsZVRvb2x0aXAgKyAnPC9icj4nO1xuICAgICAgfVxuICAgICAgam9iTnVtYmVyKys7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJUaXRsZSA9IHtcbiAgICAgIHRvb2x0aXBIdG1sOiBzdWJUaXRsZVRvb2x0aXAsXG4gICAgICB0ZXh0OiBgJHt0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9IEpvYnNgLFxuICAgICAgaWNvbkZpcnN0OiBmYWxzZSxcbiAgICAgIGljb246IEljb25zLklORk8sXG4gICAgICBwbGFjZW1lbnQ6ICdyaWdodCdcbiAgICB9O1xuICB9XG5cbiAgb25LZXl3b3JkU2VhcmNoKGtleXdvcmQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGJvYXJkID0+XG4gICAgICBib2FyZC5ib2FyZE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrZXl3b3JkLnRvTG93ZXJDYXNlKCkpXG4gICAgKTtcbiAgICB0aGlzLmtleXdvcmRTZWFyY2hDaGFuZ2UuZW1pdChrZXl3b3JkKTtcbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2sodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQodGV4dCk7XG4gIH1cblxuICBvbkNsb3NlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZUJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25Qb3N0aW5nQm9hcmRDaGFuZ2Uoc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsKSB7XG4gICAgdGhpcy51cGRhdGVPcmRlclN1bW1hcnkoKTtcbiAgfVxuXG4gIGFkZExpbmVJdGVtKFxuICAgIGludm9pY2VBcmVhSW5kZXg6IG51bWJlcixcbiAgICBzZWxlY3RlZEJvYXJkOiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbiAgKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLmxpbmVJdGVtcy5wdXNoKHtcbiAgICAgIHRleHRMZWZ0OiBzZWxlY3RlZEJvYXJkLmJvYXJkTmFtZSxcbiAgICAgIHRleHRSaWdodDogYCQke3NlbGVjdGVkQm9hcmQuYm9hcmRQcmljZX1gXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKGludm9pY2VBcmVhSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGludm9pY2VBcmVhVG90YWwgPSAwO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMuZm9yRWFjaChsaSA9PiB7XG4gICAgICBpbnZvaWNlQXJlYVRvdGFsID0gaW52b2ljZUFyZWFUb3RhbCArICtsaS50ZXh0UmlnaHQucmVwbGFjZSgnJCcsICcnKTtcbiAgICB9KTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbaW52b2ljZUFyZWFJbmRleF0udG90YWwudGV4dFJpZ2h0ID0gYHggKCR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9KSBKb2JzID0gJCR7aW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aH1gO1xuICAgIHJldHVybiBpbnZvaWNlQXJlYVRvdGFsICogdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuICB9XG5cbiAgY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbDogbnVtYmVyLCBqb2JCb2FyZEFyZWFUb3RhbDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRKb2JCb2FyZHMgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZClcbiAgICAgIC5sZW5ndGg7XG5cbiAgICBjb25zdCBqb2JUb0FkdmVydGlzZUNvdW50ID0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuXG4gICAgY29uc3Qgb3JkZXJTdW1tYXJ5VGV4dCA9IGAoJHtzZWxlY3RlZEpvYkJvYXJkc30pIEJvYXJkcyB4ICR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9IEpvYnMgPSAoJHtzZWxlY3RlZEpvYkJvYXJkcyAqIGpvYlRvQWR2ZXJ0aXNlQ291bnR9KSBBZHNgO1xuXG4gICAgdGhpcy5vcmRlclN1bW1hcnkudG90YWwgPSB7XG4gICAgICBsYWJlbDogJ1RvdGFsOicsXG4gICAgICB0ZXh0TGVmdDogb3JkZXJTdW1tYXJ5VGV4dCxcbiAgICAgIHRleHRSaWdodDogYCQke3BheVBlckNsaWNrQXJlYVRvdGFsICsgam9iQm9hcmRBcmVhVG90YWx9YFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVPcmRlclN1bW1hcnkoKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzWzBdLmxpbmVJdGVtcyA9IFtdO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1sxXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm1vZGVsLmpvYkJvYXJkcy5mb3JFYWNoKGpiID0+IHtcbiAgICAgIGlmIChqYi5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGlmIChqYi5pc1BheVBlckNsaWNrKSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgwLCBqYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgxLCBqYik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHBheVBlckNsaWNrQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDApO1xuICAgIGNvbnN0IGpvYkJvYXJkQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDEpO1xuICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbCwgam9iQm9hcmRBcmVhVG90YWwpO1xuICAgIGlmICh0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5wb3N0aW5nQm9hcmRDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgfVxufVxuIiwiPHN5bXBob255LXR3by1jb2x1bW4tbW9kYWwtdGVtcGxhdGUgKm5nSWY9XCIhbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCI+XG4gIDxzeW1waG9ueS1oNFxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uICYmICFtb2RlbC5pc0xvYWRpbmdcIlxuICAgIHNmeC1tb2RhbC10aXRsZVxuICAgID5TZWxlY3QgWW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5SZXZpZXcgeW91IEpvYiBBZCBCdXlzPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Db25maXJtYXRpb24gb2YgeW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dQcm9jZXNzaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPlByb2Nlc3NpbmcgT3JkZXIuLi48L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPkxvYWRpbmcgSm9iIEJvYXJkcy4uLjwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaWNvblxuICAgIHNmeC1jbG9zZS1idXR0b25cbiAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAoY2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gID48L3N5bXBob255LWljb24+XG4gIDxzeW1waG9ueS1oNS13aXRoLWljb24gc2Z4LW1vZGFsLXN1YnRpdGxlIFttb2RlbF09XCJzdWJUaXRsZVwiPlxuICA8L3N5bXBob255LWg1LXdpdGgtaWNvbj5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPHN5bXBob255LWlucHV0LXRleHRcbiAgICAgIHNmeC1sZWZ0LWNvbC1oZWFkZXJcbiAgICAgIFtub01hcmdpbl09XCJ0cnVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIEFkIEJvYXJkcydcIlxuICAgICAgW2ljb25dPVwiJ3NpLXNlYXJjaC1uZXcnXCJcbiAgICAgICh0ZXh0Q2hhbmdlKT1cIm9uS2V5d29yZFNlYXJjaCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9zeW1waG9ueS1pbnB1dC10ZXh0PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb2wtaGVhZGVyLWlubmVyXCIgc2Z4LXJpZ2h0LWNvbC1oZWFkZXI+XG4gICAgICA8c3ltcGhvbnktaDUtd2l0aC1pY29uXG4gICAgICAgIHNmeC1yaWdodC1jb2wtaGVhZGVyXG4gICAgICAgICpuZ0lmPVwibW9kZWwuc2hvd0Z1bmRzXCJcbiAgICAgICAgY2xhc3M9XCJwdWxsLXJpZ2h0XCJcbiAgICAgICAgW21vZGVsXT1cImZ1bmRzSW5mb1wiXG4gICAgICA+PC9zeW1waG9ueS1oNS13aXRoLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzZngtbGVmdC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkcyBzZngtcHItMTBcIj5cbiAgICAgIDxzeW1waG9ueS1hZHZlcnRpc2UtcG9zdGluZ2JvYXJkLXNlbGVjdGlvbi1saXN0XG4gICAgICAgIFttb2RlbF09XCJmaWx0ZXJlZFBvc3RpbmdCb2FyZExpc3RcIlxuICAgICAgICAocG9zdGluZ0JvYXJkQ2hhbmdlKT1cIm9uUG9zdGluZ0JvYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvc3ltcGhvbnktYWR2ZXJ0aXNlLXBvc3Rpbmdib2FyZC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtcmlnaHQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8ZGl2IHNmeC1sZWZ0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzXCI+XG4gICAgICA8c3ltcGhvbnktYWR2ZXJ0aXNlLW9yZGVyLXJldmlldz48L3N5bXBob255LWFkdmVydGlzZS1vcmRlci1yZXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LXJpZ2h0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtbGVmdC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gICAgPGRpdiBzZngtcmlnaHQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGFnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm94IGJvdW5jZS03XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHN5bXBob255LWgyPllvdXIgb3JkZXIgaXMgY29tcGxldGU8L3N5bXBob255LWgyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Y2Nlc3MtaWNvbi1zcGFjaW5nXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJ3NpLWNvbmZpcm1hdGlvbidcIlxuICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiJyMwMEQ1NkInXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCInNTBweCdcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93UHJvY2Vzc2luZ1wiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICAgIGNsYXNzPVwicG9zdGluZy1ib2FyZHMgc2Z4LXAtMzBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3NpbmctY29udGFpbmVyXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICAgID48Yj5TbWFzaEZseVg8L2I+IGlzIHN1Ym1pdHRpbmcgeW91ciBvcmRlciB0byB5b3VyIHNlbGVjdGVkIGpvYiBib2FyZHMuXG4gICAgICAgIFNvbWUgb3JkZXJzIGhhcHBlbiBpbW1lZGlhdGVseSwgd2hpbGUgb3RoZXJzIHRha2UgYSBsaXR0bGUgbW9yZSB0aW1lLlxuICAgICAgICBDaGVjayB5b3VyIG9yZGVyIHN0YXR1cyBpZiB5b3UgZG9uJ3QgcmVjaWV2ZSBhIGNvbmZpcm1hdGlvbiBpbiB0aGUgbmV4dFxuICAgICAgICAyNGhvdXJzLjwvc3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNmeC1tdC04MFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLWJvZHktYXJlYT5cbiAgICA8c3ltcGhvbnktc2Z4LWxvYWRlcj48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gIDwvZGl2PlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidSZXZpZXcgT3JkZXInXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tYmFja1xuICAgIFt0ZXh0XT1cIidFZGl0IE9yZGVyJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ0J1eSdcIlxuICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInRmluaXNoICYgQ2xvc2UnXCJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuPC9zeW1waG9ueS10d28tY29sdW1uLW1vZGFsLXRlbXBsYXRlPlxuPHN5bXBob255LWNvbmZpcm1hdGlvbi1tb2RhbFxuICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgKGNsb3NlQnV0dG9uQ2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gIFttb2RlbF09XCJjYW5jZWxDb250ZW50XCJcbj5cbjwvc3ltcGhvbnktY29uZmlybWF0aW9uLW1vZGFsPlxuIl19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEM7UUF4QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFDTSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELGNBQVMsR0FBb0I7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBR0ssc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFB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LEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7O29IQTVLVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw4UkN6QnBDLHF1TEFvTEE7MkZEM0phLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSwwQkFBMEI7MEVBSzNCLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvaWNvbi9pY29uLmVudW0nO1xuaW1wb3J0IHsgT3JkZXJTdW1tYXJ5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9vcmdhbmlzbXMvb3JkZXItc3VtbWFyeS9vcmRlci1zdW1tYXJ5Lm1vZGVsJztcbmltcG9ydCB7IEg1V2l0aEljb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vbGVjdWxlcy9oNS13aXRoLWljb24vaDUtd2l0aC1pY29uLm1vZGVsJztcbmltcG9ydCB7XG4gIEFkdmVydGlzZU1vZGFsTW9kZWwsXG4gIFBvc3RpbmdCb2FyZHNTZWxlY3Rpb25Nb2RlbFxufSBmcm9tICcuL2FkdmVydGlzZS1tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBJbnZvaWNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaW52b2ljZS1saW5lLWl0ZW0vaW52b2ljZS1saW5lLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9vcmdhbmlzbXMvY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWFkdmVydGlzZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZHZlcnRpc2VNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbW9kZWw6IFBhcnRpYWw8QWR2ZXJ0aXNlTW9kYWxNb2RlbD47XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsb3NlQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcG9zdGluZ0JvYXJkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+XG4gID4oKTtcbiAgQE91dHB1dCgpIGtleXdvcmRTZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0OiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxbXTtcbiAgcHVibGljIG9yZGVyU3VtbWFyeTogT3JkZXJTdW1tYXJ5TW9kZWw7XG4gIHB1YmxpYyBzdWJUaXRsZTogSDVXaXRoSWNvbk1vZGVsO1xuICBwdWJsaWMgZnVuZHNJbmZvOiBINVdpdGhJY29uTW9kZWwgPSB7XG4gICAgaWNvbjogSWNvbnMuQ09ORklSTUFUSU9OLFxuICAgIGljb25GaXJzdDogdHJ1ZSxcbiAgICB0ZXh0OiAnU3VmZmljaWVudCBGdW5kcycsXG4gICAgaWNvbkNvbG9yOiAnIzAwRDU2QidcbiAgfTtcbiAgcHVibGljIGNhbmNlbENvbnRlbnQ6IENvbmZpcm1hdGlvbk1vZGVsO1xuXG4gIHB1YmxpYyBwYXlQZXJDbGlja0JvYXJkczogSW52b2ljZU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGpvYkJvYXJkczogSW52b2ljZU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGpvYkNvdW50OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgbW9kYWxUaXRsZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBpc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpc2VEZWZhdWx0VmFsdWVzKCk7XG4gICAgdGhpcy51cGRhdGVNb2RhbEhlYWRlcigpO1xuICAgIHRoaXMudXBkYXRlT3JkZXJTdW1tYXJ5KCk7XG4gICAgdGhpcy5jYW5jZWxDb250ZW50ID0ge1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYWJhbmRvbiB5b3VyIG9yZGVyPycsXG4gICAgICBjb250ZW50OlxuICAgICAgICAnQWxsIHNlbGVjdGlvbnMgd2lsbCBiZSBkZWxldGVkIGFuZCB5b3Ugd2lsbCBoYXZlIHRvIHN0YXJ0IG92ZXIuJyxcbiAgICAgIGJ0blByaW1hcnk6ICdDb250aW51ZSBPcmRlcicsXG4gICAgICBidG5TZWNvbmRhcnk6ICdBYmFuZG9uIE9yZGVyJ1xuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZFBvc3RpbmdCb2FyZExpc3QgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcztcbiAgfVxuXG4gIGluaXRpYWxpc2VEZWZhdWx0VmFsdWVzKCkge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHM7XG4gICAgdGhpcy5qb2JDb3VudCA9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeSA9IHtcbiAgICAgIHRpdGxlOiAnWW91ciBPcmRlcicsXG4gICAgICBpbnZvaWNlQXJlYXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdQYXktUGVyLUNsaWNrJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IFByb2dyYW1hdGljIEJvYXJkcycsXG4gICAgICAgICAgICB0ZXh0UmlnaHQ6IGB4ICgke3RoaXMuam9iQ291bnR9KSBKb2JzID0gJDBgXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluZUl0ZW1zOiBbXSxcbiAgICAgICAgICB0aXRsZTogJ0pvYiBCb2FyZHMnLFxuICAgICAgICAgIHRvdGFsOiB7XG4gICAgICAgICAgICB0ZXh0TGVmdDogJ0Nvc3QgSm9iIEJvYXJkcycsXG4gICAgICAgICAgICB0ZXh0UmlnaHQ6IGB4ICgke3RoaXMuam9iQ291bnR9KSBKb2JzID0gJDBgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdG90YWw6IHtcbiAgICAgICAgdGV4dExlZnQ6ICcnLFxuICAgICAgICB0ZXh0UmlnaHQ6ICckMCcsXG4gICAgICAgIGxhYmVsOiAnVG90YWw6J1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICB1cGRhdGVNb2RhbEhlYWRlcigpIHtcbiAgICBsZXQgc3ViVGl0bGVUb29sdGlwOiBzdHJpbmcgPSAnJztcbiAgICBsZXQgam9iTnVtYmVyID0gMTtcbiAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5mb3JFYWNoKGpvYiA9PiB7XG4gICAgICBzdWJUaXRsZVRvb2x0aXAgPSBzdWJUaXRsZVRvb2x0aXAgKyBgJHtqb2Iuam9iVGl0bGV9IFske2pvYi5pZH1dYDtcbiAgICAgIGlmIChqb2JOdW1iZXIgIT0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoKSB7XG4gICAgICAgIHN1YlRpdGxlVG9vbHRpcCA9IHN1YlRpdGxlVG9vbHRpcCArICc8L2JyPic7XG4gICAgICB9XG4gICAgICBqb2JOdW1iZXIrKztcbiAgICB9KTtcbiAgICB0aGlzLnN1YlRpdGxlID0ge1xuICAgICAgdG9vbHRpcEh0bWw6IHN1YlRpdGxlVG9vbHRpcCxcbiAgICAgIHRleHQ6IGAke3RoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aH0gSm9ic2AsXG4gICAgICBpY29uRmlyc3Q6IGZhbHNlLFxuICAgICAgaWNvbjogSWNvbnMuSU5GTyxcbiAgICAgIHBsYWNlbWVudDogJ3JpZ2h0J1xuICAgIH07XG4gIH1cblxuICBvbktleXdvcmRTZWFyY2goa2V5d29yZDogc3RyaW5nKSB7XG4gICAgdGhpcy5rZXl3b3JkU2VhcmNoQ2hhbmdlLmVtaXQoa2V5d29yZCk7XG4gIH1cblxuICBvbkJ1dHRvbkNsaWNrKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KHRleHQpO1xuICB9XG5cbiAgb25DbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUG9zdGluZ0JvYXJkQ2hhbmdlKHNlbGVjdGVkQm9hcmQ6IFBvc3RpbmdCb2FyZHNTZWxlY3Rpb25Nb2RlbCkge1xuICAgIHRoaXMudXBkYXRlT3JkZXJTdW1tYXJ5KCk7XG4gIH1cblxuICBhZGRMaW5lSXRlbShcbiAgICBpbnZvaWNlQXJlYUluZGV4OiBudW1iZXIsXG4gICAgc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsXG4gICkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMucHVzaCh7XG4gICAgICB0ZXh0TGVmdDogc2VsZWN0ZWRCb2FyZC5ib2FyZE5hbWUsXG4gICAgICB0ZXh0UmlnaHQ6IGAkJHtzZWxlY3RlZEJvYXJkLmJvYXJkUHJpY2V9YFxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbChpbnZvaWNlQXJlYUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBpbnZvaWNlQXJlYVRvdGFsID0gMDtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbaW52b2ljZUFyZWFJbmRleF0ubGluZUl0ZW1zLmZvckVhY2gobGkgPT4ge1xuICAgICAgaW52b2ljZUFyZWFUb3RhbCA9IGludm9pY2VBcmVhVG90YWwgKyArbGkudGV4dFJpZ2h0LnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgfSk7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLnRvdGFsLnRleHRSaWdodCA9IGB4ICgke1xuICAgICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoXG4gICAgfSkgSm9icyA9ICQke2ludm9pY2VBcmVhVG90YWwgKiB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9YDtcbiAgICByZXR1cm4gaW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcbiAgfVxuXG4gIGNhbGN1bGF0ZU9yZGVyVG90YWwocGF5UGVyQ2xpY2tBcmVhVG90YWw6IG51bWJlciwgam9iQm9hcmRBcmVhVG90YWw6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkSm9iQm9hcmRzID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGpiID0+IGpiLmlzU2VsZWN0ZWQpXG4gICAgICAubGVuZ3RoO1xuXG4gICAgY29uc3Qgam9iVG9BZHZlcnRpc2VDb3VudCA9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcblxuICAgIGNvbnN0IG9yZGVyU3VtbWFyeVRleHQgPSBgKCR7c2VsZWN0ZWRKb2JCb2FyZHN9KSBCb2FyZHMgeCAke1xuICAgICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoXG4gICAgfSBKb2JzID0gKCR7c2VsZWN0ZWRKb2JCb2FyZHMgKiBqb2JUb0FkdmVydGlzZUNvdW50fSkgQWRzYDtcblxuICAgIHRoaXMub3JkZXJTdW1tYXJ5LnRvdGFsID0ge1xuICAgICAgbGFiZWw6ICdUb3RhbDonLFxuICAgICAgdGV4dExlZnQ6IG9yZGVyU3VtbWFyeVRleHQsXG4gICAgICB0ZXh0UmlnaHQ6IGAkJHtwYXlQZXJDbGlja0FyZWFUb3RhbCArIGpvYkJvYXJkQXJlYVRvdGFsfWBcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlT3JkZXJTdW1tYXJ5KCkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1swXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbMV0ubGluZUl0ZW1zID0gW107XG4gICAgdGhpcy5tb2RlbC5qb2JCb2FyZHMuZm9yRWFjaChqYiA9PiB7XG4gICAgICBpZiAoamIuaXNTZWxlY3RlZCkge1xuICAgICAgICBpZiAoamIuaXNQYXlQZXJDbGljaykge1xuICAgICAgICAgIHRoaXMuYWRkTGluZUl0ZW0oMCwgamIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWRkTGluZUl0ZW0oMSwgamIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXlQZXJDbGlja0FyZWFUb3RhbCA9IHRoaXMuY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbCgwKTtcbiAgICBjb25zdCBqb2JCb2FyZEFyZWFUb3RhbCA9IHRoaXMuY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbCgxKTtcbiAgICB0aGlzLmNhbGN1bGF0ZU9yZGVyVG90YWwocGF5UGVyQ2xpY2tBcmVhVG90YWwsIGpvYkJvYXJkQXJlYVRvdGFsKTtcbiAgICBpZiAodGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGpiID0+IGpiLmlzU2VsZWN0ZWQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5pc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMucG9zdGluZ0JvYXJkQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gIH1cbn1cbiIsIjxzeW1waG9ueS10d28tY29sdW1uLW1vZGFsLXRlbXBsYXRlICpuZ0lmPVwiIW1vZGVsLm5hdmlnYXRpb24uc2hvd0NhbmNlbFwiPlxuICA8c3ltcGhvbnktaDRcbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvbiAmJiAhbW9kZWwuaXNMb2FkaW5nXCJcbiAgICBzZngtbW9kYWwtdGl0bGVcbiAgICA+U2VsZWN0IFlvdXIgSm9iIEFkIEJ1eXM8L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+UmV2aWV3IHlvdSBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+Q29uZmlybWF0aW9uIG9mIHlvdXIgSm9iIEFkIEJ1eXM8L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93UHJvY2Vzc2luZ1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Qcm9jZXNzaW5nIE9yZGVyLi4uPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLmlzTG9hZGluZ1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Mb2FkaW5nIEpvYiBCb2FyZHMuLi48L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWljb25cbiAgICBzZngtY2xvc2UtYnV0dG9uXG4gICAgW2ljb25dPVwiJ3NpLWNsb3NlLW1vZGFsJ1wiXG4gICAgKGNsaWNrZWQpPVwib25DbG9zZUJ1dHRvbkNsaWNrKClcIlxuICA+PC9zeW1waG9ueS1pY29uPlxuICA8c3ltcGhvbnktaDUtd2l0aC1pY29uIHNmeC1tb2RhbC1zdWJ0aXRsZSBbbW9kZWxdPVwic3ViVGl0bGVcIj5cbiAgPC9zeW1waG9ueS1oNS13aXRoLWljb24+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxzeW1waG9ueS1pbnB1dC10ZXh0XG4gICAgICBzZngtbGVmdC1jb2wtaGVhZGVyXG4gICAgICBbbm9NYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBBZCBCb2FyZHMnXCJcbiAgICAgIFtpY29uXT1cIidzaS1zZWFyY2gtbmV3J1wiXG4gICAgICAodGV4dENoYW5nZSk9XCJvbktleXdvcmRTZWFyY2goJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dD5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sLWhlYWRlci1pbm5lclwiIHNmeC1yaWdodC1jb2wtaGVhZGVyPlxuICAgICAgPHN5bXBob255LWg1LXdpdGgtaWNvblxuICAgICAgICBzZngtcmlnaHQtY29sLWhlYWRlclxuICAgICAgICAqbmdJZj1cIm1vZGVsLnNob3dGdW5kc1wiXG4gICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgIFttb2RlbF09XCJmdW5kc0luZm9cIlxuICAgICAgPjwvc3ltcGhvbnktaDUtd2l0aC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc2Z4LWxlZnQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHMgc2Z4LXByLTEwXCI+XG4gICAgICA8c3ltcGhvbnktYWR2ZXJ0aXNlLXBvc3Rpbmdib2FyZC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICBbbW9kZWxdPVwibW9kZWwuam9iQm9hcmRzXCJcbiAgICAgICAgKHBvc3RpbmdCb2FyZENoYW5nZSk9XCJvblBvc3RpbmdCb2FyZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L3N5bXBob255LWFkdmVydGlzZS1wb3N0aW5nYm9hcmQtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LXJpZ2h0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPGRpdiBzZngtbGVmdC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkc1wiPlxuICAgICAgPHN5bXBob255LWFkdmVydGlzZS1vcmRlci1yZXZpZXc+PC9zeW1waG9ueS1hZHZlcnRpc2Utb3JkZXItcmV2aWV3PlxuICAgIDwvZGl2PlxuXG4gICAgPHN5bXBob255LW9yZGVyLXN1bW1hcnlcbiAgICAgIHNmeC1yaWdodC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxzeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGVcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LWxlZnQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICAgIDxkaXYgc2Z4LXJpZ2h0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJveCBib3VuY2UtN1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wbGV0ZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS1oMj5Zb3VyIG9yZGVyIGlzIGNvbXBsZXRlPC9zeW1waG9ueS1oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWNjZXNzLWljb24tc3BhY2luZ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cIidzaS1jb25maXJtYXRpb24nXCJcbiAgICAgICAgICAgICAgICBbaWNvbkNvbG9yXT1cIicjMDBENTZCJ1wiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJzUwcHgnXCJcbiAgICAgICAgICAgICAgPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd1Byb2Nlc3NpbmdcIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgICBjbGFzcz1cInBvc3RpbmctYm9hcmRzIHNmeC1wLTMwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzaW5nLWNvbnRhaW5lclwiPlxuICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICA+PGI+U21hc2hGbHlYPC9iPiBpcyBzdWJtaXR0aW5nIHlvdXIgb3JkZXIgdG8geW91ciBzZWxlY3RlZCBqb2IgYm9hcmRzLlxuICAgICAgICBTb21lIG9yZGVycyBoYXBwZW4gaW1tZWRpYXRlbHksIHdoaWxlIG90aGVycyB0YWtlIGEgbGl0dGxlIG1vcmUgdGltZS5cbiAgICAgICAgQ2hlY2sgeW91ciBvcmRlciBzdGF0dXMgaWYgeW91IGRvbid0IHJlY2lldmUgYSBjb25maXJtYXRpb24gaW4gdGhlIG5leHRcbiAgICAgICAgMjRob3Vycy48L3N5bXBob255LXBhcmFncmFwaFxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZngtbXQtODBcIj5cbiAgICAgIDxzeW1waG9ueS1zZngtbG9hZGVyPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxvYWRlci1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsLmlzTG9hZGluZ1wiIHNmeC1tb2RhbC1ib2R5LWFyZWE+XG4gICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICA8L2Rpdj5cblxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIHNmeC1idXR0b24tc2Vjb25kYXJ5XG4gICAgW3RleHRdPVwiJ0NhbmNlbCdcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uXCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInUmV2aWV3IE9yZGVyJ1wiXG4gICAgW2Rpc2FibGVkXT1cImlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWRcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtYnV0dG9uLWJhY2tcbiAgICBbdGV4dF09XCInRWRpdCBPcmRlcidcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tc2Vjb25kYXJ5XG4gICAgW3RleHRdPVwiJ0NhbmNlbCdcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidCdXknXCJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ0ZpbmlzaCAmIENsb3NlJ1wiXG4gICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbjwvc3ltcGhvbnktdHdvLWNvbHVtbi1tb2RhbC10ZW1wbGF0ZT5cbjxzeW1waG9ueS1jb25maXJtYXRpb24tbW9kYWxcbiAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0NhbmNlbFwiXG4gIChidXR0b25DbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gIChjbG9zZUJ1dHRvbkNsaWNrZWQpPVwib25DbG9zZUJ1dHRvbkNsaWNrKClcIlxuICBbbW9kZWxdPVwiY2FuY2VsQ29udGVudFwiXG4+XG48L3N5bXBob255LWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
@@ -2,4 +2,4 @@ export class MultiselectSearchCheckbox {
2
2
  }
3
3
  export class MultiSelectDataModule {
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7Q0FNckM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0NBc0JqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94IHtcbiAgICBpZDogbnVtYmVyIHwgYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsSW5mbz86IHN0cmluZztcbiAgICBzb3J0T3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERhdGFNb2R1bGUge1xuICAgIHNlYXJjaGVkRHJvcGRvd25MaXN0OiBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94W107XG4gICAgc2VsZWN0ZWREcm9wZG93bkxpc3Q6IE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3hbXTtcbiAgICBjb21wb25lbnRIZWFkaW5nOiBzdHJpbmc7XG4gICAgc2VhcmNoSW5wdXQ6IHN0cmluZztcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gICAgc2hvd0NyZWF0ZU5ld0l0ZW1zOiBib29sZWFuO1xuICAgIGxhYmVsQ3JlYXRlTmV3SXRlbXM/OiBzdHJpbmc7XG4gICAgaGFzTWF4U2VsZWN0aW9uczogYm9vbGVhbjtcbiAgICBtYXhTZWxlY3Rpb25zQ291bnQ6IG51bWJlcjtcbiAgICBzaG91bGRJbml0aWFsaXplPzogYm9vbGVhbjtcbiAgICBzaG91bGRMb2FkRGF0YU9uSW5pdD86IGJvb2xlYW47XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGhhc1BhZ2luYXRpb24/OiBib29sZWFuO1xuICAgIGZldGNoRnJvbVNlc3Npb24/OiBib29sZWFuO1xuICAgIGhhc1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgICBtb2RlbElkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzUmVsZXZhbmNlPzogYm9vbGVhbjtcbiAgICBzaG93Q3JlYXRlTmV3TW9kYWw/OiBib29sZWFuO1xuICAgIGlzRXhwYW5kZWRPbkluaXRpYWxpemU/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkxpc3Qge1xuICAgIGxhdGl0dWRlPzogbnVtYmVyO1xuICAgIGxvbmdpdHVkZT86IG51bWJlcjtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7Q0FNckM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0NBdUJqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94IHtcbiAgICBpZDogbnVtYmVyIHwgYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsSW5mbz86IHN0cmluZztcbiAgICBzb3J0T3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERhdGFNb2R1bGUge1xuICAgIHNlYXJjaGVkRHJvcGRvd25MaXN0OiBNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94W107XG4gICAgc2VsZWN0ZWREcm9wZG93bkxpc3Q6IE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3hbXTtcbiAgICBjb21wb25lbnRIZWFkaW5nOiBzdHJpbmc7XG4gICAgc2VhcmNoSW5wdXQ6IHN0cmluZztcbiAgICBjb25kaXRpb24/OiBzdHJpbmc7XG4gICAgc2hvd0NyZWF0ZU5ld0l0ZW1zOiBib29sZWFuO1xuICAgIGxhYmVsQ3JlYXRlTmV3SXRlbXM/OiBzdHJpbmc7XG4gICAgaGFzTWF4U2VsZWN0aW9uczogYm9vbGVhbjtcbiAgICBtYXhTZWxlY3Rpb25zQ291bnQ6IG51bWJlcjtcbiAgICBzaG91bGRJbml0aWFsaXplPzogYm9vbGVhbjtcbiAgICBzaG91bGRMb2FkRGF0YU9uSW5pdD86IGJvb2xlYW47XG4gICAgbGltaXQ/OiBudW1iZXI7XG4gICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgIGhhc1BhZ2luYXRpb24/OiBib29sZWFuO1xuICAgIGZldGNoRnJvbVNlc3Npb24/OiBib29sZWFuO1xuICAgIGhhc1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgICBtb2RlbElkZW50aWZpZXI/OiBzdHJpbmc7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzUmVsZXZhbmNlPzogYm9vbGVhbjtcbiAgICBzaG93Q3JlYXRlTmV3TW9kYWw/OiBib29sZWFuO1xuICAgIGlzRXhwYW5kZWRPbkluaXRpYWxpemU/OiBib29sZWFuO1xuICAgIHNob3VsZFNvcnRJdGVtPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25MaXN0IHtcbiAgICBsYXRpdHVkZT86IG51bWJlcjtcbiAgICBsb25naXR1ZGU/OiBudW1iZXI7XG59XG4iXX0=
@@ -96,7 +96,6 @@ export class AdvertiseModalComponent {
96
96
  };
97
97
  }
98
98
  onKeywordSearch(keyword) {
99
- this.filteredPostingBoardList = this.model.jobBoards.filter(board => board.boardName.toLowerCase().includes(keyword.toLowerCase()));
100
99
  this.keywordSearchChange.emit(keyword);
101
100
  }
102
101
  onButtonClick(text) {
@@ -159,10 +158,10 @@ export class AdvertiseModalComponent {
159
158
  }
160
159
  }
161
160
  AdvertiseModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
162
- AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
161
+ AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: i1.TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: i5.TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: i6.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: i7.AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: i8.OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: i9.AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: i10.H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: i11.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: i12.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: i13.ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: i14.ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
163
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, decorators: [{
164
163
  type: Component,
165
- args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
164
+ args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
166
165
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
167
166
  type: Input
168
167
  }], buttonClicked: [{
@@ -174,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
174
173
  }], keywordSearchChange: [{
175
174
  type: Output
176
175
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEM7UUF4QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFDTSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELGNBQVMsR0FBb0I7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBR0ssc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVoQixR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QUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOztvSEEvS1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsOFJDekJwQyw4dUxBb0xBOzJGRDNKYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUszQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uLy4uL2F0b21zL2ljb24vaWNvbi5lbnVtJztcbmltcG9ydCB7IE9yZGVyU3VtbWFyeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL29yZGVyLXN1bW1hcnkvb3JkZXItc3VtbWFyeS5tb2RlbCc7XG5pbXBvcnQgeyBINVdpdGhJY29uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaDUtd2l0aC1pY29uL2g1LXdpdGgtaWNvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBBZHZlcnRpc2VNb2RhbE1vZGVsLFxuICBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbn0gZnJvbSAnLi9hZHZlcnRpc2UtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHsgSW52b2ljZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9sZWN1bGVzL2ludm9pY2UtbGluZS1pdGVtL2ludm9pY2UtbGluZS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vb3JnYW5pc21zL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1hZHZlcnRpc2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWR2ZXJ0aXNlTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1vZGVsOiBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+O1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHBvc3RpbmdCb2FyZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgUGFydGlhbDxBZHZlcnRpc2VNb2RhbE1vZGVsPlxuICA+KCk7XG4gIEBPdXRwdXQoKSBrZXl3b3JkU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsW107XG4gIHB1YmxpYyBvcmRlclN1bW1hcnk6IE9yZGVyU3VtbWFyeU1vZGVsO1xuICBwdWJsaWMgc3ViVGl0bGU6IEg1V2l0aEljb25Nb2RlbDtcbiAgcHVibGljIGZ1bmRzSW5mbzogSDVXaXRoSWNvbk1vZGVsID0ge1xuICAgIGljb246IEljb25zLkNPTkZJUk1BVElPTixcbiAgICBpY29uRmlyc3Q6IHRydWUsXG4gICAgdGV4dDogJ1N1ZmZpY2llbnQgRnVuZHMnLFxuICAgIGljb25Db2xvcjogJyMwMEQ1NkInXG4gIH07XG4gIHB1YmxpYyBjYW5jZWxDb250ZW50OiBDb25maXJtYXRpb25Nb2RlbDtcblxuICBwdWJsaWMgcGF5UGVyQ2xpY2tCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JCb2FyZHM6IEludm9pY2VNb2RlbFtdID0gW107XG4gIHB1YmxpYyBqb2JDb3VudDogbnVtYmVyID0gMDtcbiAgcHVibGljIG1vZGFsVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpO1xuICAgIHRoaXMudXBkYXRlTW9kYWxIZWFkZXIoKTtcbiAgICB0aGlzLnVwZGF0ZU9yZGVyU3VtbWFyeSgpO1xuICAgIHRoaXMuY2FuY2VsQ29udGVudCA9IHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFiYW5kb24geW91ciBvcmRlcj8nLFxuICAgICAgY29udGVudDpcbiAgICAgICAgJ0FsbCBzZWxlY3Rpb25zIHdpbGwgYmUgZGVsZXRlZCBhbmQgeW91IHdpbGwgaGF2ZSB0byBzdGFydCBvdmVyLicsXG4gICAgICBidG5QcmltYXJ5OiAnQ29udGludWUgT3JkZXInLFxuICAgICAgYnRuU2Vjb25kYXJ5OiAnQWJhbmRvbiBPcmRlcidcbiAgICB9O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHM7XG4gIH1cblxuICBpbml0aWFsaXNlRGVmYXVsdFZhbHVlcygpIHtcbiAgICB0aGlzLmZpbHRlcmVkUG9zdGluZ0JvYXJkTGlzdCA9IHRoaXMubW9kZWwuam9iQm9hcmRzO1xuICAgIHRoaXMuam9iQ291bnQgPSB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGg7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkgPSB7XG4gICAgICB0aXRsZTogJ1lvdXIgT3JkZXInLFxuICAgICAgaW52b2ljZUFyZWFzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsaW5lSXRlbXM6IFtdLFxuICAgICAgICAgIHRpdGxlOiAnUGF5LVBlci1DbGljaycsXG4gICAgICAgICAgdG90YWw6IHtcbiAgICAgICAgICAgIHRleHRMZWZ0OiAnQ29zdCBQcm9ncmFtYXRpYyBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdKb2IgQm9hcmRzJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IEpvYiBCb2FyZHMnLFxuICAgICAgICAgICAgdGV4dFJpZ2h0OiBgeCAoJHt0aGlzLmpvYkNvdW50fSkgSm9icyA9ICQwYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRvdGFsOiB7XG4gICAgICAgIHRleHRMZWZ0OiAnJyxcbiAgICAgICAgdGV4dFJpZ2h0OiAnJDAnLFxuICAgICAgICBsYWJlbDogJ1RvdGFsOidcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlTW9kYWxIZWFkZXIoKSB7XG4gICAgbGV0IHN1YlRpdGxlVG9vbHRpcDogc3RyaW5nID0gJyc7XG4gICAgbGV0IGpvYk51bWJlciA9IDE7XG4gICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UuZm9yRWFjaChqb2IgPT4ge1xuICAgICAgc3ViVGl0bGVUb29sdGlwID0gc3ViVGl0bGVUb29sdGlwICsgYCR7am9iLmpvYlRpdGxlfSBbJHtqb2IuaWR9XWA7XG4gICAgICBpZiAoam9iTnVtYmVyICE9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aCkge1xuICAgICAgICBzdWJUaXRsZVRvb2x0aXAgPSBzdWJUaXRsZVRvb2x0aXAgKyAnPC9icj4nO1xuICAgICAgfVxuICAgICAgam9iTnVtYmVyKys7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJUaXRsZSA9IHtcbiAgICAgIHRvb2x0aXBIdG1sOiBzdWJUaXRsZVRvb2x0aXAsXG4gICAgICB0ZXh0OiBgJHt0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9IEpvYnNgLFxuICAgICAgaWNvbkZpcnN0OiBmYWxzZSxcbiAgICAgIGljb246IEljb25zLklORk8sXG4gICAgICBwbGFjZW1lbnQ6ICdyaWdodCdcbiAgICB9O1xuICB9XG5cbiAgb25LZXl3b3JkU2VhcmNoKGtleXdvcmQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGJvYXJkID0+XG4gICAgICBib2FyZC5ib2FyZE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhrZXl3b3JkLnRvTG93ZXJDYXNlKCkpXG4gICAgKTtcbiAgICB0aGlzLmtleXdvcmRTZWFyY2hDaGFuZ2UuZW1pdChrZXl3b3JkKTtcbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2sodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQodGV4dCk7XG4gIH1cblxuICBvbkNsb3NlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZUJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25Qb3N0aW5nQm9hcmRDaGFuZ2Uoc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsKSB7XG4gICAgdGhpcy51cGRhdGVPcmRlclN1bW1hcnkoKTtcbiAgfVxuXG4gIGFkZExpbmVJdGVtKFxuICAgIGludm9pY2VBcmVhSW5kZXg6IG51bWJlcixcbiAgICBzZWxlY3RlZEJvYXJkOiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxcbiAgKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLmxpbmVJdGVtcy5wdXNoKHtcbiAgICAgIHRleHRMZWZ0OiBzZWxlY3RlZEJvYXJkLmJvYXJkTmFtZSxcbiAgICAgIHRleHRSaWdodDogYCQke3NlbGVjdGVkQm9hcmQuYm9hcmRQcmljZX1gXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKGludm9pY2VBcmVhSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGludm9pY2VBcmVhVG90YWwgPSAwO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMuZm9yRWFjaChsaSA9PiB7XG4gICAgICBpbnZvaWNlQXJlYVRvdGFsID0gaW52b2ljZUFyZWFUb3RhbCArICtsaS50ZXh0UmlnaHQucmVwbGFjZSgnJCcsICcnKTtcbiAgICB9KTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbaW52b2ljZUFyZWFJbmRleF0udG90YWwudGV4dFJpZ2h0ID0gYHggKCR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9KSBKb2JzID0gJCR7aW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aH1gO1xuICAgIHJldHVybiBpbnZvaWNlQXJlYVRvdGFsICogdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuICB9XG5cbiAgY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbDogbnVtYmVyLCBqb2JCb2FyZEFyZWFUb3RhbDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRKb2JCb2FyZHMgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZClcbiAgICAgIC5sZW5ndGg7XG5cbiAgICBjb25zdCBqb2JUb0FkdmVydGlzZUNvdW50ID0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoO1xuXG4gICAgY29uc3Qgb3JkZXJTdW1tYXJ5VGV4dCA9IGAoJHtzZWxlY3RlZEpvYkJvYXJkc30pIEJvYXJkcyB4ICR7XG4gICAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGhcbiAgICB9IEpvYnMgPSAoJHtzZWxlY3RlZEpvYkJvYXJkcyAqIGpvYlRvQWR2ZXJ0aXNlQ291bnR9KSBBZHNgO1xuXG4gICAgdGhpcy5vcmRlclN1bW1hcnkudG90YWwgPSB7XG4gICAgICBsYWJlbDogJ1RvdGFsOicsXG4gICAgICB0ZXh0TGVmdDogb3JkZXJTdW1tYXJ5VGV4dCxcbiAgICAgIHRleHRSaWdodDogYCQke3BheVBlckNsaWNrQXJlYVRvdGFsICsgam9iQm9hcmRBcmVhVG90YWx9YFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVPcmRlclN1bW1hcnkoKSB7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzWzBdLmxpbmVJdGVtcyA9IFtdO1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1sxXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm1vZGVsLmpvYkJvYXJkcy5mb3JFYWNoKGpiID0+IHtcbiAgICAgIGlmIChqYi5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGlmIChqYi5pc1BheVBlckNsaWNrKSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgwLCBqYik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hZGRMaW5lSXRlbSgxLCBqYik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHBheVBlckNsaWNrQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDApO1xuICAgIGNvbnN0IGpvYkJvYXJkQXJlYVRvdGFsID0gdGhpcy5jYWxjdWxhdGVJbnZvaWNlQXJlYVRvdGFsKDEpO1xuICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJUb3RhbChwYXlQZXJDbGlja0FyZWFUb3RhbCwgam9iQm9hcmRBcmVhVG90YWwpO1xuICAgIGlmICh0aGlzLm1vZGVsLmpvYkJvYXJkcy5maWx0ZXIoamIgPT4gamIuaXNTZWxlY3RlZCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5wb3N0aW5nQm9hcmRDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgfVxufVxuIiwiPHN5bXBob255LXR3by1jb2x1bW4tbW9kYWwtdGVtcGxhdGUgKm5nSWY9XCIhbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCI+XG4gIDxzeW1waG9ueS1oNFxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uICYmICFtb2RlbC5pc0xvYWRpbmdcIlxuICAgIHNmeC1tb2RhbC10aXRsZVxuICAgID5TZWxlY3QgWW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5SZXZpZXcgeW91IEpvYiBBZCBCdXlzPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Db25maXJtYXRpb24gb2YgeW91ciBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dQcm9jZXNzaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPlByb2Nlc3NpbmcgT3JkZXIuLi48L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLXRpdGxlXG4gICAgPkxvYWRpbmcgSm9iIEJvYXJkcy4uLjwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaWNvblxuICAgIHNmeC1jbG9zZS1idXR0b25cbiAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAoY2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gID48L3N5bXBob255LWljb24+XG4gIDxzeW1waG9ueS1oNS13aXRoLWljb24gc2Z4LW1vZGFsLXN1YnRpdGxlIFttb2RlbF09XCJzdWJUaXRsZVwiPlxuICA8L3N5bXBob255LWg1LXdpdGgtaWNvbj5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPHN5bXBob255LWlucHV0LXRleHRcbiAgICAgIHNmeC1sZWZ0LWNvbC1oZWFkZXJcbiAgICAgIFtub01hcmdpbl09XCJ0cnVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIEFkIEJvYXJkcydcIlxuICAgICAgW2ljb25dPVwiJ3NpLXNlYXJjaC1uZXcnXCJcbiAgICAgICh0ZXh0Q2hhbmdlKT1cIm9uS2V5d29yZFNlYXJjaCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9zeW1waG9ueS1pbnB1dC10ZXh0PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb2wtaGVhZGVyLWlubmVyXCIgc2Z4LXJpZ2h0LWNvbC1oZWFkZXI+XG4gICAgICA8c3ltcGhvbnktaDUtd2l0aC1pY29uXG4gICAgICAgIHNmeC1yaWdodC1jb2wtaGVhZGVyXG4gICAgICAgICpuZ0lmPVwibW9kZWwuc2hvd0Z1bmRzXCJcbiAgICAgICAgY2xhc3M9XCJwdWxsLXJpZ2h0XCJcbiAgICAgICAgW21vZGVsXT1cImZ1bmRzSW5mb1wiXG4gICAgICA+PC9zeW1waG9ueS1oNS13aXRoLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzZngtbGVmdC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkcyBzZngtcHItMTBcIj5cbiAgICAgIDxzeW1waG9ueS1hZHZlcnRpc2UtcG9zdGluZ2JvYXJkLXNlbGVjdGlvbi1saXN0XG4gICAgICAgIFttb2RlbF09XCJmaWx0ZXJlZFBvc3RpbmdCb2FyZExpc3RcIlxuICAgICAgICAocG9zdGluZ0JvYXJkQ2hhbmdlKT1cIm9uUG9zdGluZ0JvYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvc3ltcGhvbnktYWR2ZXJ0aXNlLXBvc3Rpbmdib2FyZC1zZWxlY3Rpb24tbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtcmlnaHQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8c3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlXG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8ZGl2IHNmeC1sZWZ0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzXCI+XG4gICAgICA8c3ltcGhvbnktYWR2ZXJ0aXNlLW9yZGVyLXJldmlldz48L3N5bXBob255LWFkdmVydGlzZS1vcmRlci1yZXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LXJpZ2h0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxzeW1waG9ueS1vcmRlci1zdW1tYXJ5XG4gICAgICBzZngtbGVmdC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gICAgPGRpdiBzZngtcmlnaHQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGFnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm94IGJvdW5jZS03XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHN5bXBob255LWgyPllvdXIgb3JkZXIgaXMgY29tcGxldGU8L3N5bXBob255LWgyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Y2Nlc3MtaWNvbi1zcGFjaW5nXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiJ3NpLWNvbmZpcm1hdGlvbidcIlxuICAgICAgICAgICAgICAgIFtpY29uQ29sb3JdPVwiJyMwMEQ1NkInXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCInNTBweCdcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93UHJvY2Vzc2luZ1wiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICAgIGNsYXNzPVwicG9zdGluZy1ib2FyZHMgc2Z4LXAtMzBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3NpbmctY29udGFpbmVyXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICAgID48Yj5TbWFzaEZseVg8L2I+IGlzIHN1Ym1pdHRpbmcgeW91ciBvcmRlciB0byB5b3VyIHNlbGVjdGVkIGpvYiBib2FyZHMuXG4gICAgICAgIFNvbWUgb3JkZXJzIGhhcHBlbiBpbW1lZGlhdGVseSwgd2hpbGUgb3RoZXJzIHRha2UgYSBsaXR0bGUgbW9yZSB0aW1lLlxuICAgICAgICBDaGVjayB5b3VyIG9yZGVyIHN0YXR1cyBpZiB5b3UgZG9uJ3QgcmVjaWV2ZSBhIGNvbmZpcm1hdGlvbiBpbiB0aGUgbmV4dFxuICAgICAgICAyNGhvdXJzLjwvc3ltcGhvbnktcGFyYWdyYXBoXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNmeC1tdC04MFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCIgc2Z4LW1vZGFsLWJvZHktYXJlYT5cbiAgICA8c3ltcGhvbnktc2Z4LWxvYWRlcj48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gIDwvZGl2PlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidSZXZpZXcgT3JkZXInXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNKb2JCb2FyZE5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tYmFja1xuICAgIFt0ZXh0XT1cIidFZGl0IE9yZGVyJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1zZWNvbmRhcnlcbiAgICBbdGV4dF09XCInQ2FuY2VsJ1wiXG4gICAgW2lzU2Vjb25kYXJ5XT1cInRydWVcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ0J1eSdcIlxuICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgW2lzSW52ZXJzZV09XCJ0cnVlXCJcbiAgICAoY2xpY2tlZCk9XCJvbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICA+PC9zeW1waG9ueS1idXR0b24+XG5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInRmluaXNoICYgQ2xvc2UnXCJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuPC9zeW1waG9ueS10d28tY29sdW1uLW1vZGFsLXRlbXBsYXRlPlxuPHN5bXBob255LWNvbmZpcm1hdGlvbi1tb2RhbFxuICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Q2FuY2VsXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgKGNsb3NlQnV0dG9uQ2xpY2tlZCk9XCJvbkNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gIFttb2RlbF09XCJjYW5jZWxDb250ZW50XCJcbj5cbjwvc3ltcGhvbnktY29uZmlybWF0aW9uLW1vZGFsPlxuIl19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2ZXJ0aXNlLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvcGFnZXMvbW9kYWxzL2FkdmVydGlzZS1tb2RhbC9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9wYWdlcy9tb2RhbHMvYWR2ZXJ0aXNlLW1vZGFsL2FkdmVydGlzZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFldEQsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEM7UUF4QlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRTVDLENBQUM7UUFDTSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELGNBQVMsR0FBb0I7WUFDbEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ3hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBR0ssc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxFQUFFLENBQUM7SUFHaEIsQ0FBQztJQUVoQixR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QUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztTQUMxQzthQUFNO1lBQ0wsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7O29IQTVLVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw4UkN6QnBDLHF1TEFvTEE7MkZEM0phLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSwwQkFBMEI7MEVBSzNCLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvaWNvbi9pY29uLmVudW0nO1xuaW1wb3J0IHsgT3JkZXJTdW1tYXJ5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9vcmdhbmlzbXMvb3JkZXItc3VtbWFyeS9vcmRlci1zdW1tYXJ5Lm1vZGVsJztcbmltcG9ydCB7IEg1V2l0aEljb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vbGVjdWxlcy9oNS13aXRoLWljb24vaDUtd2l0aC1pY29uLm1vZGVsJztcbmltcG9ydCB7XG4gIEFkdmVydGlzZU1vZGFsTW9kZWwsXG4gIFBvc3RpbmdCb2FyZHNTZWxlY3Rpb25Nb2RlbFxufSBmcm9tICcuL2FkdmVydGlzZS1tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBJbnZvaWNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2xlY3VsZXMvaW52b2ljZS1saW5lLWl0ZW0vaW52b2ljZS1saW5lLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9vcmdhbmlzbXMvY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWFkdmVydGlzZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZHZlcnRpc2UtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZHZlcnRpc2VNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbW9kZWw6IFBhcnRpYWw8QWR2ZXJ0aXNlTW9kYWxNb2RlbD47XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsb3NlQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcG9zdGluZ0JvYXJkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBQYXJ0aWFsPEFkdmVydGlzZU1vZGFsTW9kZWw+XG4gID4oKTtcbiAgQE91dHB1dCgpIGtleXdvcmRTZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0OiBQb3N0aW5nQm9hcmRzU2VsZWN0aW9uTW9kZWxbXTtcbiAgcHVibGljIG9yZGVyU3VtbWFyeTogT3JkZXJTdW1tYXJ5TW9kZWw7XG4gIHB1YmxpYyBzdWJUaXRsZTogSDVXaXRoSWNvbk1vZGVsO1xuICBwdWJsaWMgZnVuZHNJbmZvOiBINVdpdGhJY29uTW9kZWwgPSB7XG4gICAgaWNvbjogSWNvbnMuQ09ORklSTUFUSU9OLFxuICAgIGljb25GaXJzdDogdHJ1ZSxcbiAgICB0ZXh0OiAnU3VmZmljaWVudCBGdW5kcycsXG4gICAgaWNvbkNvbG9yOiAnIzAwRDU2QidcbiAgfTtcbiAgcHVibGljIGNhbmNlbENvbnRlbnQ6IENvbmZpcm1hdGlvbk1vZGVsO1xuXG4gIHB1YmxpYyBwYXlQZXJDbGlja0JvYXJkczogSW52b2ljZU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGpvYkJvYXJkczogSW52b2ljZU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGpvYkNvdW50OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgbW9kYWxUaXRsZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBpc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpc2VEZWZhdWx0VmFsdWVzKCk7XG4gICAgdGhpcy51cGRhdGVNb2RhbEhlYWRlcigpO1xuICAgIHRoaXMudXBkYXRlT3JkZXJTdW1tYXJ5KCk7XG4gICAgdGhpcy5jYW5jZWxDb250ZW50ID0ge1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYWJhbmRvbiB5b3VyIG9yZGVyPycsXG4gICAgICBjb250ZW50OlxuICAgICAgICAnQWxsIHNlbGVjdGlvbnMgd2lsbCBiZSBkZWxldGVkIGFuZCB5b3Ugd2lsbCBoYXZlIHRvIHN0YXJ0IG92ZXIuJyxcbiAgICAgIGJ0blByaW1hcnk6ICdDb250aW51ZSBPcmRlcicsXG4gICAgICBidG5TZWNvbmRhcnk6ICdBYmFuZG9uIE9yZGVyJ1xuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZFBvc3RpbmdCb2FyZExpc3QgPSB0aGlzLm1vZGVsLmpvYkJvYXJkcztcbiAgfVxuXG4gIGluaXRpYWxpc2VEZWZhdWx0VmFsdWVzKCkge1xuICAgIHRoaXMuZmlsdGVyZWRQb3N0aW5nQm9hcmRMaXN0ID0gdGhpcy5tb2RlbC5qb2JCb2FyZHM7XG4gICAgdGhpcy5qb2JDb3VudCA9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeSA9IHtcbiAgICAgIHRpdGxlOiAnWW91ciBPcmRlcicsXG4gICAgICBpbnZvaWNlQXJlYXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxpbmVJdGVtczogW10sXG4gICAgICAgICAgdGl0bGU6ICdQYXktUGVyLUNsaWNrJyxcbiAgICAgICAgICB0b3RhbDoge1xuICAgICAgICAgICAgdGV4dExlZnQ6ICdDb3N0IFByb2dyYW1hdGljIEJvYXJkcycsXG4gICAgICAgICAgICB0ZXh0UmlnaHQ6IGB4ICgke3RoaXMuam9iQ291bnR9KSBKb2JzID0gJDBgXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGluZUl0ZW1zOiBbXSxcbiAgICAgICAgICB0aXRsZTogJ0pvYiBCb2FyZHMnLFxuICAgICAgICAgIHRvdGFsOiB7XG4gICAgICAgICAgICB0ZXh0TGVmdDogJ0Nvc3QgSm9iIEJvYXJkcycsXG4gICAgICAgICAgICB0ZXh0UmlnaHQ6IGB4ICgke3RoaXMuam9iQ291bnR9KSBKb2JzID0gJDBgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdG90YWw6IHtcbiAgICAgICAgdGV4dExlZnQ6ICcnLFxuICAgICAgICB0ZXh0UmlnaHQ6ICckMCcsXG4gICAgICAgIGxhYmVsOiAnVG90YWw6J1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICB1cGRhdGVNb2RhbEhlYWRlcigpIHtcbiAgICBsZXQgc3ViVGl0bGVUb29sdGlwOiBzdHJpbmcgPSAnJztcbiAgICBsZXQgam9iTnVtYmVyID0gMTtcbiAgICB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5mb3JFYWNoKGpvYiA9PiB7XG4gICAgICBzdWJUaXRsZVRvb2x0aXAgPSBzdWJUaXRsZVRvb2x0aXAgKyBgJHtqb2Iuam9iVGl0bGV9IFske2pvYi5pZH1dYDtcbiAgICAgIGlmIChqb2JOdW1iZXIgIT0gdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoKSB7XG4gICAgICAgIHN1YlRpdGxlVG9vbHRpcCA9IHN1YlRpdGxlVG9vbHRpcCArICc8L2JyPic7XG4gICAgICB9XG4gICAgICBqb2JOdW1iZXIrKztcbiAgICB9KTtcbiAgICB0aGlzLnN1YlRpdGxlID0ge1xuICAgICAgdG9vbHRpcEh0bWw6IHN1YlRpdGxlVG9vbHRpcCxcbiAgICAgIHRleHQ6IGAke3RoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aH0gSm9ic2AsXG4gICAgICBpY29uRmlyc3Q6IGZhbHNlLFxuICAgICAgaWNvbjogSWNvbnMuSU5GTyxcbiAgICAgIHBsYWNlbWVudDogJ3JpZ2h0J1xuICAgIH07XG4gIH1cblxuICBvbktleXdvcmRTZWFyY2goa2V5d29yZDogc3RyaW5nKSB7XG4gICAgdGhpcy5rZXl3b3JkU2VhcmNoQ2hhbmdlLmVtaXQoa2V5d29yZCk7XG4gIH1cblxuICBvbkJ1dHRvbkNsaWNrKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KHRleHQpO1xuICB9XG5cbiAgb25DbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUG9zdGluZ0JvYXJkQ2hhbmdlKHNlbGVjdGVkQm9hcmQ6IFBvc3RpbmdCb2FyZHNTZWxlY3Rpb25Nb2RlbCkge1xuICAgIHRoaXMudXBkYXRlT3JkZXJTdW1tYXJ5KCk7XG4gIH1cblxuICBhZGRMaW5lSXRlbShcbiAgICBpbnZvaWNlQXJlYUluZGV4OiBudW1iZXIsXG4gICAgc2VsZWN0ZWRCb2FyZDogUG9zdGluZ0JvYXJkc1NlbGVjdGlvbk1vZGVsXG4gICkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1tpbnZvaWNlQXJlYUluZGV4XS5saW5lSXRlbXMucHVzaCh7XG4gICAgICB0ZXh0TGVmdDogc2VsZWN0ZWRCb2FyZC5ib2FyZE5hbWUsXG4gICAgICB0ZXh0UmlnaHQ6IGAkJHtzZWxlY3RlZEJvYXJkLmJvYXJkUHJpY2V9YFxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbChpbnZvaWNlQXJlYUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBpbnZvaWNlQXJlYVRvdGFsID0gMDtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbaW52b2ljZUFyZWFJbmRleF0ubGluZUl0ZW1zLmZvckVhY2gobGkgPT4ge1xuICAgICAgaW52b2ljZUFyZWFUb3RhbCA9IGludm9pY2VBcmVhVG90YWwgKyArbGkudGV4dFJpZ2h0LnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgfSk7XG4gICAgdGhpcy5vcmRlclN1bW1hcnkuaW52b2ljZUFyZWFzW2ludm9pY2VBcmVhSW5kZXhdLnRvdGFsLnRleHRSaWdodCA9IGB4ICgke1xuICAgICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoXG4gICAgfSkgSm9icyA9ICQke2ludm9pY2VBcmVhVG90YWwgKiB0aGlzLm1vZGVsLmpvYnNUb0FkdmVydGlzZS5sZW5ndGh9YDtcbiAgICByZXR1cm4gaW52b2ljZUFyZWFUb3RhbCAqIHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcbiAgfVxuXG4gIGNhbGN1bGF0ZU9yZGVyVG90YWwocGF5UGVyQ2xpY2tBcmVhVG90YWw6IG51bWJlciwgam9iQm9hcmRBcmVhVG90YWw6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkSm9iQm9hcmRzID0gdGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGpiID0+IGpiLmlzU2VsZWN0ZWQpXG4gICAgICAubGVuZ3RoO1xuXG4gICAgY29uc3Qgam9iVG9BZHZlcnRpc2VDb3VudCA9IHRoaXMubW9kZWwuam9ic1RvQWR2ZXJ0aXNlLmxlbmd0aDtcblxuICAgIGNvbnN0IG9yZGVyU3VtbWFyeVRleHQgPSBgKCR7c2VsZWN0ZWRKb2JCb2FyZHN9KSBCb2FyZHMgeCAke1xuICAgICAgdGhpcy5tb2RlbC5qb2JzVG9BZHZlcnRpc2UubGVuZ3RoXG4gICAgfSBKb2JzID0gKCR7c2VsZWN0ZWRKb2JCb2FyZHMgKiBqb2JUb0FkdmVydGlzZUNvdW50fSkgQWRzYDtcblxuICAgIHRoaXMub3JkZXJTdW1tYXJ5LnRvdGFsID0ge1xuICAgICAgbGFiZWw6ICdUb3RhbDonLFxuICAgICAgdGV4dExlZnQ6IG9yZGVyU3VtbWFyeVRleHQsXG4gICAgICB0ZXh0UmlnaHQ6IGAkJHtwYXlQZXJDbGlja0FyZWFUb3RhbCArIGpvYkJvYXJkQXJlYVRvdGFsfWBcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlT3JkZXJTdW1tYXJ5KCkge1xuICAgIHRoaXMub3JkZXJTdW1tYXJ5Lmludm9pY2VBcmVhc1swXS5saW5lSXRlbXMgPSBbXTtcbiAgICB0aGlzLm9yZGVyU3VtbWFyeS5pbnZvaWNlQXJlYXNbMV0ubGluZUl0ZW1zID0gW107XG4gICAgdGhpcy5tb2RlbC5qb2JCb2FyZHMuZm9yRWFjaChqYiA9PiB7XG4gICAgICBpZiAoamIuaXNTZWxlY3RlZCkge1xuICAgICAgICBpZiAoamIuaXNQYXlQZXJDbGljaykge1xuICAgICAgICAgIHRoaXMuYWRkTGluZUl0ZW0oMCwgamIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWRkTGluZUl0ZW0oMSwgamIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXlQZXJDbGlja0FyZWFUb3RhbCA9IHRoaXMuY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbCgwKTtcbiAgICBjb25zdCBqb2JCb2FyZEFyZWFUb3RhbCA9IHRoaXMuY2FsY3VsYXRlSW52b2ljZUFyZWFUb3RhbCgxKTtcbiAgICB0aGlzLmNhbGN1bGF0ZU9yZGVyVG90YWwocGF5UGVyQ2xpY2tBcmVhVG90YWwsIGpvYkJvYXJkQXJlYVRvdGFsKTtcbiAgICBpZiAodGhpcy5tb2RlbC5qb2JCb2FyZHMuZmlsdGVyKGpiID0+IGpiLmlzU2VsZWN0ZWQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5pc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0pvYkJvYXJkTmV4dEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMucG9zdGluZ0JvYXJkQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XG4gIH1cbn1cbiIsIjxzeW1waG9ueS10d28tY29sdW1uLW1vZGFsLXRlbXBsYXRlICpuZ0lmPVwiIW1vZGVsLm5hdmlnYXRpb24uc2hvd0NhbmNlbFwiPlxuICA8c3ltcGhvbnktaDRcbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0pvYkJvYXJkc1NlbGVjdGlvbiAmJiAhbW9kZWwuaXNMb2FkaW5nXCJcbiAgICBzZngtbW9kYWwtdGl0bGVcbiAgICA+U2VsZWN0IFlvdXIgSm9iIEFkIEJ1eXM8L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+UmV2aWV3IHlvdSBKb2IgQWQgQnV5czwvc3ltcGhvbnktaDRcbiAgPlxuICA8c3ltcGhvbnktaDQgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dDb25maXJtYXRpb25cIiBzZngtbW9kYWwtdGl0bGVcbiAgICA+Q29uZmlybWF0aW9uIG9mIHlvdXIgSm9iIEFkIEJ1eXM8L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWg0ICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93UHJvY2Vzc2luZ1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Qcm9jZXNzaW5nIE9yZGVyLi4uPC9zeW1waG9ueS1oNFxuICA+XG4gIDxzeW1waG9ueS1oNCAqbmdJZj1cIm1vZGVsLmlzTG9hZGluZ1wiIHNmeC1tb2RhbC10aXRsZVxuICAgID5Mb2FkaW5nIEpvYiBCb2FyZHMuLi48L3N5bXBob255LWg0XG4gID5cbiAgPHN5bXBob255LWljb25cbiAgICBzZngtY2xvc2UtYnV0dG9uXG4gICAgW2ljb25dPVwiJ3NpLWNsb3NlLW1vZGFsJ1wiXG4gICAgKGNsaWNrZWQpPVwib25DbG9zZUJ1dHRvbkNsaWNrKClcIlxuICA+PC9zeW1waG9ueS1pY29uPlxuICA8c3ltcGhvbnktaDUtd2l0aC1pY29uIHNmeC1tb2RhbC1zdWJ0aXRsZSBbbW9kZWxdPVwic3ViVGl0bGVcIj5cbiAgPC9zeW1waG9ueS1oNS13aXRoLWljb24+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgPlxuICAgIDxzeW1waG9ueS1pbnB1dC10ZXh0XG4gICAgICBzZngtbGVmdC1jb2wtaGVhZGVyXG4gICAgICBbbm9NYXJnaW5dPVwidHJ1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCBBZCBCb2FyZHMnXCJcbiAgICAgIFtpY29uXT1cIidzaS1zZWFyY2gtbmV3J1wiXG4gICAgICAodGV4dENoYW5nZSk9XCJvbktleXdvcmRTZWFyY2goJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dD5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sLWhlYWRlci1pbm5lclwiIHNmeC1yaWdodC1jb2wtaGVhZGVyPlxuICAgICAgPHN5bXBob255LWg1LXdpdGgtaWNvblxuICAgICAgICBzZngtcmlnaHQtY29sLWhlYWRlclxuICAgICAgICAqbmdJZj1cIm1vZGVsLnNob3dGdW5kc1wiXG4gICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgIFttb2RlbF09XCJmdW5kc0luZm9cIlxuICAgICAgPjwvc3ltcGhvbnktaDUtd2l0aC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc2Z4LWxlZnQtY29sdW1uIGNsYXNzPVwicG9zdGluZy1ib2FyZHMgc2Z4LXByLTEwXCI+XG4gICAgICA8c3ltcGhvbnktYWR2ZXJ0aXNlLXBvc3Rpbmdib2FyZC1zZWxlY3Rpb24tbGlzdFxuICAgICAgICBbbW9kZWxdPVwibW9kZWwuam9iQm9hcmRzXCJcbiAgICAgICAgKHBvc3RpbmdCb2FyZENoYW5nZSk9XCJvblBvc3RpbmdCb2FyZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L3N5bXBob255LWFkdmVydGlzZS1wb3N0aW5nYm9hcmQtc2VsZWN0aW9uLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LXJpZ2h0LWNvbHVtblxuICAgICAgW21vZGVsXT1cIm9yZGVyU3VtbWFyeVwiXG4gICAgPjwvc3ltcGhvbnktb3JkZXItc3VtbWFyeT5cbiAgPC9zeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGU+XG5cbiAgPHN5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZVxuICAgICpuZ0lmPVwiIW1vZGVsLmlzTG9hZGluZyAmJiBtb2RlbC5uYXZpZ2F0aW9uLnNob3dPcmRlclJldmlld1wiXG4gICAgc2Z4LW1vZGFsLWJvZHktYXJlYVxuICA+XG4gICAgPGRpdiBzZngtbGVmdC1jb2x1bW4gY2xhc3M9XCJwb3N0aW5nLWJvYXJkc1wiPlxuICAgICAgPHN5bXBob255LWFkdmVydGlzZS1vcmRlci1yZXZpZXc+PC9zeW1waG9ueS1hZHZlcnRpc2Utb3JkZXItcmV2aWV3PlxuICAgIDwvZGl2PlxuXG4gICAgPHN5bXBob255LW9yZGVyLXN1bW1hcnlcbiAgICAgIHNmeC1yaWdodC1jb2x1bW5cbiAgICAgIFttb2RlbF09XCJvcmRlclN1bW1hcnlcIlxuICAgID48L3N5bXBob255LW9yZGVyLXN1bW1hcnk+XG4gIDwvc3ltcGhvbnktdHdvLWNvbHVtbi1ib2R5LXRlbXBsYXRlPlxuXG4gIDxzeW1waG9ueS10d28tY29sdW1uLWJvZHktdGVtcGxhdGVcbiAgICAqbmdJZj1cIiFtb2RlbC5pc0xvYWRpbmcgJiYgbW9kZWwubmF2aWdhdGlvbi5zaG93Q29uZmlybWF0aW9uXCJcbiAgICBzZngtbW9kYWwtYm9keS1hcmVhXG4gID5cbiAgICA8c3ltcGhvbnktb3JkZXItc3VtbWFyeVxuICAgICAgc2Z4LWxlZnQtY29sdW1uXG4gICAgICBbbW9kZWxdPVwib3JkZXJTdW1tYXJ5XCJcbiAgICA+PC9zeW1waG9ueS1vcmRlci1zdW1tYXJ5PlxuICAgIDxkaXYgc2Z4LXJpZ2h0LWNvbHVtbiBjbGFzcz1cInBvc3RpbmctYm9hcmRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJveCBib3VuY2UtN1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wbGV0ZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS1oMj5Zb3VyIG9yZGVyIGlzIGNvbXBsZXRlPC9zeW1waG9ueS1oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWNjZXNzLWljb24tc3BhY2luZ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cIidzaS1jb25maXJtYXRpb24nXCJcbiAgICAgICAgICAgICAgICBbaWNvbkNvbG9yXT1cIicjMDBENTZCJ1wiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJzUwcHgnXCJcbiAgICAgICAgICAgICAgPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3N5bXBob255LXR3by1jb2x1bW4tYm9keS10ZW1wbGF0ZT5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd1Byb2Nlc3NpbmdcIlxuICAgIHNmeC1tb2RhbC1ib2R5LWFyZWFcbiAgICBjbGFzcz1cInBvc3RpbmctYm9hcmRzIHNmeC1wLTMwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzaW5nLWNvbnRhaW5lclwiPlxuICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICA+PGI+U21hc2hGbHlYPC9iPiBpcyBzdWJtaXR0aW5nIHlvdXIgb3JkZXIgdG8geW91ciBzZWxlY3RlZCBqb2IgYm9hcmRzLlxuICAgICAgICBTb21lIG9yZGVycyBoYXBwZW4gaW1tZWRpYXRlbHksIHdoaWxlIG90aGVycyB0YWtlIGEgbGl0dGxlIG1vcmUgdGltZS5cbiAgICAgICAgQ2hlY2sgeW91ciBvcmRlciBzdGF0dXMgaWYgeW91IGRvbid0IHJlY2lldmUgYSBjb25maXJtYXRpb24gaW4gdGhlIG5leHRcbiAgICAgICAgMjRob3Vycy48L3N5bXBob255LXBhcmFncmFwaFxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZngtbXQtODBcIj5cbiAgICAgIDxzeW1waG9ueS1zZngtbG9hZGVyPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxvYWRlci1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsLmlzTG9hZGluZ1wiIHNmeC1tb2RhbC1ib2R5LWFyZWE+XG4gICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICA8L2Rpdj5cblxuICA8c3ltcGhvbnktYnV0dG9uXG4gICAgKm5nSWY9XCJtb2RlbC5uYXZpZ2F0aW9uLnNob3dKb2JCb2FyZHNTZWxlY3Rpb25cIlxuICAgIHNmeC1idXR0b24tc2Vjb25kYXJ5XG4gICAgW3RleHRdPVwiJ0NhbmNlbCdcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93Sm9iQm9hcmRzU2VsZWN0aW9uXCJcbiAgICBzZngtYnV0dG9uLXByaW1hcnlcbiAgICBbdGV4dF09XCInUmV2aWV3IE9yZGVyJ1wiXG4gICAgW2Rpc2FibGVkXT1cImlzSm9iQm9hcmROZXh0QnV0dG9uRGlzYWJsZWRcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd09yZGVyUmV2aWV3XCJcbiAgICBzZngtYnV0dG9uLWJhY2tcbiAgICBbdGV4dF09XCInRWRpdCBPcmRlcidcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tc2Vjb25kYXJ5XG4gICAgW3RleHRdPVwiJ0NhbmNlbCdcIlxuICAgIFtpc1NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbiAgPHN5bXBob255LWJ1dHRvblxuICAgICpuZ0lmPVwibW9kZWwubmF2aWdhdGlvbi5zaG93T3JkZXJSZXZpZXdcIlxuICAgIHNmeC1idXR0b24tcHJpbWFyeVxuICAgIFt0ZXh0XT1cIidCdXknXCJcbiAgICBbZGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtpc0ludmVyc2VdPVwidHJ1ZVwiXG4gICAgKGNsaWNrZWQpPVwib25CdXR0b25DbGljaygkZXZlbnQpXCJcbiAgPjwvc3ltcGhvbnktYnV0dG9uPlxuXG4gIDxzeW1waG9ueS1idXR0b25cbiAgICAqbmdJZj1cIm1vZGVsLm5hdmlnYXRpb24uc2hvd0NvbmZpcm1hdGlvblwiXG4gICAgc2Z4LWJ1dHRvbi1wcmltYXJ5XG4gICAgW3RleHRdPVwiJ0ZpbmlzaCAmIENsb3NlJ1wiXG4gICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcbiAgICBbaXNJbnZlcnNlXT1cInRydWVcIlxuICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gID48L3N5bXBob255LWJ1dHRvbj5cbjwvc3ltcGhvbnktdHdvLWNvbHVtbi1tb2RhbC10ZW1wbGF0ZT5cbjxzeW1waG9ueS1jb25maXJtYXRpb24tbW9kYWxcbiAgKm5nSWY9XCIhbW9kZWwuaXNMb2FkaW5nICYmIG1vZGVsLm5hdmlnYXRpb24uc2hvd0NhbmNlbFwiXG4gIChidXR0b25DbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gIChjbG9zZUJ1dHRvbkNsaWNrZWQpPVwib25DbG9zZUJ1dHRvbkNsaWNrKClcIlxuICBbbW9kZWxdPVwiY2FuY2VsQ29udGVudFwiXG4+XG48L3N5bXBob255LWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
@@ -5089,7 +5089,6 @@ class AdvertiseModalComponent {
5089
5089
  };
5090
5090
  }
5091
5091
  onKeywordSearch(keyword) {
5092
- this.filteredPostingBoardList = this.model.jobBoards.filter(board => board.boardName.toLowerCase().includes(keyword.toLowerCase()));
5093
5092
  this.keywordSearchChange.emit(keyword);
5094
5093
  }
5095
5094
  onButtonClick(text) {
@@ -5152,10 +5151,10 @@ class AdvertiseModalComponent {
5152
5151
  }
5153
5152
  }
5154
5153
  AdvertiseModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5155
- AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
5154
+ AdvertiseModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AdvertiseModalComponent, selector: "symphony-advertise-modal", inputs: { model: "model" }, outputs: { buttonClicked: "buttonClicked", closeButtonClicked: "closeButtonClicked", postingBoardChange: "postingBoardChange", keywordSearchChange: "keywordSearchChange" }, usesOnChanges: true, ngImport: i0, template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"], components: [{ type: TwoColumnModalTemplateComponent, selector: "symphony-two-column-modal-template" }, { type: H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: H5WithIconComponent, selector: "symphony-h5-with-icon", inputs: ["model"] }, { type: TwoColumnBodyTemplateComponent, selector: "symphony-two-column-body-template", inputs: ["showHeader"] }, { type: InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "noMargin"], outputs: ["textChange"] }, { type: AdvertisePostingboardSelectionListComponent, selector: "symphony-advertise-postingboard-selection-list", inputs: ["model"], outputs: ["postingBoardChange"] }, { type: OrderSummaryComponent, selector: "symphony-order-summary", inputs: ["model"] }, { type: AdvertiseOrderReviewComponent, selector: "symphony-advertise-order-review" }, { type: H2Component, selector: "symphony-h2", inputs: ["text", "isSecondary"] }, { type: ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary"] }, { type: SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message"] }, { type: ButtonComponent, selector: "symphony-button", inputs: ["text", "disabled", "isSecondary", "isInverse"], outputs: ["clicked"] }, { type: ConfirmationModalComponent, selector: "symphony-confirmation-modal", inputs: ["model"], outputs: ["buttonClicked", "closeButtonClicked"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
5156
5155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AdvertiseModalComponent, decorators: [{
5157
5156
  type: Component,
5158
- args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"filteredPostingBoardList\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
5157
+ args: [{ selector: 'symphony-advertise-modal', template: "<symphony-two-column-modal-template *ngIf=\"!model.navigation.showCancel\">\n <symphony-h4\n *ngIf=\"model.navigation.showJobBoardsSelection && !model.isLoading\"\n sfx-modal-title\n >Select Your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showOrderReview\" sfx-modal-title\n >Review you Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showConfirmation\" sfx-modal-title\n >Confirmation of your Job Ad Buys</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.navigation.showProcessing\" sfx-modal-title\n >Processing Order...</symphony-h4\n >\n <symphony-h4 *ngIf=\"model.isLoading\" sfx-modal-title\n >Loading Job Boards...</symphony-h4\n >\n <symphony-icon\n sfx-close-button\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCloseButtonClick()\"\n ></symphony-icon>\n <symphony-h5-with-icon sfx-modal-subtitle [model]=\"subTitle\">\n </symphony-h5-with-icon>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showJobBoardsSelection\"\n [showHeader]=\"true\"\n sfx-modal-body-area\n >\n <symphony-input-text\n sfx-left-col-header\n [noMargin]=\"true\"\n [placeholder]=\"'Search Ad Boards'\"\n [icon]=\"'si-search-new'\"\n (textChange)=\"onKeywordSearch($event)\"\n >\n </symphony-input-text>\n <div class=\"right-col-header-inner\" sfx-right-col-header>\n <symphony-h5-with-icon\n sfx-right-col-header\n *ngIf=\"model.showFunds\"\n class=\"pull-right\"\n [model]=\"fundsInfo\"\n ></symphony-h5-with-icon>\n </div>\n <div sfx-left-column class=\"posting-boards sfx-pr-10\">\n <symphony-advertise-postingboard-selection-list\n [model]=\"model.jobBoards\"\n (postingBoardChange)=\"onPostingBoardChange($event)\"\n ></symphony-advertise-postingboard-selection-list>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showOrderReview\"\n sfx-modal-body-area\n >\n <div sfx-left-column class=\"posting-boards\">\n <symphony-advertise-order-review></symphony-advertise-order-review>\n </div>\n\n <symphony-order-summary\n sfx-right-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n </symphony-two-column-body-template>\n\n <symphony-two-column-body-template\n *ngIf=\"!model.isLoading && model.navigation.showConfirmation\"\n sfx-modal-body-area\n >\n <symphony-order-summary\n sfx-left-column\n [model]=\"orderSummary\"\n ></symphony-order-summary>\n <div sfx-right-column class=\"posting-boards\">\n <div class=\"stage\">\n <div class=\"box bounce-7\">\n <div class=\"complete-container\">\n <symphony-h2>Your order is complete</symphony-h2>\n <div class=\"success-icon-spacing\">\n <symphony-icon\n [icon]=\"'si-confirmation'\"\n [iconColor]=\"'#00D56B'\"\n [size]=\"'50px'\"\n ></symphony-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n </symphony-two-column-body-template>\n\n <div\n *ngIf=\"!model.isLoading && model.navigation.showProcessing\"\n sfx-modal-body-area\n class=\"posting-boards sfx-p-30\"\n >\n <div class=\"processing-container\">\n <symphony-paragraph\n ><b>SmashFlyX</b> is submitting your order to your selected job boards.\n Some orders happen immediately, while others take a little more time.\n Check your order status if you don't recieve a confirmation in the next\n 24hours.</symphony-paragraph\n >\n </div>\n <div class=\"sfx-mt-80\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n </div>\n\n <div class=\"loader-container\" *ngIf=\"model.isLoading\" sfx-modal-body-area>\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showJobBoardsSelection\"\n sfx-button-primary\n [text]=\"'Review Order'\"\n [disabled]=\"isJobBoardNextButtonDisabled\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-back\n [text]=\"'Edit Order'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-secondary\n [text]=\"'Cancel'\"\n [isSecondary]=\"true\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n <symphony-button\n *ngIf=\"model.navigation.showOrderReview\"\n sfx-button-primary\n [text]=\"'Buy'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n\n <symphony-button\n *ngIf=\"model.navigation.showConfirmation\"\n sfx-button-primary\n [text]=\"'Finish & Close'\"\n [disabled]=\"false\"\n [isInverse]=\"true\"\n (clicked)=\"onButtonClick($event)\"\n ></symphony-button>\n</symphony-two-column-modal-template>\n<symphony-confirmation-modal\n *ngIf=\"!model.isLoading && model.navigation.showCancel\"\n (buttonClicked)=\"onButtonClick($event)\"\n (closeButtonClicked)=\"onCloseButtonClick()\"\n [model]=\"cancelContent\"\n>\n</symphony-confirmation-modal>\n", styles: [".right-col-header-inner{padding-top:10px}.posting-boards{height:400px;overflow-x:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.loader-container{padding-top:246px;padding-bottom:245px}.complete-container{text-align:center;margin-top:25%}.success-icon-spacing{margin-top:25px}.processing-container{width:400px;text-align:justify}.stage{display:flex;height:240px;width:100%}.box{align-self:flex-end;animation-duration:2s;animation-iteration-count:1;height:200px;margin:0 auto;transform-origin:bottom;width:200px}.bounce-7{animation-name:bounce-7;animation-timing-function:cubic-bezier(.24,.82,.24,.82)}@keyframes bounce-7{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-15px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}\n"] }]
5159
5158
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
5160
5159
  type: Input
5161
5160
  }], buttonClicked: [{