@norwegian/core-components 6.51.3 → 6.52.1
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.
- package/assets/documentation/filter-new/filter-new.md +0 -0
- package/esm2022/lib/components/airport-select-new/airport-select-new.component.mjs +2 -2
- package/esm2022/lib/components/alert/alert.component.mjs +2 -2
- package/esm2022/lib/components/datepicker-combo-new/datepicker-combo-new.component.mjs +1 -1
- package/esm2022/lib/components/datepicker-new/datepicker-new.component.mjs +3 -3
- package/esm2022/lib/components/filter/index.mjs +1 -2
- package/esm2022/lib/components/filter-new/enums/trip-type.enum.mjs +8 -0
- package/esm2022/lib/components/filter-new/filter-new.component.mjs +1328 -0
- package/esm2022/lib/components/filter-new/filter-new.module.mjs +101 -0
- package/esm2022/lib/components/filter-new/index.mjs +4 -0
- package/esm2022/lib/components/index.mjs +3 -1
- package/esm2022/lib/components/number-field-new/number-field-new.component.mjs +3 -3
- package/esm2022/lib/components/passenger-select/index.mjs +1 -3
- package/esm2022/lib/components/passenger-select-new/enums/passenger-type.enum.mjs +9 -0
- package/esm2022/lib/components/passenger-select-new/index.mjs +5 -0
- package/esm2022/lib/components/passenger-select-new/models/passengers.model.mjs +2 -0
- package/esm2022/lib/components/passenger-select-new/passenger-select-new.component.mjs +417 -0
- package/esm2022/lib/components/passenger-select-new/passenger-select-new.module.mjs +28 -0
- package/fesm2022/norwegian-core-components.mjs +8665 -6836
- package/fesm2022/norwegian-core-components.mjs.map +1 -1
- package/lib/components/datepicker-combo-new/datepicker-combo-new.component.d.ts +2 -2
- package/lib/components/filter/index.d.ts +0 -1
- package/lib/components/filter-new/enums/trip-type.enum.d.ts +6 -0
- package/lib/components/filter-new/filter-new.component.d.ts +829 -0
- package/lib/components/filter-new/filter-new.module.d.ts +27 -0
- package/lib/components/filter-new/index.d.ts +3 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/passenger-select/index.d.ts +0 -2
- package/lib/components/passenger-select-new/enums/passenger-type.enum.d.ts +7 -0
- package/lib/components/passenger-select-new/index.d.ts +4 -0
- package/lib/components/passenger-select-new/models/passengers.model.d.ts +10 -0
- package/lib/components/passenger-select-new/passenger-select-new.component.d.ts +141 -0
- package/lib/components/passenger-select-new/passenger-select-new.module.d.ts +10 -0
- package/package.json +1 -1
|
File without changes
|
|
@@ -360,11 +360,11 @@ export class AirportSelectNewComponent extends NasComponentBase {
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AirportSelectNewComponent, selector: "nas-airport-select-new", inputs: { airports: "airports", airportRelations: "airportRelations", latestSearchesOrigin: "latestSearchesOrigin", latestSearchesDestination: "latestSearchesDestination", closestAirports: "closestAirports", allowedOriginAiports: "allowedOriginAiports", allowedDestinationAirports: "allowedDestinationAirports", displayLatestSearches: "displayLatestSearches", displayClosestAirports: "displayClosestAirports", combo: "combo", useSwitch: "useSwitch", allAirportsLabel: "allAirportsLabel", latestSearchesLabel: "latestSearchesLabel", closestAirportsLabel: "closestAirportsLabel", geolocationLabel: "geolocationLabel", geolocationBlockedLabel: "geolocationBlockedLabel", selectOriginFirstLabel: "selectOriginFirstLabel", invalidDestinationText: "invalidDestinationText", labelOrigin: "labelOrigin", placeholderOrigin: "placeholderOrigin", labelDestination: "labelDestination", placeholderDestination: "placeholderDestination", keepSelection: "keepSelection", nasFormControlNameOrigin: "nasFormControlNameOrigin", nasFormControlNameDestination: "nasFormControlNameDestination", nasFormGroup: "nasFormGroup", originAirportCode: "originAirportCode", destinationAirportCode: "destinationAirportCode", ariaLabelClear: "ariaLabelClear", ariaLabelBackdrop: "ariaLabelBackdrop" }, outputs: { originChange: "originChange", originOpenChange: "originOpenChange", destinationChange: "destinationChange", destinationOpenChange: "destinationOpenChange", focusOnNext: "focusOnNext", positionChange: "positionChange" }, viewQueries: [{ propertyName: "switchButton", first: true, predicate: ["switchButton"], descendants: true }, { propertyName: "airportSelectDropdownOrigin", first: true, predicate: ["airportSelectDropdownOrigin"], descendants: true }, { propertyName: "airportSelectDropdownDestination", first: true, predicate: ["airportSelectDropdownDestination"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#f1f1f1}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{position:relative}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#15273f}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#fff!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:24px auto;gap:8px}@media (min-width: 640px){.nas-airport-select-new-combo{flex-direction:row;flex:1}}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}@media (min-width: 640px){.nas-airport-select-new-combo__switcher{top:16px;left:50%;margin-left:-19px;transform:rotate(90deg)}}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-origin .nas-airport-select-new__icon{right:36px}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__label{padding:9px 36px 0}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__input[type=text]{padding-left:36px}}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i4.AirportSelectDropdownComponent, selector: "nas-airport-select-dropdown", inputs: ["displayLatestSearches", "displayClosestAirports", "latestSearches", "resultsLabels", "airportSelectLabel", "airportSelectPlaceholder", "airportSelectIconModifier", "keepSelection", "nasFormControlName", "nasFormGroup", "enableGeolocation", "ariaLabelClear", "ariaLabelBackdrop", "isValid", "invalidText", "closestAirports", "airport", "open", "airports"], outputs: ["selected", "openChange", "focusOnNext", "focusOnPrevious", "positionChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AirportSelectNewComponent, selector: "nas-airport-select-new", inputs: { airports: "airports", airportRelations: "airportRelations", latestSearchesOrigin: "latestSearchesOrigin", latestSearchesDestination: "latestSearchesDestination", closestAirports: "closestAirports", allowedOriginAiports: "allowedOriginAiports", allowedDestinationAirports: "allowedDestinationAirports", displayLatestSearches: "displayLatestSearches", displayClosestAirports: "displayClosestAirports", combo: "combo", useSwitch: "useSwitch", allAirportsLabel: "allAirportsLabel", latestSearchesLabel: "latestSearchesLabel", closestAirportsLabel: "closestAirportsLabel", geolocationLabel: "geolocationLabel", geolocationBlockedLabel: "geolocationBlockedLabel", selectOriginFirstLabel: "selectOriginFirstLabel", invalidDestinationText: "invalidDestinationText", labelOrigin: "labelOrigin", placeholderOrigin: "placeholderOrigin", labelDestination: "labelDestination", placeholderDestination: "placeholderDestination", keepSelection: "keepSelection", nasFormControlNameOrigin: "nasFormControlNameOrigin", nasFormControlNameDestination: "nasFormControlNameDestination", nasFormGroup: "nasFormGroup", originAirportCode: "originAirportCode", destinationAirportCode: "destinationAirportCode", ariaLabelClear: "ariaLabelClear", ariaLabelBackdrop: "ariaLabelBackdrop" }, outputs: { originChange: "originChange", originOpenChange: "originOpenChange", destinationChange: "destinationChange", destinationOpenChange: "destinationOpenChange", focusOnNext: "focusOnNext", positionChange: "positionChange" }, viewQueries: [{ propertyName: "switchButton", first: true, predicate: ["switchButton"], descendants: true }, { propertyName: "airportSelectDropdownOrigin", first: true, predicate: ["airportSelectDropdownOrigin"], descendants: true }, { propertyName: "airportSelectDropdownDestination", first: true, predicate: ["airportSelectDropdownDestination"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#ebf4ff}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{border-bottom:2px solid #eaeaea}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#f8f8f8}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#15273f!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:8px auto;gap:8px}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i4.AirportSelectDropdownComponent, selector: "nas-airport-select-dropdown", inputs: ["displayLatestSearches", "displayClosestAirports", "latestSearches", "resultsLabels", "airportSelectLabel", "airportSelectPlaceholder", "airportSelectIconModifier", "keepSelection", "nasFormControlName", "nasFormGroup", "enableGeolocation", "ariaLabelClear", "ariaLabelBackdrop", "isValid", "invalidText", "closestAirports", "airport", "open", "airports"], outputs: ["selected", "openChange", "focusOnNext", "focusOnPrevious", "positionChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
364
364
|
}
|
|
365
365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AirportSelectNewComponent, decorators: [{
|
|
366
366
|
type: Component,
|
|
367
|
-
args: [{ selector: 'nas-airport-select-new', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#f1f1f1}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{position:relative}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#15273f}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#fff!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:24px auto;gap:8px}@media (min-width: 640px){.nas-airport-select-new-combo{flex-direction:row;flex:1}}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}@media (min-width: 640px){.nas-airport-select-new-combo__switcher{top:16px;left:50%;margin-left:-19px;transform:rotate(90deg)}}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-origin .nas-airport-select-new__icon{right:36px}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__label{padding:9px 36px 0}}@media (min-width: 640px){.nas-airport-select-new-combo .nas-airport-select-new--padding-destination .nas-airport-select-new__input[type=text]{padding-left:36px}}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"] }]
|
|
367
|
+
args: [{ selector: 'nas-airport-select-new', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"exists(combo); else airportSelectTemplate\"\n [nasClass]=\"getAirportSelectComboClass()\">\n <ng-container *ngTemplateOutlet=\"airportSelectTemplate\"></ng-container>\n</div>\n<ng-template #airportSelectTemplate>\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-origin')\"\n *ngIf=\"airportsOrigin\">\n <nas-airport-select-dropdown #airportSelectDropdownOrigin\n displayLatestSearches\n [enableGeolocation]=\"displayClosestAirports\"\n [displayClosestAirports]=\"displayClosestAirports\"\n [airportSelectLabel]=\"labelOrigin\"\n [latestSearches]=\"latestSearchesOrigin\"\n [closestAirports]=\"closestAirports\"\n [airport]=\"origin\"\n [airports]=\"airportsOrigin\"\n [resultsLabels]=\"resultsLabels\"\n [airportSelectPlaceholder]=\"placeholderOrigin\"\n [open]=\"originOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-departure'\"\n [nasFormControlName]=\"nasFormControlNameOrigin\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n (selected)=\"setSelectedOrigin($event)\"\n (openChange)=\"onOriginOpen($event)\"\n (focusOnNext)=\"setDestinationOpen($event)\"\n (positionChange)=\"getClosestAirports($event)\"></nas-airport-select-dropdown>\n </div>\n <ng-container *ngIf=\"exists(combo)\">\n <div [nasClass]=\"getClass('', exists(useSwitch) && 'padding-destination')\"\n *ngIf=\"airportsDestination && airportsDestination.length > 0\">\n <nas-airport-select-dropdown #airportSelectDropdownDestination\n displayLatestSearches\n [airportSelectLabel]=\"labelDestination\"\n [displayClosestAirports]=\"false\"\n [latestSearches]=\"currentLatestSearchesDestination\"\n [airports]=\"airportsDestination\"\n [resultsLabels]=\"resultsLabels\"\n [airport]=\"destination\"\n [airportSelectPlaceholder]=\"placeholderDestination\"\n [open]=\"destinationOpen\"\n [keepSelection]=\"keepSelection\"\n [airportSelectIconModifier]=\"'flight-arrival'\"\n [nasFormControlName]=\"nasFormControlNameDestination\"\n [nasFormGroup]=\"nasFormGroup\"\n [ariaLabelClear]=\"ariaLabelClear\"\n [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [isValid]=\"isDestinationValid\"\n [invalidText]=\"invalidDestinationText\"\n (selected)=\"setSelectedDestination($event)\"\n (openChange)=\"onDestinationOpen($event)\"\n (focusOnNext)=\"setFocusOnNext($event)\"\n (focusOnPrevious)=\"onOriginFocus()\"></nas-airport-select-dropdown>\n </div>\n <div *ngIf=\"exists(useSwitch)\"\n #switchButton\n [nasClass]=\"getAirportSelectComboClass('switcher')\"\n (mouseover)=\"changeSwitchIcon()\"\n (mouseleave)=\"changeSwitchIcon()\"\n (keydown)=\"swapKeyDown($event)\"\n (click)=\"swapAirports()\">\n <nas-icon [type]=\"'vector'\"></nas-icon>\n </div>\n </ng-container>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-airport-select-new{position:relative;width:100%;text-align:left;height:67px;border:2px solid #6f6f6f}.nas-airport-select-new:first-child{margin-bottom:0}.nas-airport-select-new:only-child{max-width:360px}.nas-airport-select-new--expanded{z-index:30}.nas-airport-select-new__wrapper{position:relative;display:block;z-index:3;background-color:#fff}.nas-airport-select-new__wrapper--active{background-color:#ebf4ff}.nas-airport-select-new__list-section-label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;position:relative;z-index:2;text-align:center;padding:3px 12px;background-color:#f1f1f1}.nas-airport-select-new__list-section-label:not(:first-child){margin-top:-1px}.nas-airport-select-new__label{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;line-height:20px;display:block;position:relative;z-index:3;padding:9px 16px 0;margin-bottom:auto;background-color:inherit}.nas-airport-select-new__input{height:64px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__input[type=text]:focus{border-bottom:none}.nas-airport-select-new__label+.nas-airport-select-new__input{height:34px;position:relative;z-index:3;line-height:1;margin:0;background-color:transparent}.nas-airport-select-new__label+.nas-airport-select-new__input[type=text]{padding:0 16px 9px}.nas-airport-select-new__icon{position:absolute;z-index:4;right:18px;bottom:18px}.nas-airport-select-new__results-wrapper{position:relative;z-index:4;perspective:1000px;margin-top:-4px}.nas-airport-select-new__results{position:absolute;z-index:3;width:100%;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;border:2px solid #15273f;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:airport-select-results .65s ease both}.nas-airport-select-new__dummy{position:absolute;left:-100px}.nas-airport-select-new__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:airport-select-backdrop .7s ease-out both}.nas-airport-select-new__list-item{border-bottom:2px solid #eaeaea}.nas-airport-select-new__list-item:not(:last-of-type):after{content:\"\";display:block;width:100%;position:absolute;bottom:0;border-bottom:1px solid #c3c3c3}.nas-airport-select-new__geolocation--label{align-self:center;padding-left:4px}.nas-airport-select-new__geolocation--icon{padding-right:26px}.nas-airport-select-new__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:16px;margin-top:-1px;display:flex;justify-content:space-between;outline:0}.nas-airport-select-new__item--focus,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:focus{background-color:#f8f8f8}.nas-airport-select-new__item--focus,.nas-airport-select-new__item--focus .nas-airport-select-new__name,.nas-airport-select-new__item--focus .nas-airport-select-new__code,.nas-airport-select-new__item:hover,.nas-airport-select-new__item:hover .nas-airport-select-new__name,.nas-airport-select-new__item:hover .nas-airport-select-new__code,.nas-airport-select-new__item:focus,.nas-airport-select-new__item:focus .nas-airport-select-new__name,.nas-airport-select-new__item:focus .nas-airport-select-new__code{color:#15273f!important}.nas-airport-select-new__item--disabled{border-bottom-width:0}.nas-airport-select-new__item--disabled,.nas-airport-select-new__item--disabled .nas-airport-select-new__name,.nas-airport-select-new__item--disabled .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:focus{background-color:#fff;cursor:auto}.nas-airport-select-new__item--disabled:hover,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:hover .nas-airport-select-new__code,.nas-airport-select-new__item--disabled:focus,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__name,.nas-airport-select-new__item--disabled:focus .nas-airport-select-new__code{color:#909090!important}.nas-airport-select-new__name,.nas-airport-select-new__code{display:inline-block;font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-airport-select-new__name--invalid,.nas-airport-select-new__code--invalid{margin:12px}.nas-airport-select-new__code{margin-left:.12em}.nas-airport-select-new__country{display:block;font-size:14px}.nas-airport-select-new__empty{font-family:Apercu,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;font-size:16px;line-height:1.4;color:#15273f;margin:0;padding:12px}.nas-icon-vector{margin-bottom:2px}.nas-filter .nas-airport-select-new-combo,.nas-search-filter .nas-airport-select-new-combo{margin:0 3px 0 0}.nas-airport-select-new-combo{position:relative;display:flex;flex-direction:column;width:100%;margin:8px auto;gap:8px}.nas-airport-select-new-combo__switcher{position:absolute;top:48px;z-index:4;left:76%;cursor:pointer;border:2px solid #6f6f6f;border-radius:50%;width:40px;height:40px;background-color:#fff;justify-content:center;align-items:center;display:flex}.nas-airport-select-new-combo__switcher:focus{outline:none;box-shadow:0 0 1px 2px #e3e3e3,0 0 2px 3px #3b99fc}@keyframes airport-select-backdrop{0%{opacity:0}}@keyframes airport-select-results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}\n"] }]
|
|
368
368
|
}], ctorParameters: function () { return []; }, propDecorators: { switchButton: [{
|
|
369
369
|
type: ViewChild,
|
|
370
370
|
args: ['switchButton']
|
|
@@ -123,11 +123,11 @@ export class AlertComponent extends NasComponentBase {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
126
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AlertComponent, selector: "nas-alert", inputs: { timestamp: "timestamp", title: "title", info: "info", warning: "warning", error: "error", success: "success", neutral: "neutral", text: "text", show: "show", removable: "removable", removeIcon: "removeIcon", trustTextHtml: "trustTextHtml", allowAutoScroll: "allowAutoScroll", server: "server", correlation: "correlation", alert: "alert" }, outputs: { showChange: "showChange" }, viewQueries: [{ propertyName: "alertContainer", first: true, predicate: ["alertContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <div [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n <span *ngIf=\"correlation\">{{correlation}}</span>\n </div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273F;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #
|
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AlertComponent, selector: "nas-alert", inputs: { timestamp: "timestamp", title: "title", info: "info", warning: "warning", error: "error", success: "success", neutral: "neutral", text: "text", show: "show", removable: "removable", removeIcon: "removeIcon", trustTextHtml: "trustTextHtml", allowAutoScroll: "allowAutoScroll", server: "server", correlation: "correlation", alert: "alert" }, outputs: { showChange: "showChange" }, viewQueries: [{ propertyName: "alertContainer", first: true, predicate: ["alertContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <div [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n <span *ngIf=\"correlation\">{{correlation}}</span>\n </div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273F;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #eaeaea}.nas-alert--neutral img{width:24px;height:24px}.nas-alert--neutral:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert__content{display:inline-flex}.nas-alert__remove-alert{position:absolute;right:10px;top:10px;cursor:pointer}.nas-alert__text-container{display:flex;flex-direction:column;margin-left:6px}.nas-alert__text,.nas-alert__text--internal-info,.nas-alert__text--small{color:#15273f;font-size:14px;font-weight:700;line-height:20px;margin-bottom:4px}.nas-alert__text--small{font-weight:400;margin-top:-1px}.nas-alert__text--internal-info{flex-direction:column;display:flex;font-weight:500;font-size:12px;line-height:16px;margin-bottom:4px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
127
127
|
}
|
|
128
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AlertComponent, decorators: [{
|
|
129
129
|
type: Component,
|
|
130
|
-
args: [{ selector: 'nas-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <div [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n <span *ngIf=\"correlation\">{{correlation}}</span>\n </div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273F;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #
|
|
130
|
+
args: [{ selector: 'nas-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #alertContainer *ngIf=\"exists(showValue)\" [nasClass]=\"getClasses('', modifiers)\" tabindex=\"0\">\n <div [nasClass]=\"getClass('content')\">\n <nas-icon *ngIf=\"!removeIcon\" [icon]=\"getIcon()\"></nas-icon>\n <div [nasClass]=\"getClass('remove-alert')\" *ngIf=\"exists(removable);\">\n <nas-icon type=\"remove\" (click)=\"removeAlertBox()\"></nas-icon>\n </div>\n <div [nasClass]=\"getClass('text-container')\">\n <div *ngIf=\"exists(title)\" [nasClass]=\"getClass('text')\">{{title}}</div>\n <div [nasClass]=\"getClass('text--internal-info')\">\n <span *ngIf=\"timestamp\">{{timestamp | date:'full'}}</span>\n <span *ngIf=\"server\">{{server}}</span>\n <span *ngIf=\"correlation\">{{correlation}}</span>\n </div>\n <span *ngIf=\"text && !trustTextHtml\" [nasClass]=\"getClass('text--small')\">{{text}}</span>\n <span *ngIf=\"text && trustTextHtml\" [nasClass]=\"getClass('text--small')\" [innerHTML]=\"text\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-alert{position:relative;padding:16px 12px;width:100%;height:100%;border:1px solid #15273F;background-color:#ebf4ff}.nas-alert--info{background-color:#ebf4ff;border:1px solid #15273f}.nas-alert--info img{width:24px;height:24px}.nas-alert--info:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--success{background-color:#f4faf2;border:1px solid #2EB004}.nas-alert--success img{width:24px;height:24px}.nas-alert--success:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--warning{background-color:#fff6ec;border:1px solid #FC9E12}.nas-alert--warning img{width:24px;height:24px}.nas-alert--warning:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--error{background-color:#fff5f3;border:1px solid #CC3A19}.nas-alert--error img{width:24px;height:24px}.nas-alert--error:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert--neutral{background-color:#f9f9f9;border:1px solid #eaeaea}.nas-alert--neutral img{width:24px;height:24px}.nas-alert--neutral:focus-visible{outline:2px solid #0978E8;outline-offset:2px}.nas-alert__content{display:inline-flex}.nas-alert__remove-alert{position:absolute;right:10px;top:10px;cursor:pointer}.nas-alert__text-container{display:flex;flex-direction:column;margin-left:6px}.nas-alert__text,.nas-alert__text--internal-info,.nas-alert__text--small{color:#15273f;font-size:14px;font-weight:700;line-height:20px;margin-bottom:4px}.nas-alert__text--small{font-weight:400;margin-top:-1px}.nas-alert__text--internal-info{flex-direction:column;display:flex;font-weight:500;font-size:12px;line-height:16px;margin-bottom:4px}\n"] }]
|
|
131
131
|
}], ctorParameters: function () { return []; }, propDecorators: { showChange: [{
|
|
132
132
|
type: Output
|
|
133
133
|
}], alertContainer: [{
|
|
@@ -391,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
391
391
|
}], focusOnPreviousChange: [{
|
|
392
392
|
type: Output
|
|
393
393
|
}] } });
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyLWNvbWJvLW5ldy9kYXRlcGlja2VyLWNvbWJvLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXItY29tYm8tbmV3L2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFNVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFFckQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWMvRDs7OztPQUlHO0lBQ0gsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM3RCxPQUFPO1NBQ1I7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLENB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S0FBSztnQkFTRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBU0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQVFGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkEyQkYsbUJBQW1CO3NCQUR0QixLQUFLO2dCQXNCRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFZRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFPSSwwQkFBMEI7c0JBQW5DLE1BQU07Z0JBT0cseUJBQXlCO3NCQUFsQyxNQUFNO2dCQVFHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQU9HLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvbmFzLWNvbXBvbmVudC5iYXNlJztcbmltcG9ydCB7IENsYXNzTW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBVdGNEYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvdXRjLWRhdGUubW9kZWwnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZGF0ZS9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IERldmljZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZGV2aWNlL2RldmljZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIERhdGVwaWNrZXIgQ29tYm8gQ29tcG9uZW50IHwgTmV3IGRlc2lnbiB8IEJldGFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLWRhdGVwaWNrZXItY29tYm8tbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbWJvTmV3Q29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgaW5ib3VuZExvd2VyTGltaXREYXRlOiBVdGNEYXRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJPdXRib3VuZCcpIGRhdGVwaWNrZXJPdXRib3VuZDogRGF0ZXBpY2tlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlckluYm91bmQnKSBkYXRlcGlja2VySW5ib3VuZDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgJ2FyaWEtbGFiZWwnIHRvIHRoZSBiYWNrZHJvcHMuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxCYWNrZHJvcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgb3V0Ym91bmQgZGF0ZXBpY2tlciBvcGVuLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG91dGJvdW5kT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgb3V0Ym91bmRPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMub3V0Ym91bmREaXNhYmxlZCB8fCB2YWx1ZSA9PT0gdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5WYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmluYm91bmRPcGVuKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgaW5ib3VuZCBkYXRlcGlja2VyIG9wZW4uXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5ib3VuZE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5ib3VuZE9wZW5WYWx1ZTtcbiAgfVxuICBzZXQgaW5ib3VuZE9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pbmJvdW5kRGlzYWJsZWQgfHwgdmFsdWUgPT09IHRoaXMuaW5ib3VuZE9wZW5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGJvdW5kT25seSkge1xuICAgICAgdGhpcy5mb2N1c09uTmV4dENoYW5nZS5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluYm91bmRPcGVuVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaW5ib3VuZE9wZW5DaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLm91dGJvdW5kT3Blbikge1xuICAgICAgICB0aGlzLm91dGJvdW5kT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIG5vIGF2YWlsYWJsZSBmbGlnaHRzLlxuICAgKi9cbiAgQElucHV0KCkgbm9BdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgYXZhaWxhYmxlIGZsaWdodHMuXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVGbGlnaHRzTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBkYXRlcyBpbiB0aGUgcGFzdC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVQYXN0U2VsZWN0aW9uOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IG91dGJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmREaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBpbmJvdW5kIGRhdGVzLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZERpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFJlbW92ZSB0aGUgaW5ib3VuZCBkYXRlcGlja2VyIGlmIHNldC5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kT25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3Igb3V0Ym91bmQgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMYWJlbCBmb3IgaW5ib3VuZCBkYXRlcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgZGF0ZXBpY2tlcnMgaW4gYXZhaWxhYmlsaXR5IG1vZGUgd2hlcmUgYXZhaWxhYmxlIGRhdGVzIGNhbiBiZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGF2YWlsYWJpbGl0eTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBdmFpbGFibGUgZGF0ZXMgZm9yIG91dGJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmRBdmFpbGFibGVEYXRlczogQXJyYXk8VXRjRGF0ZT47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQXZhaWxhYmxlIGRhdGVzIGZvciBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZEF2YWlsYWJsZURhdGVzOiBBcnJheTxVdGNEYXRlPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJZiBzZXQsIEVuYWJsZXMgdGhlIHRpbWUgZHJvcGRvd24gc2VsZWN0b3IgYWxvbmdzaWRlIGRhdGVwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSB0aW1lczogQXJyYXk8VXRjRGF0ZT47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGRpc3BsYXkgZm9ybWF0IG9mIHRoZSBkYXRlIHdoZW4gdXNlciBoYXMgc2VsZWN0ZWQgdGhlIGRhdGUgYW5kIGl0IGlzIGJlaW5nIHNob3duIGluIHRoZSBpbnB1dCBib3ggZm9yIHRoZSBkYXRlIHBpY2tlci5cbiAgICogUGxlYXNlIGxvb2sgYXQgdGhlIGFuZ3VsYXIgRGF0ZSBwaXBlIGZvciB2YWxpZCBmb3JtYXRzIGFuZCB2YXJpYXRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgZGF0ZURpc3BsYXlGb3JtYXQgPSAnRUVFRSBkLCBNTU1NIHl5eXknO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB0aW1lIGRpc3BsYXkgZm9ybWF0LlxuICAgKi9cbiAgQElucHV0KCkgdGltZURpc3BsYXlGb3JtYXQgPSAnSEg6bW0nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS4gV2hlbiBub3Qgc3VwcGxpZWQsIHVzZXMgdGhlIHZhbHVlIG9mIExPQ0FMRV9JRCwgd2hpY2ggaXMgZW4tVVMgYnkgZGVmYXVsdC5cbiAgICogVGhpcyByZXF1aXJlcyB0aGF0IHJlZ2lzdGVyTG9jYWxlRGF0YSBpcyBjYWxsZWQgd2l0aCB0aGUgcmVzcGVjdGl2ZSBsb2NhbGUuXG4gICAqL1xuICBASW5wdXQoKSBsb2NhbGUgPSAnZW4tVVMnO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kaWZpZXIgdG8gcmVtb3ZlIHRoZSBwYWRkaW5nIGFuZCBtYXJnaW5zIGFyb3VuZCB0aGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIGNvbXBhY3Q6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVPdXRib3VuZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZUluYm91bmQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZWxlY3RlZCBkYXRlZm9yIG91dGJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IG91dGJvdW5kU2VsZWN0ZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWU7XG4gIH1cbiAgc2V0IG91dGJvdW5kU2VsZWN0ZWREYXRlKGRhdGU6IFV0Y0RhdGUpIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZVZhbHVlICYmIHRoaXMuZGF0ZVNlcnZpY2UuaXNTYW1lRGF0ZSh0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlVmFsdWUsIGRhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZVZhbHVlID0gZGF0ZTtcblxuICAgIHRoaXMuaW5ib3VuZExvd2VyTGltaXREYXRlID0gbmV3IFV0Y0RhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoLCAxKTtcbiAgICB0aGlzLmluYm91bmRMb3dlckxpbWl0RGF0ZS5zZXREYXRlKGRhdGUuZGF0ZSArIHRoaXMuaW5ib3VuZExvd2VyTGltaXREYXRlT2Zmc2V0KTtcblxuICAgIHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdGVkIGRhdGVmb3IgaW5ib3VuZCBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBpbmJvdW5kU2VsZWN0ZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmluYm91bmRTZWxlY3RlZERhdGVWYWx1ZTtcbiAgfVxuICBzZXQgaW5ib3VuZFNlbGVjdGVkRGF0ZShkYXRlOiBVdGNEYXRlKSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZVZhbHVlICYmIHRoaXMuZGF0ZVNlcnZpY2UuaXNTYW1lRGF0ZSh0aGlzLmluYm91bmRTZWxlY3RlZERhdGVWYWx1ZSwgZGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGVWYWx1ZSA9IGRhdGU7XG4gICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBlbmFibGUgdG8gZGlzYWJsZSBiYWNrZHJvcC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBvdXRib3VuZCBzZWxlY3RlZCB0aW1lIGluIHRoZSB0aW1lIHNlbGVjdG9yLlxuICAgKi9cbiAgQElucHV0KCkgb3V0Ym91bmRTZWxlY3RlZFRpbWU6IFV0Y0RhdGU7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgaW5ib3VuZCBzZWxlY3RlZCB0aW1lIGluIHRoZSB0aW1lIHNlbGVjdG9yLlxuICAgKi9cbiAgQElucHV0KCkgaW5ib3VuZFNlbGVjdGVkVGltZTogVXRjRGF0ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBUklBIGxhYmVsIGZvciB0aGUgcHJldmlvdXMgbW9udGggYnV0dG9uIGluIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbFByZXZpb3VzTW9udGg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBUklBIGxhYmVsIGZvciB0aGUgbmV4dCBtb250aCBidXR0b24gaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsTmV4dE1vbnRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIHJlbGF0aXZlIG51bWJlciB0byBkZWNpZGUgd2hlbiB0aGUgaW5ib3VuZCBsb3dlciBsaW1pdCBkYXRlIHNob3VsZCBiZSBiYXNlZCBvbiBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKlxuICAgKiBUaGUgbG93ZXIgbGltaXQgZGF0ZSBmb3IgaW5ib3VuZCBpcyBzZXQgYnkgZGVmYXVsdCBlcXVhbCB0byB0aGUgc2VsZWN0ZWQgb3V0Ym91bmQgZGF0ZS5cbiAgICpcbiAgICogSWYgdGhpcyBudW1iZXIgaXMgcG9zaXRpdmUsIHRoZSBpbmJvdW5kIGxvd2VyIGxpbWl0IGRhdGUgd2lsbCBhZGQgdGhlIG51bWJlciBvZiBkYXlzIHRvIHRoZSBzZWxlY3RlZCBvdXRib3VuZCBkYXRlLlxuICAgKiBJZiB0aGlzIG51bWJlciBpcyBuZWdhdGl2ZSwgdGhlIGluYm91bmQgbG93ZXIgbGltaXQgZGF0ZSB3aWxsIHN1YnRyYWN0IHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgc2VsZWN0ZWQgb3V0Ym91bmQgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpIGluYm91bmRMb3dlckxpbWl0RGF0ZU9mZnNldCA9IDA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgYW5kIGluYm91bmQgZGF0ZXMgd2lsbCBicmVhayBob3Jpem9udGFsbHkgaW4gbW9iaWxlIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKSBpbmxpbmVGbGV4ID0gMDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hlbiBzZWxlY3RlZCBkYXRlaGFzIGJlZW4gY2hhbmdlZCBvbiB0aGUgb3V0Ym91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBAT3V0cHV0KCkgb3V0Ym91bmRTZWxlY3RlZERhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZW4gc2VsZWN0ZWQgZGF0ZWhhcyBiZWVuIGNoYW5nZWQgb24gdGhlIGluYm91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBAT3V0cHV0KCkgaW5ib3VuZFNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VXRjRGF0ZT4oKTtcblxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBPdXRib3VuZCBkYXRlcGlja2VyIGlzIG9wZW4gb3IgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG91dGJvdW5kT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5ib3VuZCBkYXRlcGlja2VyIGlzIG9wZW4gb3IgY2xvc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGluYm91bmRPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBPdXRib3VuZCBjYWxlbmRhciBjaGFuZ2VzIG1vbnRoLlxuICAgKi9cbiAgQE91dHB1dCgpIG91dGJvdW5kTW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEluYm91bmQgY2FsZW5kYXIgY2hhbmdlcyBtb250aC5cbiAgICovXG4gIEBPdXRwdXQoKSBpbmJvdW5kTW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZW4gYSB1c2VyIGhhcyBhY3RpdmVseSBjaGFuZ2VkIHRoZSBkYXRlLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzT25OZXh0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgcHJlc3NlZCBzaGlmdCArIHRhYiB0byBnbyB0byBwcmV2aW91cyBjb250cm9sLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzT25QcmV2aW91c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IGluYm91bmRTZWxlY3RlZE1vbnRoKCk6IFV0Y0RhdGUge1xuICAgIHJldHVybiB0aGlzLmluYm91bmRTZWxlY3RlZE1vbnRoVmFsdWU7XG4gIH1cbiAgc2V0IGluYm91bmRTZWxlY3RlZE1vbnRoKG1vbnRoOiBVdGNEYXRlKSB7XG4gICAgaWYgKCFtb250aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVTZXJ2aWNlLmlzU2FtZU1vbnRoKG1vbnRoLCB0aGlzLmluYm91bmRTZWxlY3RlZE1vbnRoVmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmluYm91bmRTZWxlY3RlZE1vbnRoVmFsdWUgPSBtb250aDtcbiAgICAgIHRoaXMuaW5ib3VuZE1vbnRoQ2hhbmdlLmVtaXQobW9udGgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvdXRib3VuZFNlbGVjdGVkRGF0ZVZhbHVlOiBVdGNEYXRlO1xuICBwcml2YXRlIGluYm91bmRTZWxlY3RlZERhdGVWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlOiBVdGNEYXRlO1xuICBwcml2YXRlIGluYm91bmRPcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvdXRib3VuZE9wZW5WYWx1ZSA9IGZhbHNlO1xuICBwcml2YXRlIGNvbnRhaW5lcldpZHRoID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwcml2YXRlIGluYm91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvdXRib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVIZWxwZXIsIHByaXZhdGUgZGV2aWNlSGVscGVyOiBEZXZpY2VIZWxwZXIsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKCduYXMtZGF0ZXBpY2tlci1jb21iby1uZXcnKTtcblxuICAgIHdpbmRvdy5vbnJlc2l6ZSA9ICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ29udGFpbmVyV2lkdGgoKTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwKSB7XG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPdXRib3VuZCkge1xuICAgICAgICB0aGlzLm91dGJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lT3V0Ym91bmQpXG4gICAgICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgIC5zdWJzY3JpYmUob3V0Ym91bmQgPT4ge1xuICAgICAgICAgICAgdGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZSA9IG91dGJvdW5kPy5kYXRlO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lSW5ib3VuZCkge1xuICAgICAgICB0aGlzLmluYm91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVJbmJvdW5kKVxuICAgICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAuc3Vic2NyaWJlKGluYm91bmQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlID0gaW5ib3VuZD8uZGF0ZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb250YWluZXJXaWR0aCgpO1xuICAgIHRoaXMuc2V0SW5saW5lRmxleCgpO1xuICB9XG5cbiAgb25Gb2N1c09uTmV4dChldmVudDogS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25OZXh0Q2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25Gb2N1c09uUHJldmlvdXMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzT25QcmV2aW91c0NoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uSW5ib3VuZEZvY3VzT25QcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aW1lcyAmJiB0aGlzLnRpbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSB0aGlzLmRhdGVwaWNrZXJPdXRib3VuZC50aW1lU2VsZWN0b3I/LnNlbGVjdD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNlbGVjdEVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pbmJvdW5kT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdXRib3VuZE9wZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9uT3V0Ym91bmRNb250aENoYW5nZShkYXRlOiBVdGNEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5vdXRib3VuZE1vbnRoQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlID0gZGF0ZTtcbiAgfVxuXG4gIGdldE1haW5DbGFzcygpOiBBcnJheTxDbGFzc01vZGVsPiB7XG4gICAgY29uc3Qgd2lkdGhzID0gW1xuICAgICAgdGhpcy5kZXZpY2VIZWxwZXIuaXNXaWR0aFRhYmxldCh0aGlzLmNvbnRhaW5lcldpZHRoLmdldFZhbHVlKCkpICYmICdtZCcsXG4gICAgICB0aGlzLmRldmljZUhlbHBlci5pc1dpZHRoRGVza3RvcCh0aGlzLmNvbnRhaW5lcldpZHRoLmdldFZhbHVlKCkpICYmICdsZydcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBbLi4ud2lkdGhzXTtcblxuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmNvbXBhY3QpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2NvbXBhY3QnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbmxpbmVGbGV4ID4gMCkge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdpbmxpbmUtZmxleCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldENvbnRhaW5lckNsYXNzKCcnLCBjbGFzc2VzKTtcbiAgfVxuXG4gIGNoZWNrT3V0Ym91bmRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuZGV2aWNlSGVscGVyLmlzTW9iaWxlV2lkdGgoKSAmJiB0aGlzLmV4aXN0cyh0aGlzLm91dGJvdW5kT25seSkpO1xuICB9XG5cbiAgY2hlY2tJbmJvdW5kRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICghdGhpcy5kZXZpY2VIZWxwZXIuaXNNb2JpbGVXaWR0aCgpICYmIHRoaXMuZXhpc3RzKHRoaXMub3V0Ym91bmRPbmx5KSlcbiAgICAgIHx8IHRoaXMuZXhpc3RzKHRoaXMuaW5ib3VuZERpc2FibGVkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaW5ib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm91dGJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250YWluZXJXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJPZmZzZXRXaWR0aCA9ICh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aDtcbiAgICBpZiAoY29udGFpbmVyT2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lcldpZHRoLm5leHQoY29udGFpbmVyT2Zmc2V0V2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5saW5lRmxleCgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXIgPSAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgaWYgKHRoaXMuaW5saW5lRmxleCA+IDApIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyLCAnbmFzLWRhdGVwaWNrZXItY29tYm8tbmV3LS1pbmxpbmUtZmxleCcpO1xuICAgICAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gYCR7dGhpcy5pbmxpbmVGbGV4fXB4YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhjb250YWluZXIsICduYXMtZGF0ZXBpY2tlci1jb21iby1uZXctLWlubGluZS1mbGV4Jyk7XG4gICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtuYXNDbGFzc109XCJnZXRNYWluQ2xhc3MoKVwiICNjb250YWluZXI+XG4gIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdkYXRlLXBpY2tlcicpXCI+XG4gICAgPG5hcy1kYXRlcGlja2VyLW5ldyAjZGF0ZXBpY2tlck91dGJvdW5kXG4gICAgICBjb21wYWN0XG4gICAgICBbZGlzYWJsZUJhY2tkcm9wXT1cImRpc2FibGVCYWNrZHJvcFwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kXCJcbiAgICAgIFtub0F2YWlsYWJsZUZsaWdodHNMYWJlbF09XCJub0F2YWlsYWJsZUZsaWdodHNMYWJlbFwiXG4gICAgICBbYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cImF2YWlsYWJsZUZsaWdodHNMYWJlbFwiXG4gICAgICBbZGlzYWJsZVBhc3RTZWxlY3Rpb25dPVwiZXhpc3RzKGRpc2FibGVQYXN0U2VsZWN0aW9uKVwiXG4gICAgICBbYXZhaWxhYmlsaXR5XT1cImV4aXN0cyhhdmFpbGFiaWxpdHkpXCJcbiAgICAgIFthdmFpbGFibGVEYXRlc109XCJvdXRib3VuZEF2YWlsYWJsZURhdGVzXCJcbiAgICAgIFt0aW1lc109XCJ0aW1lc1wiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT1cIm91dGJvdW5kU2VsZWN0ZWRUaW1lXCJcbiAgICAgIFtkYXRlRGlzcGxheUZvcm1hdF09XCJkYXRlRGlzcGxheUZvcm1hdFwiXG4gICAgICBbdGltZURpc3BsYXlGb3JtYXRdPVwidGltZURpc3BsYXlGb3JtYXRcIlxuICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImV4aXN0cyhvdXRib3VuZERpc2FibGVkKVwiXG4gICAgICBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgW2FyaWFMYWJlbFByZXZpb3VzTW9udGhdPVwiYXJpYUxhYmVsUHJldmlvdXNNb250aFwiXG4gICAgICBbYXJpYUxhYmVsTmV4dE1vbnRoXT1cImFyaWFMYWJlbE5leHRNb250aFwiXG4gICAgICAoZm9jdXNPbk5leHRDaGFuZ2UpPVwiaW5ib3VuZE9wZW4gPSB0cnVlXCJcbiAgICAgIChmb2N1c09uUHJldmlvdXNDaGFuZ2UpPVwib25Gb2N1c09uUHJldmlvdXMoJGV2ZW50KVwiXG4gICAgICAoc2VsZWN0ZWRNb250aENoYW5nZSk9XCJvbk91dGJvdW5kTW9udGhDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbKG9wZW4pXT1cIm91dGJvdW5kT3BlblwiXG4gICAgICBbKHNlbGVjdGVkRGF0ZSldPVwib3V0Ym91bmRTZWxlY3RlZERhdGVcIj57e291dGJvdW5kTGFiZWx9fTwvbmFzLWRhdGVwaWNrZXItbmV3PlxuICA8L2Rpdj5cbiAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdzZXBhcmF0b3InKVwiPjwvc3Bhbj5cbiAgPGRpdiAqbmdJZj1cImNoZWNrT3V0Ym91bmRPbmx5KClcIlxuICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnZGF0ZS1waWNrZXInKVwiPlxuICAgIDxuYXMtZGF0ZXBpY2tlci1uZXcgI2RhdGVwaWNrZXJJbmJvdW5kXG4gICAgICBjb21wYWN0XG4gICAgICBbZGlzYWJsZUJhY2tkcm9wXT1cImRpc2FibGVCYWNrZHJvcFwiXG4gICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiXG4gICAgICBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmRcIlxuICAgICAgW2Rpc2FibGVkXT1cImNoZWNrSW5ib3VuZERpc2FibGVkKClcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cImluYm91bmRBdmFpbGFibGVEYXRlc1wiXG4gICAgICBbbG93ZXJMaW1pdERhdGVdPVwiaW5ib3VuZExvd2VyTGltaXREYXRlXCJcbiAgICAgIFt0aW1lc109XCJ0aW1lc1wiXG4gICAgICBbc2VsZWN0ZWRUaW1lXT1cImluYm91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbYXJpYUxhYmVsQmFja2Ryb3BdPVwiYXJpYUxhYmVsQmFja2Ryb3BcIlxuICAgICAgW2FyaWFMYWJlbFByZXZpb3VzTW9udGhdPVwiYXJpYUxhYmVsUHJldmlvdXNNb250aFwiXG4gICAgICBbYXJpYUxhYmVsTmV4dE1vbnRoXT1cImFyaWFMYWJlbE5leHRNb250aFwiXG4gICAgICAoZm9jdXNPbk5leHRDaGFuZ2UpPVwib25Gb2N1c09uTmV4dCgkZXZlbnQpXCJcbiAgICAgIChmb2N1c09uUHJldmlvdXNDaGFuZ2UpPVwib25JbmJvdW5kRm9jdXNPblByZXZpb3VzKClcIlxuICAgICAgWyhvcGVuKV09XCJpbmJvdW5kT3BlblwiXG4gICAgICBbKHNlbGVjdGVkTW9udGgpXT1cImluYm91bmRTZWxlY3RlZE1vbnRoXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJpbmJvdW5kU2VsZWN0ZWREYXRlXCI+e3tpbmJvdW5kTGFiZWx9fTwvbmFzLWRhdGVwaWNrZXItbmV3PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1jb21iby1uZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlcGlja2VyLWNvbWJvLW5ldy9kYXRlcGlja2VyLWNvbWJvLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXItY29tYm8tbmV3L2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFNVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHM0QsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFHckQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQWMvRDs7OztPQUlHO0lBQ0gsSUFDSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM3RCxPQUFPO1NBQ1I7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLENB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cEIsS0FBSztnQkFTRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBU0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQVFGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkEyQkYsbUJBQW1CO3NCQUR0QixLQUFLO2dCQXNCRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFPRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFZRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBT0csVUFBVTtzQkFBbEIsS0FBSztnQkFPSSwwQkFBMEI7c0JBQW5DLE1BQU07Z0JBT0cseUJBQXlCO3NCQUFsQyxNQUFNO2dCQVFHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQU9HLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvbmFzLWNvbXBvbmVudC5iYXNlJztcbmltcG9ydCB7IENsYXNzTW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBVdGNEYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvdXRjLWRhdGUubW9kZWwnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZGF0ZS9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IERldmljZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZGV2aWNlL2RldmljZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlck5ld0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXItbmV3JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBEYXRlcGlja2VyIENvbWJvIENvbXBvbmVudCB8IE5ldyBkZXNpZ24gfCBCZXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1kYXRlcGlja2VyLWNvbWJvLW5ldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLWNvbWJvLW5ldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItY29tYm8tbmV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21ib05ld0NvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG4gIGluYm91bmRMb3dlckxpbWl0RGF0ZTogVXRjRGF0ZTtcblxuICBAVmlld0NoaWxkKCdkYXRlcGlja2VyT3V0Ym91bmQnKSBkYXRlcGlja2VyT3V0Ym91bmQ6IERhdGVwaWNrZXJOZXdDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJJbmJvdW5kJykgZGF0ZXBpY2tlckluYm91bmQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzICdhcmlhLWxhYmVsJyB0byB0aGUgYmFja2Ryb3BzLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsQmFja2Ryb3A6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIG91dGJvdW5kIGRhdGVwaWNrZXIgb3Blbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBvdXRib3VuZE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3V0Ym91bmRPcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG91dGJvdW5kT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm91dGJvdW5kRGlzYWJsZWQgfHwgdmFsdWUgPT09IHRoaXMub3V0Ym91bmRPcGVuVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub3V0Ym91bmRPcGVuVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMub3V0Ym91bmRPcGVuQ2hhbmdlLmVtaXQodmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWUgJiYgdGhpcy5pbmJvdW5kT3Blbikge1xuICAgICAgICB0aGlzLmluYm91bmRPcGVuID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGluYm91bmQgZGF0ZXBpY2tlciBvcGVuLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGluYm91bmRPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluYm91bmRPcGVuVmFsdWU7XG4gIH1cbiAgc2V0IGluYm91bmRPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuaW5ib3VuZERpc2FibGVkIHx8IHZhbHVlID09PSB0aGlzLmluYm91bmRPcGVuVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdXRib3VuZE9ubHkpIHtcbiAgICAgIHRoaXMuZm9jdXNPbk5leHRDaGFuZ2UuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbmJvdW5kT3BlblZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmluYm91bmRPcGVuQ2hhbmdlLmVtaXQodmFsdWUpO1xuXG4gICAgICBpZiAodmFsdWUgJiYgdGhpcy5vdXRib3VuZE9wZW4pIHtcbiAgICAgICAgdGhpcy5vdXRib3VuZE9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIExhYmVsIGZvciBubyBhdmFpbGFibGUgZmxpZ2h0cy5cbiAgICovXG4gIEBJbnB1dCgpIG5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIGF2YWlsYWJsZSBmbGlnaHRzLlxuICAgKi9cbiAgQElucHV0KCkgYXZhaWxhYmxlRmxpZ2h0c0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzYWJsZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgZGF0ZXMgaW4gdGhlIHBhc3QuXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlUGFzdFNlbGVjdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEaXNhYmxlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCBvdXRib3VuZCBkYXRlcy5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGlzYWJsZSBwb3NzaWJpbGl0eSB0byBzZWxlY3QgaW5ib3VuZCBkYXRlcy5cbiAgICovXG4gIEBJbnB1dCgpIGluYm91bmREaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmUgdGhlIGluYm91bmQgZGF0ZXBpY2tlciBpZiBzZXQuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZE9ubHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIG91dGJvdW5kIGRhdGVwaWNrZXIuXG4gICAqL1xuICBASW5wdXQoKSBvdXRib3VuZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogTGFiZWwgZm9yIGluYm91bmQgZGF0ZXBpY2tlci5cbiAgICovXG4gIEBJbnB1dCgpIGluYm91bmRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGRhdGVwaWNrZXJzIGluIGF2YWlsYWJpbGl0eSBtb2RlIHdoZXJlIGF2YWlsYWJsZSBkYXRlcyBjYW4gYmUgYWRkZWQuXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFiaWxpdHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQXZhaWxhYmxlIGRhdGVzIGZvciBvdXRib3VuZCBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kQXZhaWxhYmxlRGF0ZXM6IEFycmF5PFV0Y0RhdGU+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEF2YWlsYWJsZSBkYXRlcyBmb3IgaW5ib3VuZCBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIGluYm91bmRBdmFpbGFibGVEYXRlczogQXJyYXk8VXRjRGF0ZT47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSWYgc2V0LCBFbmFibGVzIHRoZSB0aW1lIGRyb3Bkb3duIHNlbGVjdG9yIGFsb25nc2lkZSBkYXRlcGlja2VyLlxuICAgKi9cbiAgQElucHV0KCkgdGltZXM6IEFycmF5PFV0Y0RhdGU+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBkaXNwbGF5IGZvcm1hdCBvZiB0aGUgZGF0ZSB3aGVuIHVzZXIgaGFzIHNlbGVjdGVkIHRoZSBkYXRlIGFuZCBpdCBpcyBiZWluZyBzaG93biBpbiB0aGUgaW5wdXQgYm94IGZvciB0aGUgZGF0ZSBwaWNrZXIuXG4gICAqIFBsZWFzZSBsb29rIGF0IHRoZSBhbmd1bGFyIERhdGUgcGlwZSBmb3IgdmFsaWQgZm9ybWF0cyBhbmQgdmFyaWF0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGVEaXNwbGF5Rm9ybWF0ID0gJ0VFRUUgZCwgTU1NTSB5eXl5JztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdGltZSBkaXNwbGF5IGZvcm1hdC5cbiAgICovXG4gIEBJbnB1dCgpIHRpbWVEaXNwbGF5Rm9ybWF0ID0gJ0hIOm1tJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuIFdoZW4gbm90IHN1cHBsaWVkLCB1c2VzIHRoZSB2YWx1ZSBvZiBMT0NBTEVfSUQsIHdoaWNoIGlzIGVuLVVTIGJ5IGRlZmF1bHQuXG4gICAqIFRoaXMgcmVxdWlyZXMgdGhhdCByZWdpc3RlckxvY2FsZURhdGEgaXMgY2FsbGVkIHdpdGggdGhlIHJlc3BlY3RpdmUgbG9jYWxlLlxuICAgKi9cbiAgQElucHV0KCkgbG9jYWxlID0gJ2VuLVVTJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIG1vZGlmaWVyIHRvIHJlbW92ZSB0aGUgcGFkZGluZyBhbmQgbWFyZ2lucyBhcm91bmQgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBjb21wYWN0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgdGhlIHBhcmVudCdzIGZvcm0gZ3JvdXAuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IGlzIHJlcXVpZXJlZCB0byBiZSBmaWxsZWQgaWYgbmFzRm9ybUNvbnRyb2xOYW1lIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIGlucHV0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lT3V0Ym91bmQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVJbmJvdW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2VsZWN0ZWQgZGF0ZWZvciBvdXRib3VuZCBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBvdXRib3VuZFNlbGVjdGVkRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZVZhbHVlO1xuICB9XG4gIHNldCBvdXRib3VuZFNlbGVjdGVkRGF0ZShkYXRlOiBVdGNEYXRlKSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZSAmJiB0aGlzLmRhdGVTZXJ2aWNlLmlzU2FtZURhdGUodGhpcy5vdXRib3VuZFNlbGVjdGVkRGF0ZVZhbHVlLCBkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZSA9IGRhdGU7XG5cbiAgICB0aGlzLmluYm91bmRMb3dlckxpbWl0RGF0ZSA9IG5ldyBVdGNEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCwgMSk7XG4gICAgdGhpcy5pbmJvdW5kTG93ZXJMaW1pdERhdGUuc2V0RGF0ZShkYXRlLmRhdGUgKyB0aGlzLmluYm91bmRMb3dlckxpbWl0RGF0ZU9mZnNldCk7XG5cbiAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZWxlY3RlZCBkYXRlZm9yIGluYm91bmQgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5ib3VuZFNlbGVjdGVkRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWU7XG4gIH1cbiAgc2V0IGluYm91bmRTZWxlY3RlZERhdGUoZGF0ZTogVXRjRGF0ZSkge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluYm91bmRTZWxlY3RlZERhdGVWYWx1ZSAmJiB0aGlzLmRhdGVTZXJ2aWNlLmlzU2FtZURhdGUodGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWUsIGRhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWUgPSBkYXRlO1xuICAgIHRoaXMuaW5ib3VuZFNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogZW5hYmxlIHRvIGRpc2FibGUgYmFja2Ryb3AuXG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlQmFja2Ryb3A6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgb3V0Ym91bmQgc2VsZWN0ZWQgdGltZSBpbiB0aGUgdGltZSBzZWxlY3Rvci5cbiAgICovXG4gIEBJbnB1dCgpIG91dGJvdW5kU2VsZWN0ZWRUaW1lOiBVdGNEYXRlO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluYm91bmQgc2VsZWN0ZWQgdGltZSBpbiB0aGUgdGltZSBzZWxlY3Rvci5cbiAgICovXG4gIEBJbnB1dCgpIGluYm91bmRTZWxlY3RlZFRpbWU6IFV0Y0RhdGU7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQVJJQSBsYWJlbCBmb3IgdGhlIHByZXZpb3VzIG1vbnRoIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxQcmV2aW91c01vbnRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQVJJQSBsYWJlbCBmb3IgdGhlIG5leHQgbW9udGggYnV0dG9uIGluIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbE5leHRNb250aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSByZWxhdGl2ZSBudW1iZXIgdG8gZGVjaWRlIHdoZW4gdGhlIGluYm91bmQgbG93ZXIgbGltaXQgZGF0ZSBzaG91bGQgYmUgYmFzZWQgb24gc2VsZWN0ZWQgb3V0Ym91bmQgZGF0ZS5cbiAgICpcbiAgICogVGhlIGxvd2VyIGxpbWl0IGRhdGUgZm9yIGluYm91bmQgaXMgc2V0IGJ5IGRlZmF1bHQgZXF1YWwgdG8gdGhlIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqXG4gICAqIElmIHRoaXMgbnVtYmVyIGlzIHBvc2l0aXZlLCB0aGUgaW5ib3VuZCBsb3dlciBsaW1pdCBkYXRlIHdpbGwgYWRkIHRoZSBudW1iZXIgb2YgZGF5cyB0byB0aGUgc2VsZWN0ZWQgb3V0Ym91bmQgZGF0ZS5cbiAgICogSWYgdGhpcyBudW1iZXIgaXMgbmVnYXRpdmUsIHRoZSBpbmJvdW5kIGxvd2VyIGxpbWl0IGRhdGUgd2lsbCBzdWJ0cmFjdCB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdGhlIHNlbGVjdGVkIG91dGJvdW5kIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKSBpbmJvdW5kTG93ZXJMaW1pdERhdGVPZmZzZXQgPSAwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIE91dGJvdW5kIGFuZCBpbmJvdW5kIGRhdGVzIHdpbGwgYnJlYWsgaG9yaXpvbnRhbGx5IGluIG1vYmlsZSB2aWV3LlxuICAgKi9cbiAgQElucHV0KCkgaW5saW5lRmxleCA9IDA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZW4gc2VsZWN0ZWQgZGF0ZWhhcyBiZWVuIGNoYW5nZWQgb24gdGhlIG91dGJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIG91dGJvdW5kU2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIHNlbGVjdGVkIGRhdGVoYXMgYmVlbiBjaGFuZ2VkIG9uIHRoZSBpbmJvdW5kIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpIGluYm91bmRTZWxlY3RlZERhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFV0Y0RhdGU+KCk7XG5cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEluYm91bmQgZGF0ZXBpY2tlciBpcyBvcGVuIG9yIGNsb3NlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpbmJvdW5kT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogT3V0Ym91bmQgY2FsZW5kYXIgY2hhbmdlcyBtb250aC5cbiAgICovXG4gIEBPdXRwdXQoKSBvdXRib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJbmJvdW5kIGNhbGVuZGFyIGNoYW5nZXMgbW9udGguXG4gICAqL1xuICBAT3V0cHV0KCkgaW5ib3VuZE1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVdGNEYXRlPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGVuIGEgdXNlciBoYXMgYWN0aXZlbHkgY2hhbmdlZCB0aGUgZGF0ZS5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uTmV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hlbiBhIHVzZXIgaGFzIHByZXNzZWQgc2hpZnQgKyB0YWIgdG8gZ28gdG8gcHJldmlvdXMgY29udHJvbC5cbiAgICovXG4gIEBPdXRwdXQoKSBmb2N1c09uUHJldmlvdXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50PigpO1xuXG4gIGdldCBpbmJvdW5kU2VsZWN0ZWRNb250aCgpOiBVdGNEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlO1xuICB9XG4gIHNldCBpbmJvdW5kU2VsZWN0ZWRNb250aChtb250aDogVXRjRGF0ZSkge1xuICAgIGlmICghbW9udGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlU2VydmljZS5pc1NhbWVNb250aChtb250aCwgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbmJvdW5kU2VsZWN0ZWRNb250aFZhbHVlID0gbW9udGg7XG4gICAgICB0aGlzLmluYm91bmRNb250aENoYW5nZS5lbWl0KG1vbnRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3V0Ym91bmRTZWxlY3RlZERhdGVWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kU2VsZWN0ZWREYXRlVmFsdWU6IFV0Y0RhdGU7XG4gIHByaXZhdGUgaW5ib3VuZFNlbGVjdGVkTW9udGhWYWx1ZTogVXRjRGF0ZTtcbiAgcHJpdmF0ZSBpbmJvdW5kT3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgb3V0Ym91bmRPcGVuVmFsdWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250YWluZXJXaWR0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSBpbmJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRhdGVTZXJ2aWNlOiBEYXRlSGVscGVyLFxuICAgIHByaXZhdGUgZGV2aWNlSGVscGVyOiBEZXZpY2VIZWxwZXIsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgc3VwZXIoJ25hcy1kYXRlcGlja2VyLWNvbWJvLW5ldycpO1xuXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb250YWluZXJXaWR0aCgpO1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZU91dGJvdW5kKSB7XG4gICAgICAgIHRoaXMub3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVPdXRib3VuZClcbiAgICAgICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgLnN1YnNjcmliZShvdXRib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLm91dGJvdW5kU2VsZWN0ZWREYXRlID0gb3V0Ym91bmQ/LmRhdGU7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYXNGb3JtQ29udHJvbE5hbWVJbmJvdW5kKSB7XG4gICAgICAgIHRoaXMuaW5ib3VuZFZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMubmFzRm9ybUdyb3VwLmdldCh0aGlzLm5hc0Zvcm1Db250cm9sTmFtZUluYm91bmQpXG4gICAgICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgIC5zdWJzY3JpYmUoaW5ib3VuZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmluYm91bmRTZWxlY3RlZERhdGUgPSBpbmJvdW5kPy5kYXRlO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lcldpZHRoKCk7XG4gICAgdGhpcy5zZXRJbmxpbmVGbGV4KCk7XG4gIH1cblxuICBvbkZvY3VzT25OZXh0KGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNPbk5leHRDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkZvY3VzT25QcmV2aW91cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNPblByZXZpb3VzQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25JbmJvdW5kRm9jdXNPblByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVzICYmIHRoaXMudGltZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IHRoaXMuZGF0ZXBpY2tlck91dGJvdW5kLnRpbWVTZWxlY3Rvcj8uc2VsZWN0Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2VsZWN0RWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmluYm91bmRPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm91dGJvdW5kT3BlbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25PdXRib3VuZE1vbnRoQ2hhbmdlKGRhdGU6IFV0Y0RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLm91dGJvdW5kTW9udGhDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB0aGlzLmluYm91bmRTZWxlY3RlZE1vbnRoVmFsdWUgPSBkYXRlO1xuICB9XG5cbiAgZ2V0TWFpbkNsYXNzKCk6IEFycmF5PENsYXNzTW9kZWw+IHtcbiAgICBjb25zdCB3aWR0aHMgPSBbXG4gICAgICB0aGlzLmRldmljZUhlbHBlci5pc1dpZHRoVGFibGV0KHRoaXMuY29udGFpbmVyV2lkdGguZ2V0VmFsdWUoKSkgJiYgJ21kJyxcbiAgICAgIHRoaXMuZGV2aWNlSGVscGVyLmlzV2lkdGhEZXNrdG9wKHRoaXMuY29udGFpbmVyV2lkdGguZ2V0VmFsdWUoKSkgJiYgJ2xnJ1xuICAgIF0uZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgY29uc3QgY2xhc3NlcyA9IFsuLi53aWR0aHNdO1xuXG4gICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuY29tcGFjdCkpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnY29tcGFjdCcpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlubGluZUZsZXggPiAwKSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2lubGluZS1mbGV4Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29udGFpbmVyQ2xhc3MoJycsIGNsYXNzZXMpO1xuICB9XG5cbiAgY2hlY2tPdXRib3VuZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEodGhpcy5kZXZpY2VIZWxwZXIuaXNNb2JpbGVXaWR0aCgpICYmIHRoaXMuZXhpc3RzKHRoaXMub3V0Ym91bmRPbmx5KSk7XG4gIH1cblxuICBjaGVja0luYm91bmREaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKCF0aGlzLmRldmljZUhlbHBlci5pc01vYmlsZVdpZHRoKCkgJiYgdGhpcy5leGlzdHModGhpcy5vdXRib3VuZE9ubHkpKVxuICAgICAgfHwgdGhpcy5leGlzdHModGhpcy5pbmJvdW5kRGlzYWJsZWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pbmJvdW5kVmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub3V0Ym91bmRWYWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRhaW5lcldpZHRoKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldFdpZHRoID0gKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoO1xuICAgIGlmIChjb250YWluZXJPZmZzZXRXaWR0aCA+IDApIHtcbiAgICAgIHRoaXMuY29udGFpbmVyV2lkdGgubmV4dChjb250YWluZXJPZmZzZXRXaWR0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbmxpbmVGbGV4KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9ICh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICBpZiAodGhpcy5pbmxpbmVGbGV4ID4gMCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjb250YWluZXIsICduYXMtZGF0ZXBpY2tlci1jb21iby1uZXctLWlubGluZS1mbGV4Jyk7XG4gICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSBgJHt0aGlzLmlubGluZUZsZXh9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGNvbnRhaW5lciwgJ25hcy1kYXRlcGlja2VyLWNvbWJvLW5ldy0taW5saW5lLWZsZXgnKTtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cImdldE1haW5DbGFzcygpXCIgI2NvbnRhaW5lcj5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2RhdGUtcGlja2VyJylcIj5cbiAgICA8bmFzLWRhdGVwaWNrZXItbmV3ICNkYXRlcGlja2VyT3V0Ym91bmRcbiAgICAgIGNvbXBhY3RcbiAgICAgIFtkaXNhYmxlQmFja2Ryb3BdPVwiZGlzYWJsZUJhY2tkcm9wXCJcbiAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCJcbiAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lT3V0Ym91bmRcIlxuICAgICAgW25vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXT1cIm5vQXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFthdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwiYXZhaWxhYmxlRmxpZ2h0c0xhYmVsXCJcbiAgICAgIFtkaXNhYmxlUGFzdFNlbGVjdGlvbl09XCJleGlzdHMoZGlzYWJsZVBhc3RTZWxlY3Rpb24pXCJcbiAgICAgIFthdmFpbGFiaWxpdHldPVwiZXhpc3RzKGF2YWlsYWJpbGl0eSlcIlxuICAgICAgW2F2YWlsYWJsZURhdGVzXT1cIm91dGJvdW5kQXZhaWxhYmxlRGF0ZXNcIlxuICAgICAgW3RpbWVzXT1cInRpbWVzXCJcbiAgICAgIFtzZWxlY3RlZFRpbWVdPVwib3V0Ym91bmRTZWxlY3RlZFRpbWVcIlxuICAgICAgW2RhdGVEaXNwbGF5Rm9ybWF0XT1cImRhdGVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFt0aW1lRGlzcGxheUZvcm1hdF09XCJ0aW1lRGlzcGxheUZvcm1hdFwiXG4gICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZXhpc3RzKG91dGJvdW5kRGlzYWJsZWQpXCJcbiAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICBbYXJpYUxhYmVsUHJldmlvdXNNb250aF09XCJhcmlhTGFiZWxQcmV2aW91c01vbnRoXCJcbiAgICAgIFthcmlhTGFiZWxOZXh0TW9udGhdPVwiYXJpYUxhYmVsTmV4dE1vbnRoXCJcbiAgICAgIChmb2N1c09uTmV4dENoYW5nZSk9XCJpbmJvdW5kT3BlbiA9IHRydWVcIlxuICAgICAgKGZvY3VzT25QcmV2aW91c0NoYW5nZSk9XCJvbkZvY3VzT25QcmV2aW91cygkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZE1vbnRoQ2hhbmdlKT1cIm9uT3V0Ym91bmRNb250aENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFsob3BlbildPVwib3V0Ym91bmRPcGVuXCJcbiAgICAgIFsoc2VsZWN0ZWREYXRlKV09XCJvdXRib3VuZFNlbGVjdGVkRGF0ZVwiPnt7b3V0Ym91bmRMYWJlbH19PC9uYXMtZGF0ZXBpY2tlci1uZXc+XG4gIDwvZGl2PlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3NlcGFyYXRvcicpXCI+PC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwiY2hlY2tPdXRib3VuZE9ubHkoKVwiXG4gICAgW25hc0NsYXNzXT1cImdldENsYXNzKCdkYXRlLXBpY2tlcicpXCI+XG4gICAgPG5hcy1kYXRlcGlja2VyLW5ldyAjZGF0ZXBpY2tlckluYm91bmRcbiAgICAgIGNvbXBhY3RcbiAgICAgIFtkaXNhYmxlQmFja2Ryb3BdPVwiZGlzYWJsZUJhY2tkcm9wXCJcbiAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCJcbiAgICAgIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lSW5ib3VuZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY2hlY2tJbmJvdW5kRGlzYWJsZWQoKVwiXG4gICAgICBbbm9BdmFpbGFibGVGbGlnaHRzTGFiZWxdPVwibm9BdmFpbGFibGVGbGlnaHRzTGFiZWxcIlxuICAgICAgW2F2YWlsYWJsZUZsaWdodHNMYWJlbF09XCJhdmFpbGFibGVGbGlnaHRzTGFiZWxcIlxuICAgICAgW2Rpc2FibGVQYXN0U2VsZWN0aW9uXT1cImV4aXN0cyhkaXNhYmxlUGFzdFNlbGVjdGlvbilcIlxuICAgICAgW2F2YWlsYWJpbGl0eV09XCJleGlzdHMoYXZhaWxhYmlsaXR5KVwiXG4gICAgICBbYXZhaWxhYmxlRGF0ZXNdPVwiaW5ib3VuZEF2YWlsYWJsZURhdGVzXCJcbiAgICAgIFtsb3dlckxpbWl0RGF0ZV09XCJpbmJvdW5kTG93ZXJMaW1pdERhdGVcIlxuICAgICAgW3RpbWVzXT1cInRpbWVzXCJcbiAgICAgIFtzZWxlY3RlZFRpbWVdPVwiaW5ib3VuZFNlbGVjdGVkVGltZVwiXG4gICAgICBbZGF0ZURpc3BsYXlGb3JtYXRdPVwiZGF0ZURpc3BsYXlGb3JtYXRcIlxuICAgICAgW3RpbWVEaXNwbGF5Rm9ybWF0XT1cInRpbWVEaXNwbGF5Rm9ybWF0XCJcbiAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gICAgICBbYXJpYUxhYmVsUHJldmlvdXNNb250aF09XCJhcmlhTGFiZWxQcmV2aW91c01vbnRoXCJcbiAgICAgIFthcmlhTGFiZWxOZXh0TW9udGhdPVwiYXJpYUxhYmVsTmV4dE1vbnRoXCJcbiAgICAgIChmb2N1c09uTmV4dENoYW5nZSk9XCJvbkZvY3VzT25OZXh0KCRldmVudClcIlxuICAgICAgKGZvY3VzT25QcmV2aW91c0NoYW5nZSk9XCJvbkluYm91bmRGb2N1c09uUHJldmlvdXMoKVwiXG4gICAgICBbKG9wZW4pXT1cImluYm91bmRPcGVuXCJcbiAgICAgIFsoc2VsZWN0ZWRNb250aCldPVwiaW5ib3VuZFNlbGVjdGVkTW9udGhcIlxuICAgICAgWyhzZWxlY3RlZERhdGUpXT1cImluYm91bmRTZWxlY3RlZERhdGVcIj57e2luYm91bmRMYWJlbH19PC9uYXMtZGF0ZXBpY2tlci1uZXc+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|