@litigiovirtual/ius-design-components 1.0.263 → 1.0.265

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.
@@ -14,6 +14,12 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
15
  export class ToolbarUserMenuComponent {
16
16
  constructor() {
17
+ this.showUsuariosGrupos = true;
18
+ this.showConfiguracionCuenta = true;
19
+ this.showPagosFacturacion = true;
20
+ this.showSubscripcionesServicios = true;
21
+ this.showReferir = true;
22
+ this._closeSwitchAccountForm = false;
17
23
  this.clickPerfilPreferencias = new EventEmitter();
18
24
  this.clickUsuariosRoles = new EventEmitter();
19
25
  this.clickConfiguracion = new EventEmitter();
@@ -32,6 +38,15 @@ export class ToolbarUserMenuComponent {
32
38
  this.showFormSwitchAccount = false;
33
39
  this.isOpen = false;
34
40
  }
41
+ set closeSwitchAccountForm(value) {
42
+ this._closeSwitchAccountForm = value;
43
+ if (value) {
44
+ this.showFormSwitchAccount = false;
45
+ }
46
+ }
47
+ get closeSwitchAccountForm() {
48
+ return this._closeSwitchAccountForm;
49
+ }
35
50
  clickShowMore() {
36
51
  this.showMore = !this.showMore;
37
52
  }
@@ -77,11 +92,11 @@ export class ToolbarUserMenuComponent {
77
92
  return !!(this.detallesConsumo && this.detallesConsumo.length > 0);
78
93
  }
79
94
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarUserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToolbarUserMenuComponent, isStandalone: true, selector: "ius-toolbar-user-menu", inputs: { object: "object", subscripcionDetalle: "subscripcionDetalle", detallesConsumo: "detallesConsumo", accountList: "accountList" }, outputs: { clickPerfilPreferencias: "clickPerfilPreferencias", clickUsuariosRoles: "clickUsuariosRoles", clickConfiguracion: "clickConfiguracion", clickPagos: "clickPagos", clickSubsServicios: "clickSubsServicios", clickCambiarCuenta: "clickCambiarCuenta", clickCerrarSesion: "clickCerrarSesion", clickReferir: "clickReferir", requestClose: "requestClose", clickAccountSelected: "clickAccountSelected", clickAccountPredeterminada: "clickAccountPredeterminada", clickEditAccount: "clickEditAccount", clickDesvincularAccount: "clickDesvincularAccount", clickAgregarAccount: "clickAgregarAccount" }, ngImport: i0, template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["click"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["isActive", "iconName", "numberAlerts"], outputs: ["buttonClicked"] }, { kind: "component", type: ProgressBarComponent, selector: "ius-progress-bar", inputs: ["total", "v1", "v2", "v3", "titleV1", "titleV2", "titleV3", "titleV4"] }, { kind: "component", type: ButtonAccountsComponent, selector: "ius-button-accounts", inputs: ["account", "showOptionsFlag"], outputs: ["accountSelected", "onPressedPredeterminado", "onPressedDesvincular", "onPressedEditar"] }] }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ToolbarUserMenuComponent, isStandalone: true, selector: "ius-toolbar-user-menu", inputs: { object: "object", subscripcionDetalle: "subscripcionDetalle", detallesConsumo: "detallesConsumo", accountList: "accountList", showUsuariosGrupos: "showUsuariosGrupos", showConfiguracionCuenta: "showConfiguracionCuenta", showPagosFacturacion: "showPagosFacturacion", showSubscripcionesServicios: "showSubscripcionesServicios", showReferir: "showReferir", closeSwitchAccountForm: "closeSwitchAccountForm" }, outputs: { clickPerfilPreferencias: "clickPerfilPreferencias", clickUsuariosRoles: "clickUsuariosRoles", clickConfiguracion: "clickConfiguracion", clickPagos: "clickPagos", clickSubsServicios: "clickSubsServicios", clickCambiarCuenta: "clickCambiarCuenta", clickCerrarSesion: "clickCerrarSesion", clickReferir: "clickReferir", requestClose: "requestClose", clickAccountSelected: "clickAccountSelected", clickAccountPredeterminada: "clickAccountPredeterminada", clickEditAccount: "clickEditAccount", clickDesvincularAccount: "clickDesvincularAccount", clickAgregarAccount: "clickAgregarAccount" }, ngImport: i0, template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n @if (showUsuariosGrupos) {\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n }\r\n @if (showConfiguracionCuenta) {\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n }\r\n @if (showPagosFacturacion) {\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n }\r\n @if (showSubscripcionesServicios) {\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n }\r\n @if (showReferir) {\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n }\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "component", type: DropdownOptionItemComponent, selector: "ius-dropdown-option-item", inputs: ["iconName", "route"], outputs: ["click"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconMdComponent, selector: "ius-icon-md", inputs: ["iconName", "color"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: ButtonStandardTertiaryComponent, selector: "ius-button-standard-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: MenuItemComponent, selector: "ius-menu-item", inputs: ["isActive", "iconName", "numberAlerts"], outputs: ["buttonClicked"] }, { kind: "component", type: ProgressBarComponent, selector: "ius-progress-bar", inputs: ["total", "v1", "v2", "v3", "titleV1", "titleV2", "titleV3", "titleV4"] }, { kind: "component", type: ButtonAccountsComponent, selector: "ius-button-accounts", inputs: ["account", "showOptionsFlag"], outputs: ["accountSelected", "onPressedPredeterminado", "onPressedDesvincular", "onPressedEditar"] }] }); }
81
96
  }
82
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarUserMenuComponent, decorators: [{
83
98
  type: Component,
84
- args: [{ selector: 'ius-toolbar-user-menu', standalone: true, imports: [CommonModule, IconSmComponent, IconXsComponent, DropdownOptionItemComponent, SimpleDividerComponent, IconMdComponent, ButtonCircleTertiaryComponent, ButtonStandardTertiaryComponent, MenuItemComponent, ProgressBarComponent, ButtonAccountsComponent], template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"] }]
99
+ args: [{ selector: 'ius-toolbar-user-menu', standalone: true, imports: [CommonModule, IconSmComponent, IconXsComponent, DropdownOptionItemComponent, SimpleDividerComponent, IconMdComponent, ButtonCircleTertiaryComponent, ButtonStandardTertiaryComponent, MenuItemComponent, ProgressBarComponent, ButtonAccountsComponent], template: "<div class=\"tbl-menu\">\r\n <div class=\"body-menu scrollable\">\r\n <div class=\"colum-mn-1 text-head-mn\">\r\n <span>Est\u00E1s navegando en</span>\r\n <div class=\"tx-row-1\">\r\n <ius-icon-sm iconName=\"icon-account-circle\" class=\"icon-acc-circle\"></ius-icon-sm>\r\n <span class=\"h4 tx-abog\">{{ object.nombreCompany }}</span>\r\n </div>\r\n <div class=\"tx-row-1 id-ct\">\r\n <span>ID Cuenta</span>\r\n <span class=\"tx-id-ct\">{{ object.cuentaID }}</span>\r\n </div>\r\n <div class=\"tx-row-1 tx-rol\">\r\n <span>Tu rol</span>\r\n <span class=\"tx-name-rl\">{{ object.rol }}</span>\r\n </div>\r\n </div>\r\n @if (!showFormSwitchAccount) {\r\n <div class=\"colum-mn-1\">\r\n <div class=\"email-inf\">\r\n <ius-icon-xs iconName=\"icon-alternate-email\" class=\"icon-alt-email\"></ius-icon-xs>\r\n <span>{{ object.correo }}</span>\r\n </div>\r\n <ius-dropdown-option-item (click)=\"onClickPerfilPreferencias()\">Perfil, preferencias y\r\n seguridad</ius-dropdown-option-item>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"container-plan\" [ngClass]=\"{ 'show-more': showMore }\">\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n subscripcionDetalle?.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">{{\r\n subscripcionDetalle?.namePlan\r\n }}</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Total global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantTotal\r\n }}</span>\r\n </div>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Disponible global</span>\r\n <span class=\"tx-contador-2\">{{\r\n subscripcionDetalle?.cantDisponible\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n subscripcionDetalle?.estado\r\n }}</span>\r\n @if (subscripcionDetalle?.esPlanGratuito) {\r\n <div class=\"tx-row-1 tx-small tx-prueba\">\r\n <ius-icon-xs iconName=\"icon-schedule\"></ius-icon-xs>\r\n <span>Plan de prueba activo</span>\r\n </div>\r\n }\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n <div style=\"width: 100%\">\r\n <ius-progress-bar [total]=\"subscripcionDetalle?.cantTotal ?? 0\" [titleV1]=\"'Judicial'\"\r\n [v1]=\"subscripcionDetalle?.cantJudicial ?? 0\" [titleV2]=\"'SuperSociedades'\"\r\n [v2]=\"subscripcionDetalle?.cantProcesos2 ?? 0\" [titleV3]=\"'Procuraduria'\"\r\n [v3]=\"subscripcionDetalle?.cantProcesos3 ?? 0\">\r\n </ius-progress-bar>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-set\" class=\"icon-storage-set\"></ius-icon-xs>\r\n <span>{{ subscripcionDetalle?.asignados ?? 0 }}</span>\r\n </div>\r\n <div class=\"item-counter tx-small\">\r\n <ius-icon-xs iconName=\"icon-storage-plus\" class=\"icon-storage-plus\"></ius-icon-xs>\r\n <span>{{\r\n subscripcionDetalle?.cantAsignadaDisponible ?? 0\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n @if (detallesConsumo) {\r\n @for (detail of detallesConsumo; track $index) {\r\n <div class=\"inf-plan\">\r\n <div class=\"row-plan-1\">\r\n <div class=\"col-plan-1\">\r\n <span class=\"tx-small tx-tipo-plan\">{{\r\n detail.tipoServicio\r\n }}</span>\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-base tx-name-plan\">Por consumo</span>\r\n <ius-icon-md iconName=\"icon-help\" class=\"icon-help\"></ius-icon-md>\r\n </div>\r\n <div class=\"tx-row-2 tx-small\">\r\n <div class=\"tx-row-1\">\r\n <span class=\"tx-contador-1\">Consumo este mes</span>\r\n <span class=\"tx-contador-2\">{{\r\n detail.cantConsumida\r\n }}</span>\r\n </div>\r\n </div>\r\n <span class=\"tx-base tx-estado-plan\">{{\r\n detail.estado\r\n }}</span>\r\n </div>\r\n <ius-button-circle-tertiary iconName=\"icon-discover-tune\"></ius-button-circle-tertiary>\r\n </div>\r\n </div>\r\n <ius-simple-divider></ius-simple-divider>\r\n }\r\n }\r\n </div>\r\n @if(hasMultipleServices) {\r\n <ius-button-standard-tertiary class=\"btn-list\" [iconName]=\"\r\n showMore ? 'icon-keyboard-arrow-up' : 'icon-keyboard-arrow-down'\r\n \" (buttonClicked)=\"clickShowMore()\">\r\n {{ showMore ? \"Mostrar menos\" : \"Mostrar m\u00E1s\" }}\r\n </ius-button-standard-tertiary>\r\n }\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-items\">\r\n @if (showUsuariosGrupos) {\r\n <ius-menu-item iconName=\"icon-groups\" (buttonClicked)=\"onClickUsuariosRoles()\">Usuarios y roles</ius-menu-item>\r\n }\r\n @if (showConfiguracionCuenta) {\r\n <ius-menu-item iconName=\"icon-build\" (buttonClicked)=\"onClickConfiguracion()\">Configuraci\u00F3n de la\r\n cuenta</ius-menu-item>\r\n }\r\n @if (showPagosFacturacion) {\r\n <ius-menu-item iconName=\"icon-finance-chip\" (buttonClicked)=\"onClickPagos()\">Pagos y facturaci\u00F3n</ius-menu-item>\r\n }\r\n @if (showSubscripcionesServicios) {\r\n <ius-menu-item iconName=\"icon-enterprise\" (buttonClicked)=\"onClickSubsServicios()\">Suscripciones y\r\n servicios</ius-menu-item>\r\n }\r\n @if (showReferir) {\r\n <ius-menu-item iconName=\"icon-stream\" (buttonClicked)=\"onClickReferir()\">Referir servicio</ius-menu-item>\r\n }\r\n </div>\r\n\r\n <ius-simple-divider></ius-simple-divider>\r\n } @else {\r\n <div class=\"container-bottom\">\r\n <span class=\"tx-row-1 tx-rol\">Cambiar a</span>\r\n <div class=\"container-list\">\r\n @for (account of accountList; track account; let i = $index) {\r\n <ius-button-accounts (accountSelected)=\"onClickAccount(account)\" (onPressedPredeterminado)=\"\r\n clickAccountPredeterminada.emit(account)\r\n \"\r\n ,\r\n (onPressedEditar)=\"clickEditAccount.emit(account)\"\r\n ,\r\n (onPressedDesvincular)=\"clickDesvincularAccount.emit(account)\"\r\n [account]=\"account\"\r\n [showOptionsFlag]=\"false\"\r\n ></ius-button-accounts>\r\n }\r\n </div>\r\n <ius-button-standard-tertiary [iconName]=\"'icon-add'\" (buttonClicked)=\"addAccount()\">Agregar\r\n nueva cuenta</ius-button-standard-tertiary>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"ctn-items mgt-8\">\r\n <ius-menu-item iconName=\"{{\r\n !showFormSwitchAccount ? 'icon-cases' : 'icon-arrow-left-alt'\r\n }}\" (buttonClicked)=\"onClickCambiarCuenta()\">{{\r\n !showFormSwitchAccount\r\n ? \"Cambiar de cuenta\"\r\n : \"Volver al menu de usuario\"\r\n }}</ius-menu-item>\r\n <ius-menu-item iconName=\"icon-exit-to-app\" (buttonClicked)=\"onClickCerrarSesion()\">Cerrar sesi\u00F3n</ius-menu-item>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.tbl-menu{display:flex;width:390px;height:85vh;padding:16px;flex-direction:column}.body-menu{display:flex;flex:1 0 0;flex-direction:column;padding-right:6px;gap:8px;font-family:Rubik,sans-serif;overflow-y:auto;min-height:0}.colum-mn-1{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.text-head-mn{color:#8c8c8c;font-size:.75rem;line-height:16px;letter-spacing:.24px}.icon-acc-circle{color:#595959}.tx-row-1{display:flex;align-items:center;gap:4px}.tx-abog{color:#333;letter-spacing:.2px}.id-ct{padding:4px;border-radius:4px;border:1px solid #d9d9d9}.tx-id-ct{font-weight:500}.tx-rol{font-size:.875rem;color:#595959;line-height:20px}.tx-name-rl{color:#333;letter-spacing:.28px;font-weight:500}.email-inf{display:flex;padding:8px;align-items:center;gap:4px;color:#595959;font-size:.875rem;line-height:20px;letter-spacing:.28px}.icon-alt-email{color:#7caf25}ius-dropdown-option-item{width:100%}.container-plan{overflow:hidden;max-height:200px;transition:max-height .5s cubic-bezier(.4,0,.2,1);flex-shrink:0}.inf-plan{display:flex;padding:8px;flex-direction:column;align-items:flex-start;gap:8px}.show-more{max-height:10000px;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.tx-small{font-size:.75rem;line-height:16px;letter-spacing:.24px}.tx-base{font-size:.875rem;line-height:20px;letter-spacing:.28px}.row-plan-1{display:flex;gap:12px;width:100%}.col-plan-1{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0 0}.icon-help{color:#8c8c8c}.tx-tipo-plan{color:#595959;font-weight:500}.tx-name-plan{color:#333;font-weight:500}.tx-row-2{display:flex;align-items:center;gap:8px}.tx-contador-1{color:#8c8c8c;font-weight:500}.tx-contador-2{color:#333}.tx-estado-plan{color:#7caf25}.mgt-8{margin-top:8px}.progress-container{width:100%;border-radius:100px;height:23px;overflow:hidden;background:#f0f0f0}.progress-bar{display:flex;height:100%}.segment{height:100%}.tipo-1-color-bar{background:#5892ff}.tipo-1-color{color:#5892ff}.tipo-2-color-bar{background:#103ab7}.tipo-2-color{color:#103ab7}.legend{display:flex;width:100%;align-items:center;gap:8px;flex-wrap:wrap}.legend .icon-storage-set{color:#103ab7}.legend .icon-storage-plus{color:#629219}.item-counter{display:flex;align-items:center;gap:4px;color:#333}.tx-name-serv{color:#595959;font-weight:500}.btn-list{margin-bottom:8px}.ctn-items{display:flex;flex-direction:column;gap:4px}.scrollable{overflow-y:auto;overflow-x:hidden}.scrollable::-webkit-scrollbar{-webkit-appearance:none}.scrollable::-webkit-scrollbar:vertical{width:7px}.scrollable::-webkit-scrollbar-thumb{background-color:#d8d6d6;border-radius:20px}.container-bottom{padding:0 16px;display:flex;flex-direction:column;gap:8px}.container-list{display:flex;flex-direction:column;gap:4px;width:90%}\n"] }]
85
100
  }], propDecorators: { object: [{
86
101
  type: Input,
87
102
  args: [{ required: true }]
@@ -91,6 +106,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
106
  type: Input
92
107
  }], accountList: [{
93
108
  type: Input
109
+ }], showUsuariosGrupos: [{
110
+ type: Input
111
+ }], showConfiguracionCuenta: [{
112
+ type: Input
113
+ }], showPagosFacturacion: [{
114
+ type: Input
115
+ }], showSubscripcionesServicios: [{
116
+ type: Input
117
+ }], showReferir: [{
118
+ type: Input
119
+ }], closeSwitchAccountForm: [{
120
+ type: Input
94
121
  }], clickPerfilPreferencias: [{
95
122
  type: Output
96
123
  }], clickUsuariosRoles: [{
@@ -120,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
120
147
  }], clickAgregarAccount: [{
121
148
  type: Output
122
149
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFVdkYsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQWNZ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IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uU21Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1zbVwiO1xyXG5pbXBvcnQgeyBJY29uWHNDb21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi14c1wiO1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcGRvd24tb3B0aW9uLWl0ZW1cIjtcclxuaW1wb3J0IHsgU2ltcGxlRGl2aWRlckNvbXBvbmVudCB9IGZyb20gXCIuLi9zaW1wbGUtZGl2aWRlclwiO1xyXG5pbXBvcnQgeyBJY29uTWRDb21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1tZFwiO1xyXG5pbXBvcnQgeyBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tY2lyY2xlLXRlcnRpYXJ5XCI7XHJcbmltcG9ydCB7IEJ1dHRvblN0YW5kYXJkVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5XCI7XHJcbmltcG9ydCB7IE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uL21lbnUtaXRlbVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gXCIuLi9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCdXR0b25BY2NvdW50c0NvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tYWNjb3VudHMvYnV0dG9uLWFjY291bnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPYmpldG8sIEFjY291bnQsIFN1YnNjcmlwY2lvbkRldGFsbGUsIENvbnN1bW9EZXRhbGxlcyB9IGZyb20gXCIuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy10b29sYmFyLXVzZXItbWVudScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uU21Db21wb25lbnQsIEljb25Yc0NvbXBvbmVudCwgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50LCBTaW1wbGVEaXZpZGVyQ29tcG9uZW50LCBJY29uTWRDb21wb25lbnQsIEJ1dHRvbkNpcmNsZVRlcnRpYXJ5Q29tcG9uZW50LCBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50LCBNZW51SXRlbUNvbXBvbmVudCwgUHJvZ3Jlc3NCYXJDb21wb25lbnQsIEJ1dHRvbkFjY291bnRzQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90b29sYmFyLXVzZXItbWVudS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJVc2VyTWVudUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG9iamVjdCE6IE9iamV0bztcclxuICBASW5wdXQoKSBzdWJzY3JpcGNpb25EZXRhbGxlPzogU3Vic2NyaXBjaW9uRGV0YWxsZTtcclxuICBASW5wdXQoKSBkZXRhbGxlc0NvbnN1bW8/OiBDb25zdW1vRGV0YWxsZXNbXTtcclxuICBASW5wdXQoKSBhY2NvdW50TGlzdD86IEFjY291bnRbXTtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrVXN1YXJpb3NSb2xlczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0NvbmZpZ3VyYWNpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tQYWdvczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja1N1YnNTZXJ2aWNpb3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tDYW1iaWFyQ3VlbnRhOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQ2VycmFyU2VzaW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrUmVmZXJpcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZXF1ZXN0Q2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrQWNjb3VudFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tBY2NvdW50UHJlZGV0ZXJtaW5hZGE6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0VkaXRBY2NvdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tEZXN2aW5jdWxhckFjY291bnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0FncmVnYXJBY2NvdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblxyXG4gIHNob3dNb3JlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Zvcm1Td2l0Y2hBY2NvdW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNsaWNrU2hvd01vcmUoKSB7XHJcbiAgICB0aGlzLnNob3dNb3JlID0gIXRoaXMuc2hvd01vcmU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrVXN1YXJpb3NSb2xlcygpIHtcclxuICAgIHRoaXMuY2xpY2tVc3Vhcmlvc1JvbGVzLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDb25maWd1cmFjaW9uKCkge1xyXG4gICAgdGhpcy5jbGlja0NvbmZpZ3VyYWNpb24uZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1BhZ29zKCkge1xyXG4gICAgdGhpcy5jbGlja1BhZ29zLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tTdWJzU2VydmljaW9zKCkge1xyXG4gICAgdGhpcy5jbGlja1N1YnNTZXJ2aWNpb3MuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0NhbWJpYXJDdWVudGEoKSB7XHJcbiAgICB0aGlzLmNsaWNrQ2FtYmlhckN1ZW50YS5lbWl0KCk7XHJcbiAgICB0aGlzLnNob3dGb3JtU3dpdGNoQWNjb3VudCA9ICF0aGlzLnNob3dGb3JtU3dpdGNoQWNjb3VudDtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDZXJyYXJTZXNpb24oKSB7XHJcbiAgICB0aGlzLmNsaWNrQ2VycmFyU2VzaW9uLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQZXJmaWxQcmVmZXJlbmNpYXMoKSB7XHJcbiAgICB0aGlzLmNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tSZWZlcmlyKCkge1xyXG4gICAgdGhpcy5jbGlja1JlZmVyaXIuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja0FjY291bnQoYWNjb3VudDogQWNjb3VudCkge1xyXG4gICAgdGhpcy5jbGlja0FjY291bnRTZWxlY3RlZC5lbWl0KGFjY291bnQpO1xyXG4gIH1cclxuXHJcbiAgYWRkQWNjb3VudCgpIHtcclxuICAgIHRoaXMuY2xpY2tBZ3JlZ2FyQWNjb3VudC5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzTXVsdGlwbGVTZXJ2aWNlcygpOiBib29sZWFuIHtcclxuICByZXR1cm4gISEodGhpcy5kZXRhbGxlc0NvbnN1bW8gJiYgdGhpcy5kZXRhbGxlc0NvbnN1bW8ubGVuZ3RoID4gMCk7XHJcbn1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGJsLW1lbnVcIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9keS1tZW51IHNjcm9sbGFibGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bS1tbi0xIHRleHQtaGVhZC1tblwiPlxyXG4gICAgICA8c3Bhbj5Fc3TDoXMgbmF2ZWdhbmRvIGVuPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICA8aXVzLWljb24tc20gaWNvbk5hbWU9XCJpY29uLWFjY291bnQtY2lyY2xlXCIgY2xhc3M9XCJpY29uLWFjYy1jaXJjbGVcIj48L2l1cy1pY29uLXNtPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaDQgdHgtYWJvZ1wiPnt7IG9iamVjdC5ub21icmVDb21wYW55IH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xIGlkLWN0XCI+XHJcbiAgICAgICAgPHNwYW4+SUQgQ3VlbnRhPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHgtaWQtY3RcIj57eyBvYmplY3QuY3VlbnRhSUQgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTEgdHgtcm9sXCI+XHJcbiAgICAgICAgPHNwYW4+VHUgcm9sPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHgtbmFtZS1ybFwiPnt7IG9iamVjdC5yb2wgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCFzaG93Rm9ybVN3aXRjaEFjY291bnQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bS1tbi0xXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1pbmZcIj5cclxuICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLWFsdGVybmF0ZS1lbWFpbFwiIGNsYXNzPVwiaWNvbi1hbHQtZW1haWxcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgIDxzcGFuPnt7IG9iamVjdC5jb3JyZW8gfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtIChjbGljayk9XCJvbkNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzKClcIj5QZXJmaWwsIHByZWZlcmVuY2lhcyB5XHJcbiAgICAgICAgc2VndXJpZGFkPC9pdXMtZHJvcGRvd24tb3B0aW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXBsYW5cIiBbbmdDbGFzc109XCJ7ICdzaG93LW1vcmUnOiBzaG93TW9yZSB9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmYtcGxhblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctcGxhbi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXBsYW4tMVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LXNtYWxsIHR4LXRpcG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8udGlwb1NlcnZpY2lvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1uYW1lLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8ubmFtZVBsYW5cclxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpdXMtaWNvbi1tZCBpY29uTmFtZT1cImljb24taGVscFwiIGNsYXNzPVwiaWNvbi1oZWxwXCI+PC9pdXMtaWNvbi1tZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMiB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0xXCI+VG90YWwgZ2xvYmFsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0yXCI+e3tcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0xXCI+RGlzcG9uaWJsZSBnbG9iYWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTJcIj57e1xyXG4gICAgICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50RGlzcG9uaWJsZVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1lc3RhZG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uZXN0YWRvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIEBpZiAoc3Vic2NyaXBjaW9uRGV0YWxsZT8uZXNQbGFuR3JhdHVpdG8pIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xIHR4LXNtYWxsIHR4LXBydWViYVwiPlxyXG4gICAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tc2NoZWR1bGVcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICAgIDxzcGFuPlBsYW4gZGUgcHJ1ZWJhIGFjdGl2bzwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1kaXNjb3Zlci10dW5lXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgIDxpdXMtcHJvZ3Jlc3MtYmFyIFt0b3RhbF09XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50VG90YWwgPz8gMFwiIFt0aXRsZVYxXT1cIidKdWRpY2lhbCdcIlxyXG4gICAgICAgICAgICBbdjFdPVwic3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudEp1ZGljaWFsID8/IDBcIiBbdGl0bGVWMl09XCInU3VwZXJTb2NpZWRhZGVzJ1wiXHJcbiAgICAgICAgICAgIFt2Ml09XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50UHJvY2Vzb3MyID8/IDBcIiBbdGl0bGVWM109XCInUHJvY3VyYWR1cmlhJ1wiXHJcbiAgICAgICAgICAgIFt2M109XCJzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50UHJvY2Vzb3MzID8/IDBcIj5cclxuICAgICAgICAgIDwvaXVzLXByb2dyZXNzLWJhcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb3VudGVyIHR4LXNtYWxsXCI+XHJcbiAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tc3RvcmFnZS1zZXRcIiBjbGFzcz1cImljb24tc3RvcmFnZS1zZXRcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBzdWJzY3JpcGNpb25EZXRhbGxlPy5hc2lnbmFkb3MgPz8gMCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY291bnRlciB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLXN0b3JhZ2UtcGx1c1wiIGNsYXNzPVwiaWNvbi1zdG9yYWdlLXBsdXNcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICA8c3Bhbj57e1xyXG4gICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRBc2lnbmFkYURpc3BvbmlibGUgPz8gMFxyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgICBAaWYgKGRldGFsbGVzQ29uc3Vtbykge1xyXG4gICAgICBAZm9yIChkZXRhaWwgb2YgZGV0YWxsZXNDb25zdW1vOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImluZi1wbGFuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1wbGFuLTFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtcGxhbi0xXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtc21hbGwgdHgtdGlwby1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICBkZXRhaWwudGlwb1NlcnZpY2lvXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1uYW1lLXBsYW5cIj5Qb3IgY29uc3Vtbzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIiBjbGFzcz1cImljb24taGVscFwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTIgdHgtc21hbGxcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMVwiPkNvbnN1bW8gZXN0ZSBtZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTJcIj57e1xyXG4gICAgICAgICAgICAgICAgICBkZXRhaWwuY2FudENvbnN1bWlkYVxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtYmFzZSB0eC1lc3RhZG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgZGV0YWlsLmVzdGFkb1xyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWRpc2NvdmVyLXR1bmVcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihoYXNNdWx0aXBsZVNlcnZpY2VzKSB7XHJcbiAgICA8aXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeSBjbGFzcz1cImJ0bi1saXN0XCIgW2ljb25OYW1lXT1cIlxyXG4gICAgICAgICAgc2hvd01vcmUgPyAnaWNvbi1rZXlib2FyZC1hcnJvdy11cCcgOiAnaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duJ1xyXG4gICAgICAgIFwiIChidXR0b25DbGlja2VkKT1cImNsaWNrU2hvd01vcmUoKVwiPlxyXG4gICAgICB7eyBzaG93TW9yZSA/IFwiTW9zdHJhciBtZW5vc1wiIDogXCJNb3N0cmFyIG3DoXNcIiB9fVxyXG4gICAgPC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgfVxyXG4gICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJjdG4taXRlbXNcIj5cclxuICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWdyb3Vwc1wiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tVc3Vhcmlvc1JvbGVzKClcIj5Vc3VhcmlvcyB5IHJvbGVzPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tYnVpbGRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQ29uZmlndXJhY2lvbigpXCI+Q29uZmlndXJhY2nDs24gZGUgbGFcclxuICAgICAgICBjdWVudGE8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1maW5hbmNlLWNoaXBcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUGFnb3MoKVwiPlBhZ29zIHkgZmFjdHVyYWNpw7NuPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tZW50ZXJwcmlzZVwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tTdWJzU2VydmljaW9zKClcIj5TdXNjcmlwY2lvbmVzIHlcclxuICAgICAgICBzZXJ2aWNpb3M8L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1zdHJlYW1cIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrUmVmZXJpcigpXCI+UmVmZXJpciBzZXJ2aWNpbzwvaXVzLW1lbnUtaXRlbT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYm90dG9tXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidHgtcm93LTEgdHgtcm9sXCI+Q2FtYmlhciBhPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWxpc3RcIj5cclxuICAgICAgICBAZm9yIChhY2NvdW50IG9mIGFjY291bnRMaXN0OyB0cmFjayBhY2NvdW50OyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxpdXMtYnV0dG9uLWFjY291bnRzIChhY2NvdW50U2VsZWN0ZWQpPVwib25DbGlja0FjY291bnQoYWNjb3VudClcIiAob25QcmVzc2VkUHJlZGV0ZXJtaW5hZG8pPVwiXHJcbiAgICAgICAgICAgICAgICBjbGlja0FjY291bnRQcmVkZXRlcm1pbmFkYS5lbWl0KGFjY291bnQpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAsXHJcbiAgICAgICAgICAgICAgKG9uUHJlc3NlZEVkaXRhcik9XCJjbGlja0VkaXRBY2NvdW50LmVtaXQoYWNjb3VudClcIlxyXG4gICAgICAgICAgICAgICxcclxuICAgICAgICAgICAgICAob25QcmVzc2VkRGVzdmluY3VsYXIpPVwiY2xpY2tEZXN2aW5jdWxhckFjY291bnQuZW1pdChhY2NvdW50KVwiXHJcbiAgICAgICAgICAgICAgW2FjY291bnRdPVwiYWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dPcHRpb25zRmxhZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2l1cy1idXR0b24tYWNjb3VudHM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgW2ljb25OYW1lXT1cIidpY29uLWFkZCdcIiAoYnV0dG9uQ2xpY2tlZCk9XCJhZGRBY2NvdW50KClcIj5BZ3JlZ2FyXHJcbiAgICAgICAgICAgICAgICBudWV2YSBjdWVudGE8L2l1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjdG4taXRlbXMgbWd0LThcIj5cclxuICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwie3tcclxuICAgICAgICAhc2hvd0Zvcm1Td2l0Y2hBY2NvdW50ID8gJ2ljb24tY2FzZXMnIDogJ2ljb24tYXJyb3ctbGVmdC1hbHQnXHJcbiAgICAgIH19XCIgKGJ1dHRvbkNsaWNrZWQpPVwib25DbGlja0NhbWJpYXJDdWVudGEoKVwiPnt7XHJcbiAgICAgICFzaG93Rm9ybVN3aXRjaEFjY291bnRcclxuICAgICAgPyBcIkNhbWJpYXIgZGUgY3VlbnRhXCJcclxuICAgICAgOiBcIlZvbHZlciBhbCBtZW51IGRlIHVzdWFyaW9cIlxyXG4gICAgICB9fTwvaXVzLW1lbnUtaXRlbT5cclxuICAgIDxpdXMtbWVudS1pdGVtIGljb25OYW1lPVwiaWNvbi1leGl0LXRvLWFwcFwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tDZXJyYXJTZXNpb24oKVwiPkNlcnJhciBzZXNpw7NuPC9pdXMtbWVudS1pdGVtPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvdG9vbGJhci11c2VyLW1lbnUvdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFVdkYsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQWNX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LGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlGLHNCQUFzQjtzQkFEekIsS0FBSztnQkFhSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWNvblNtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tc21cIjtcclxuaW1wb3J0IHsgSWNvblhzQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24teHNcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25PcHRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Ryb3Bkb3duLW9wdGlvbi1pdGVtXCI7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vc2ltcGxlLWRpdmlkZXJcIjtcclxuaW1wb3J0IHsgSWNvbk1kQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tbWRcIjtcclxuaW1wb3J0IHsgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVwiO1xyXG5pbXBvcnQgeyBCdXR0b25TdGFuZGFyZFRlcnRpYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeVwiO1xyXG5pbXBvcnQgeyBNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gXCIuLi9tZW51LWl0ZW1cIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tIFwiLi4vcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnV0dG9uQWNjb3VudHNDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWFjY291bnRzL2J1dHRvbi1hY2NvdW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT2JqZXRvLCBBY2NvdW50LCBTdWJzY3JpcGNpb25EZXRhbGxlLCBDb25zdW1vRGV0YWxsZXMgfSBmcm9tIFwiLi4vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpdXMtdG9vbGJhci11c2VyLW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvblNtQ29tcG9uZW50LCBJY29uWHNDb21wb25lbnQsIERyb3Bkb3duT3B0aW9uSXRlbUNvbXBvbmVudCwgU2ltcGxlRGl2aWRlckNvbXBvbmVudCwgSWNvbk1kQ29tcG9uZW50LCBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCwgQnV0dG9uU3RhbmRhcmRUZXJ0aWFyeUNvbXBvbmVudCwgTWVudUl0ZW1Db21wb25lbnQsIFByb2dyZXNzQmFyQ29tcG9uZW50LCBCdXR0b25BY2NvdW50c0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXItdXNlci1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdG9vbGJhci11c2VyLW1lbnUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyVXNlck1lbnVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBvYmplY3QhOiBPYmpldG87XHJcbiAgQElucHV0KCkgc3Vic2NyaXBjaW9uRGV0YWxsZT86IFN1YnNjcmlwY2lvbkRldGFsbGU7XHJcbiAgQElucHV0KCkgZGV0YWxsZXNDb25zdW1vPzogQ29uc3Vtb0RldGFsbGVzW107XHJcbiAgQElucHV0KCkgYWNjb3VudExpc3Q/OiBBY2NvdW50W107XHJcblxyXG4gIEBJbnB1dCgpIHNob3dVc3Vhcmlvc0dydXBvcz86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDb25maWd1cmFjaW9uQ3VlbnRhPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1BhZ29zRmFjdHVyYWNpb24/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93U3Vic2NyaXBjaW9uZXNTZXJ2aWNpb3M/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93UmVmZXJpcj86IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9jbG9zZVN3aXRjaEFjY291bnRGb3JtID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY2xvc2VTd2l0Y2hBY2NvdW50Rm9ybSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY2xvc2VTd2l0Y2hBY2NvdW50Rm9ybSA9IHZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNob3dGb3JtU3dpdGNoQWNjb3VudCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGNsb3NlU3dpdGNoQWNjb3VudEZvcm0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VTd2l0Y2hBY2NvdW50Rm9ybTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBjbGlja1BlcmZpbFByZWZlcmVuY2lhczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja1VzdWFyaW9zUm9sZXM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tDb25maWd1cmFjaW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrUGFnb3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tTdWJzU2VydmljaW9zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQ2FtYmlhckN1ZW50YTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0NlcnJhclNlc2lvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja1JlZmVyaXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVxdWVzdENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjbGlja0FjY291bnRTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrQWNjb3VudFByZWRldGVybWluYWRhOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tFZGl0QWNjb3VudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrRGVzdmluY3VsYXJBY2NvdW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xpY2tBZ3JlZ2FyQWNjb3VudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICBzaG93TW9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dGb3JtU3dpdGNoQWNjb3VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjbGlja1Nob3dNb3JlKCkge1xyXG4gICAgdGhpcy5zaG93TW9yZSA9ICF0aGlzLnNob3dNb3JlO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja1VzdWFyaW9zUm9sZXMoKSB7XHJcbiAgICB0aGlzLmNsaWNrVXN1YXJpb3NSb2xlcy5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ29uZmlndXJhY2lvbigpIHtcclxuICAgIHRoaXMuY2xpY2tDb25maWd1cmFjaW9uLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tQYWdvcygpIHtcclxuICAgIHRoaXMuY2xpY2tQYWdvcy5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU3Vic1NlcnZpY2lvcygpIHtcclxuICAgIHRoaXMuY2xpY2tTdWJzU2VydmljaW9zLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tDYW1iaWFyQ3VlbnRhKCkge1xyXG4gICAgdGhpcy5jbGlja0NhbWJpYXJDdWVudGEuZW1pdCgpO1xyXG4gICAgdGhpcy5zaG93Rm9ybVN3aXRjaEFjY291bnQgPSAhdGhpcy5zaG93Rm9ybVN3aXRjaEFjY291bnQ7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ2VycmFyU2VzaW9uKCkge1xyXG4gICAgdGhpcy5jbGlja0NlcnJhclNlc2lvbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrUGVyZmlsUHJlZmVyZW5jaWFzKCkge1xyXG4gICAgdGhpcy5jbGlja1BlcmZpbFByZWZlcmVuY2lhcy5lbWl0KCk7XHJcbiAgICB0aGlzLnJlcXVlc3RDbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrUmVmZXJpcigpIHtcclxuICAgIHRoaXMuY2xpY2tSZWZlcmlyLmVtaXQoKTtcclxuICAgIHRoaXMucmVxdWVzdENsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tBY2NvdW50KGFjY291bnQ6IEFjY291bnQpIHtcclxuICAgIHRoaXMuY2xpY2tBY2NvdW50U2VsZWN0ZWQuZW1pdChhY2NvdW50KTtcclxuICB9XHJcblxyXG4gIGFkZEFjY291bnQoKSB7XHJcbiAgICB0aGlzLmNsaWNrQWdyZWdhckFjY291bnQuZW1pdCgpO1xyXG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc011bHRpcGxlU2VydmljZXMoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICEhKHRoaXMuZGV0YWxsZXNDb25zdW1vICYmIHRoaXMuZGV0YWxsZXNDb25zdW1vLmxlbmd0aCA+IDApO1xyXG59XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRibC1tZW51XCI+XHJcbiAgPGRpdiBjbGFzcz1cImJvZHktbWVudSBzY3JvbGxhYmxlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW0tbW4tMSB0ZXh0LWhlYWQtbW5cIj5cclxuICAgICAgPHNwYW4+RXN0w6FzIG5hdmVnYW5kbyBlbjwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgPGl1cy1pY29uLXNtIGljb25OYW1lPVwiaWNvbi1hY2NvdW50LWNpcmNsZVwiIGNsYXNzPVwiaWNvbi1hY2MtY2lyY2xlXCI+PC9pdXMtaWNvbi1zbT5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImg0IHR4LWFib2dcIj57eyBvYmplY3Qubm9tYnJlQ29tcGFueSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMSBpZC1jdFwiPlxyXG4gICAgICAgIDxzcGFuPklEIEN1ZW50YTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWlkLWN0XCI+e3sgb2JqZWN0LmN1ZW50YUlEIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xIHR4LXJvbFwiPlxyXG4gICAgICAgIDxzcGFuPlR1IHJvbDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInR4LW5hbWUtcmxcIj57eyBvYmplY3Qucm9sIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmICghc2hvd0Zvcm1Td2l0Y2hBY2NvdW50KSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW0tbW4tMVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZW1haWwtaW5mXCI+XHJcbiAgICAgICAgPGl1cy1pY29uLXhzIGljb25OYW1lPVwiaWNvbi1hbHRlcm5hdGUtZW1haWxcIiBjbGFzcz1cImljb24tYWx0LWVtYWlsXCI+PC9pdXMtaWNvbi14cz5cclxuICAgICAgICA8c3Bhbj57eyBvYmplY3QuY29ycmVvIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGl1cy1kcm9wZG93bi1vcHRpb24taXRlbSAoY2xpY2spPVwib25DbGlja1BlcmZpbFByZWZlcmVuY2lhcygpXCI+UGVyZmlsLCBwcmVmZXJlbmNpYXMgeVxyXG4gICAgICAgIHNlZ3VyaWRhZDwvaXVzLWRyb3Bkb3duLW9wdGlvbi1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1wbGFuXCIgW25nQ2xhc3NdPVwieyAnc2hvdy1tb3JlJzogc2hvd01vcmUgfVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mLXBsYW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXBsYW4tMVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1wbGFuLTFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1zbWFsbCB0eC10aXBvLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LnRpcG9TZXJ2aWNpb1xyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWJhc2UgdHgtbmFtZS1wbGFuXCI+e3tcclxuICAgICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/Lm5hbWVQbGFuXHJcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aXVzLWljb24tbWQgaWNvbk5hbWU9XCJpY29uLWhlbHBcIiBjbGFzcz1cImljb24taGVscFwiPjwvaXVzLWljb24tbWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTIgdHgtc21hbGxcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMVwiPlRvdGFsIGdsb2JhbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMlwiPnt7XHJcbiAgICAgICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRUb3RhbFxyXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHgtY29udGFkb3ItMVwiPkRpc3BvbmlibGUgZ2xvYmFsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0yXCI+e3tcclxuICAgICAgICAgICAgICAgICAgc3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudERpc3BvbmlibGVcclxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWJhc2UgdHgtZXN0YWRvLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgIHN1YnNjcmlwY2lvbkRldGFsbGU/LmVzdGFkb1xyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKHN1YnNjcmlwY2lvbkRldGFsbGU/LmVzUGxhbkdyYXR1aXRvKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eC1yb3ctMSB0eC1zbWFsbCB0eC1wcnVlYmFcIj5cclxuICAgICAgICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLXNjaGVkdWxlXCI+PC9pdXMtaWNvbi14cz5cclxuICAgICAgICAgICAgICA8c3Bhbj5QbGFuIGRlIHBydWViYSBhY3Rpdm88L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tZGlzY292ZXItdHVuZVwiPjwvaXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnk+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICA8aXVzLXByb2dyZXNzLWJhciBbdG90YWxdPVwic3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudFRvdGFsID8/IDBcIiBbdGl0bGVWMV09XCInSnVkaWNpYWwnXCJcclxuICAgICAgICAgICAgW3YxXT1cInN1YnNjcmlwY2lvbkRldGFsbGU/LmNhbnRKdWRpY2lhbCA/PyAwXCIgW3RpdGxlVjJdPVwiJ1N1cGVyU29jaWVkYWRlcydcIlxyXG4gICAgICAgICAgICBbdjJdPVwic3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudFByb2Nlc29zMiA/PyAwXCIgW3RpdGxlVjNdPVwiJ1Byb2N1cmFkdXJpYSdcIlxyXG4gICAgICAgICAgICBbdjNdPVwic3Vic2NyaXBjaW9uRGV0YWxsZT8uY2FudFByb2Nlc29zMyA/PyAwXCI+XHJcbiAgICAgICAgICA8L2l1cy1wcm9ncmVzcy1iYXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY291bnRlciB0eC1zbWFsbFwiPlxyXG4gICAgICAgICAgICA8aXVzLWljb24teHMgaWNvbk5hbWU9XCJpY29uLXN0b3JhZ2Utc2V0XCIgY2xhc3M9XCJpY29uLXN0b3JhZ2Utc2V0XCI+PC9pdXMtaWNvbi14cz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgc3Vic2NyaXBjaW9uRGV0YWxsZT8uYXNpZ25hZG9zID8/IDAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvdW50ZXIgdHgtc21hbGxcIj5cclxuICAgICAgICAgICAgPGl1cy1pY29uLXhzIGljb25OYW1lPVwiaWNvbi1zdG9yYWdlLXBsdXNcIiBjbGFzcz1cImljb24tc3RvcmFnZS1wbHVzXCI+PC9pdXMtaWNvbi14cz5cclxuICAgICAgICAgICAgPHNwYW4+e3tcclxuICAgICAgICAgICAgICBzdWJzY3JpcGNpb25EZXRhbGxlPy5jYW50QXNpZ25hZGFEaXNwb25pYmxlID8/IDBcclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgICAgQGlmIChkZXRhbGxlc0NvbnN1bW8pIHtcclxuICAgICAgQGZvciAoZGV0YWlsIG9mIGRldGFsbGVzQ29uc3VtbzsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmYtcGxhblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctcGxhbi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXBsYW4tMVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LXNtYWxsIHR4LXRpcG8tcGxhblwiPnt7XHJcbiAgICAgICAgICAgICAgZGV0YWlsLnRpcG9TZXJ2aWNpb1xyXG4gICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtcm93LTFcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWJhc2UgdHgtbmFtZS1wbGFuXCI+UG9yIGNvbnN1bW88L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGl1cy1pY29uLW1kIGljb25OYW1lPVwiaWNvbi1oZWxwXCIgY2xhc3M9XCJpY29uLWhlbHBcIj48L2l1cy1pY29uLW1kPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0yIHR4LXNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LXJvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWNvbnRhZG9yLTFcIj5Db25zdW1vIGVzdGUgbWVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eC1jb250YWRvci0yXCI+e3tcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsLmNhbnRDb25zdW1pZGFcclxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInR4LWJhc2UgdHgtZXN0YWRvLXBsYW5cIj57e1xyXG4gICAgICAgICAgICAgIGRldGFpbC5lc3RhZG9cclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1kaXNjb3Zlci10dW5lXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYoaGFzTXVsdGlwbGVTZXJ2aWNlcykge1xyXG4gICAgPGl1cy1idXR0b24tc3RhbmRhcmQtdGVydGlhcnkgY2xhc3M9XCJidG4tbGlzdFwiIFtpY29uTmFtZV09XCJcclxuICAgICAgICAgIHNob3dNb3JlID8gJ2ljb24ta2V5Ym9hcmQtYXJyb3ctdXAnIDogJ2ljb24ta2V5Ym9hcmQtYXJyb3ctZG93bidcclxuICAgICAgICBcIiAoYnV0dG9uQ2xpY2tlZCk9XCJjbGlja1Nob3dNb3JlKClcIj5cclxuICAgICAge3sgc2hvd01vcmUgPyBcIk1vc3RyYXIgbWVub3NcIiA6IFwiTW9zdHJhciBtw6FzXCIgfX1cclxuICAgIDwvaXVzLWJ1dHRvbi1zdGFuZGFyZC10ZXJ0aWFyeT5cclxuICAgIH1cclxuICAgIDxpdXMtc2ltcGxlLWRpdmlkZXI+PC9pdXMtc2ltcGxlLWRpdmlkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3RuLWl0ZW1zXCI+XHJcbiAgICAgIEBpZiAoc2hvd1VzdWFyaW9zR3J1cG9zKSB7XHJcbiAgICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWdyb3Vwc1wiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tVc3Vhcmlvc1JvbGVzKClcIj5Vc3VhcmlvcyB5IHJvbGVzPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0NvbmZpZ3VyYWNpb25DdWVudGEpIHtcclxuICAgICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tYnVpbGRcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQ29uZmlndXJhY2lvbigpXCI+Q29uZmlndXJhY2nDs24gZGUgbGFcclxuICAgICAgICAgIGN1ZW50YTwvaXVzLW1lbnUtaXRlbT5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dQYWdvc0ZhY3R1cmFjaW9uKSB7XHJcbiAgICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLWZpbmFuY2UtY2hpcFwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tQYWdvcygpXCI+UGFnb3MgeSBmYWN0dXJhY2nDs248L2l1cy1tZW51LWl0ZW0+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93U3Vic2NyaXBjaW9uZXNTZXJ2aWNpb3MpIHtcclxuICAgICAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tZW50ZXJwcmlzZVwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tTdWJzU2VydmljaW9zKClcIj5TdXNjcmlwY2lvbmVzIHlcclxuICAgICAgICAgIHNlcnZpY2lvczwvaXVzLW1lbnUtaXRlbT5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dSZWZlcmlyKSB7XHJcbiAgICAgICAgPGl1cy1tZW51LWl0ZW0gaWNvbk5hbWU9XCJpY29uLXN0cmVhbVwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tSZWZlcmlyKClcIj5SZWZlcmlyIHNlcnZpY2lvPC9pdXMtbWVudS1pdGVtPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aXVzLXNpbXBsZS1kaXZpZGVyPjwvaXVzLXNpbXBsZS1kaXZpZGVyPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJvdHRvbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInR4LXJvdy0xIHR4LXJvbFwiPkNhbWJpYXIgYTwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1saXN0XCI+XHJcbiAgICAgICAgQGZvciAoYWNjb3VudCBvZiBhY2NvdW50TGlzdDsgdHJhY2sgYWNjb3VudDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICA8aXVzLWJ1dHRvbi1hY2NvdW50cyAoYWNjb3VudFNlbGVjdGVkKT1cIm9uQ2xpY2tBY2NvdW50KGFjY291bnQpXCIgKG9uUHJlc3NlZFByZWRldGVybWluYWRvKT1cIlxyXG4gICAgICAgICAgICAgICAgY2xpY2tBY2NvdW50UHJlZGV0ZXJtaW5hZGEuZW1pdChhY2NvdW50KVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgLFxyXG4gICAgICAgICAgICAgIChvblByZXNzZWRFZGl0YXIpPVwiY2xpY2tFZGl0QWNjb3VudC5lbWl0KGFjY291bnQpXCJcclxuICAgICAgICAgICAgICAsXHJcbiAgICAgICAgICAgICAgKG9uUHJlc3NlZERlc3ZpbmN1bGFyKT1cImNsaWNrRGVzdmluY3VsYXJBY2NvdW50LmVtaXQoYWNjb3VudClcIlxyXG4gICAgICAgICAgICAgIFthY2NvdW50XT1cImFjY291bnRcIlxyXG4gICAgICAgICAgICAgIFtzaG93T3B0aW9uc0ZsYWddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9pdXMtYnV0dG9uLWFjY291bnRzPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxpdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5IFtpY29uTmFtZV09XCInaWNvbi1hZGQnXCIgKGJ1dHRvbkNsaWNrZWQpPVwiYWRkQWNjb3VudCgpXCI+QWdyZWdhclxyXG4gICAgICAgICAgICAgICAgbnVldmEgY3VlbnRhPC9pdXMtYnV0dG9uLXN0YW5kYXJkLXRlcnRpYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY3RuLWl0ZW1zIG1ndC04XCI+XHJcbiAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cInt7XHJcbiAgICAgICAgIXNob3dGb3JtU3dpdGNoQWNjb3VudCA/ICdpY29uLWNhc2VzJyA6ICdpY29uLWFycm93LWxlZnQtYWx0J1xyXG4gICAgICB9fVwiIChidXR0b25DbGlja2VkKT1cIm9uQ2xpY2tDYW1iaWFyQ3VlbnRhKClcIj57e1xyXG4gICAgICAhc2hvd0Zvcm1Td2l0Y2hBY2NvdW50XHJcbiAgICAgID8gXCJDYW1iaWFyIGRlIGN1ZW50YVwiXHJcbiAgICAgIDogXCJWb2x2ZXIgYWwgbWVudSBkZSB1c3VhcmlvXCJcclxuICAgICAgfX08L2l1cy1tZW51LWl0ZW0+XHJcbiAgICA8aXVzLW1lbnUtaXRlbSBpY29uTmFtZT1cImljb24tZXhpdC10by1hcHBcIiAoYnV0dG9uQ2xpY2tlZCk9XCJvbkNsaWNrQ2VycmFyU2VzaW9uKClcIj5DZXJyYXIgc2VzacOzbjwvaXVzLW1lbnUtaXRlbT5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19