general-library-union 3.3.71 → 3.3.72
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/README.md +0 -0
- package/esm2022/public-api.mjs +4 -1
- package/esm2022/src/app/core/componentes/filtro-general/filtro-general.component.mjs +31 -13
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +11 -17
- package/esm2022/src/app/core/componentes/inicio-component/inicio-component.component.mjs +3 -3
- package/esm2022/src/app/core/componentes/menu/menu.component.mjs +3 -3
- package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +4 -3
- package/esm2022/src/app/core/componentes/template-tabla-vacia/template-tabla-vacia.component.mjs +21 -0
- package/esm2022/src/app/core/servicios/auth.service.mjs +2 -1
- package/esm2022/src/app/core/servicios/click-posicion.service.mjs +20 -0
- package/esm2022/src/app/core/servicios/data-exporter-table.utils.mjs +2 -2
- package/esm2022/src/app/core/servicios/toast.service.mjs +2 -2
- package/esm2022/src/app/core/servicios/utils.service.mjs +45 -19
- package/esm2022/src/app/layout/app.breadcrumb.component.mjs +5 -5
- package/esm2022/src/app/layout/app.layout.component.mjs +3 -4
- package/esm2022/src/app/layout/app.menu.component.mjs +1 -1
- package/esm2022/src/app/layout/app.menuitem.component.mjs +72 -13
- package/esm2022/src/app/layout/app.topbar.component.mjs +19 -22
- package/esm2022/src/app/publico/pages/login/login.page.mjs +5 -3
- package/esm2022/src/app/publico/pages/not-found/not-found.page.mjs +3 -3
- package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +4 -3
- package/esm2022/src/app/publico/pages/timeout/timeout.page.mjs +3 -3
- package/esm2022/src/app/seguridad/modelos/CorreoOrgEmpModModel.mjs +9 -0
- package/esm2022/src/app/seguridad/modelos/RespuestaModel.mjs +1 -1
- package/esm2022/src/app/seguridad/modelos/ServidorCorreoModel.mjs +1 -1
- package/esm2022/src/app/seguridad/modelos/TareasModel.mjs +2 -1
- package/esm2022/src/app/shared/componentes/input-helper-seleccion-plantilla/input-helper-seleccion-plantilla.component.mjs +3 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +30 -31
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +32 -5
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +8 -6
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +13 -3
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +5 -4
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +3 -2
- package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +5 -4
- package/esm2022/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +19 -8
- package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +4 -3
- package/esm2022/src/app/webcommon/services/fechaUtils.service.mjs +6 -1
- package/esm2022/src/environments/environment.mjs +2 -3
- package/fesm2022/general-library-union.mjs +413 -454
- package/fesm2022/general-library-union.mjs.map +1 -1
- package/package.json +5 -5
- package/public-api.d.ts +3 -0
- package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +3 -1
- package/src/app/core/componentes/template-tabla-vacia/template-tabla-vacia.component.d.ts +9 -0
- package/src/app/core/servicios/click-posicion.service.d.ts +11 -0
- package/src/app/core/servicios/utils.service.d.ts +4 -1
- package/src/app/layout/app.menuitem.component.d.ts +2 -4
- package/src/app/layout/app.topbar.component.d.ts +2 -3
- package/src/app/seguridad/modelos/CorreoOrgEmpModModel.d.ts +8 -0
- package/src/app/seguridad/modelos/ServidorCorreoModel.d.ts +15 -15
- package/src/app/seguridad/modelos/TareasModel.d.ts +1 -0
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +3 -1
- package/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.d.ts +1 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +3 -0
- package/src/app/webcommon/services/fechaUtils.service.d.ts +1 -0
- package/src/assets/demo/avatar-1.png +0 -0
- package/src/assets/demo/customers-large.json +0 -0
- package/src/assets/demo/data/chat.json +0 -0
- package/src/assets/demo/data/countries.json +0 -0
- package/src/assets/demo/data/customers-large.json +0 -0
- package/src/assets/demo/data/customers-medium.json +0 -0
- package/src/assets/demo/data/customers-small.json +0 -0
- package/src/assets/demo/data/file-management.json +0 -0
- package/src/assets/demo/data/files-lazy.json +0 -0
- package/src/assets/demo/data/files.json +0 -0
- package/src/assets/demo/data/filesystem-lazy.json +0 -0
- package/src/assets/demo/data/filesystem.json +0 -0
- package/src/assets/demo/data/icons.json +0 -0
- package/src/assets/demo/data/kanban.json +0 -0
- package/src/assets/demo/data/mail.json +0 -0
- package/src/assets/demo/data/members.json +0 -0
- package/src/assets/demo/data/photos.json +0 -0
- package/src/assets/demo/data/products-mixed.json +0 -0
- package/src/assets/demo/data/products-orders-small.json +0 -0
- package/src/assets/demo/data/products-orders.json +0 -0
- package/src/assets/demo/data/products-small.json +0 -0
- package/src/assets/demo/data/products.json +0 -0
- package/src/assets/demo/data/scheduleevents.json +0 -0
- package/src/assets/demo/data/tasks.json +0 -0
- package/src/assets/demo/images/avatar/activity-1.png +0 -0
- package/src/assets/demo/images/avatar/activity-2.png +0 -0
- package/src/assets/demo/images/avatar/activity-3.png +0 -0
- package/src/assets/demo/images/avatar/amyelsner.png +0 -0
- package/src/assets/demo/images/avatar/annafali.png +0 -0
- package/src/assets/demo/images/avatar/asiyajavayant.png +0 -0
- package/src/assets/demo/images/avatar/avatar-1.png +0 -0
- package/src/assets/demo/images/avatar/avatar-10.png +0 -0
- package/src/assets/demo/images/avatar/avatar-11.png +0 -0
- package/src/assets/demo/images/avatar/avatar-12.png +0 -0
- package/src/assets/demo/images/avatar/avatar-13.png +0 -0
- package/src/assets/demo/images/avatar/avatar-14.png +0 -0
- package/src/assets/demo/images/avatar/avatar-15.png +0 -0
- package/src/assets/demo/images/avatar/avatar-16.png +0 -0
- package/src/assets/demo/images/avatar/avatar-2.png +0 -0
- package/src/assets/demo/images/avatar/avatar-3.png +0 -0
- package/src/assets/demo/images/avatar/avatar-4.png +0 -0
- package/src/assets/demo/images/avatar/avatar-5.png +0 -0
- package/src/assets/demo/images/avatar/avatar-6.png +0 -0
- package/src/assets/demo/images/avatar/avatar-7.png +0 -0
- package/src/assets/demo/images/avatar/avatar-8.png +0 -0
- package/src/assets/demo/images/avatar/avatar-9.png +0 -0
- package/src/assets/demo/images/avatar/bernardodominic.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-1.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-10.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-10@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-11.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-11@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-12.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-12@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-1@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-2.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-2@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-3.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-3@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-4.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-4@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-5.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-5@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-6.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-6@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-7.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-7@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-8.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-8@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-9.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-f-9@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-1.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-10.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-10@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-11.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-11@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-12.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-12@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-1@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-2.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-2@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-3.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-3@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-4.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-4@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-5.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-5@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-6.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-6@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-7-1.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-7.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-7@2x-1.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-7@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-8.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-8@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-9.png +0 -0
- package/src/assets/demo/images/avatar/circle/avatar-m-9@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-1.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-1@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-2.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-2@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-3.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-f-3@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-1.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-1@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-2.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-2@2x.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-3.png +0 -0
- package/src/assets/demo/images/avatar/circle-big/avatar-m-3@2x.png +0 -0
- package/src/assets/demo/images/avatar/elwinsharvill.png +0 -0
- package/src/assets/demo/images/avatar/ionibowcher.png +0 -0
- package/src/assets/demo/images/avatar/ivanmagalhaes.png +0 -0
- package/src/assets/demo/images/avatar/onyamalimba.png +0 -0
- package/src/assets/demo/images/avatar/profile.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-f-1.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-f-1@2x.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-f-2.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-f-2@2x.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-m-1.jpg +0 -0
- package/src/assets/demo/images/avatar/square/avatar-m-1@2x.jpg +0 -0
- package/src/assets/demo/images/avatar/stephenshaw.png +0 -0
- package/src/assets/demo/images/avatar/xuxuefeng.png +0 -0
- package/src/assets/demo/images/blocks/about/about-1.png +0 -0
- package/src/assets/demo/images/blocks/ad/icon-blocks.svg +0 -0
- package/src/assets/demo/images/blocks/hero/hero-1.png +0 -0
- package/src/assets/demo/images/blocks/logos/hyper.svg +0 -0
- package/src/assets/demo/images/blocks/logos/visa.png +0 -0
- package/src/assets/demo/images/blocks/team/team-1.png +0 -0
- package/src/assets/demo/images/blocks/team/team-2.png +0 -0
- package/src/assets/demo/images/blocks/team/team-3.png +0 -0
- package/src/assets/demo/images/blocks/team/team-4.png +0 -0
- package/src/assets/demo/images/blog/blog-1.png +0 -0
- package/src/assets/demo/images/blog/blog-2.png +0 -0
- package/src/assets/demo/images/blog/blog-3.png +0 -0
- package/src/assets/demo/images/blog/blog-4.png +0 -0
- package/src/assets/demo/images/blog/blog-5.png +0 -0
- package/src/assets/demo/images/blog/blog-6.png +0 -0
- package/src/assets/demo/images/blog/blogdetail.png +0 -0
- package/src/assets/demo/images/contact/map-dark.svg +0 -0
- package/src/assets/demo/images/contact/map-light.svg +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-1.png +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-2.png +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-3.png +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-4.png +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-5.png +0 -0
- package/src/assets/demo/images/ecommerce/order-history/orderhistory-6.png +0 -0
- package/src/assets/demo/images/ecommerce/ordersummary/order-summary-1-1.png +0 -0
- package/src/assets/demo/images/ecommerce/ordersummary/order-summary-1-2.png +0 -0
- package/src/assets/demo/images/ecommerce/ordersummary/order-summary-2-1.png +0 -0
- package/src/assets/demo/images/ecommerce/ordersummary/visa.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-2-1.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-2-2.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-2-3.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-2-4.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-1.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-2.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-3.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-4.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-5.png +0 -0
- package/src/assets/demo/images/ecommerce/product-list/product-list-4-6.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-1-1.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-1-2.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-1-3.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-2-1.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-2-2.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-2-3.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-2-4.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-3-1.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-3-2.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-3-3.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-3-4.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-4-1.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-4-2.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-overview-4-3.png +0 -0
- package/src/assets/demo/images/ecommerce/productoverview/product-suggestion.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/flag.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-1.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-2.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-3.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-4.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-5.png +0 -0
- package/src/assets/demo/images/ecommerce/shop/shop-6.png +0 -0
- package/src/assets/demo/images/ecommerce/shopping-cart/shopping-cart-2-1.png +0 -0
- package/src/assets/demo/images/ecommerce/shopping-cart/shopping-cart-2-2.png +0 -0
- package/src/assets/demo/images/flag/flag_placeholder.png +0 -0
- package/src/assets/demo/images/galleria/galleria1.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria10.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria10s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria11.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria11s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria12.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria12s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria13.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria13s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria14.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria14s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria15.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria15s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria1s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria2.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria2s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria3.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria3s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria4.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria4s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria5.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria5s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria6.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria6s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria7.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria7s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria8.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria8s.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria9.jpg +0 -0
- package/src/assets/demo/images/galleria/galleria9s.jpg +0 -0
- package/src/assets/demo/images/landing/chat-dark.png +0 -0
- package/src/assets/demo/images/landing/chat-light.png +0 -0
- package/src/assets/demo/images/landing/dashboard-dark.png +0 -0
- package/src/assets/demo/images/landing/dashboard-light.png +0 -0
- package/src/assets/demo/images/landing/icon-accessibility.svg +0 -0
- package/src/assets/demo/images/landing/icon-community.svg +0 -0
- package/src/assets/demo/images/landing/icon-components.svg +0 -0
- package/src/assets/demo/images/landing/icon-mobile.svg +0 -0
- package/src/assets/demo/images/landing/icon-productivity.svg +0 -0
- package/src/assets/demo/images/landing/icon-support.svg +0 -0
- package/src/assets/demo/images/landing/icon-theme.svg +0 -0
- package/src/assets/demo/images/landing/icon-ts.svg +0 -0
- package/src/assets/demo/images/landing/kanban-dark.png +0 -0
- package/src/assets/demo/images/landing/kanban-light.png +0 -0
- package/src/assets/demo/images/landing/mail-dark.png +0 -0
- package/src/assets/demo/images/landing/mail-light.png +0 -0
- package/src/assets/demo/images/nature/nature1.jpg +0 -0
- package/src/assets/demo/images/nature/nature10.jpg +0 -0
- package/src/assets/demo/images/nature/nature11.jpg +0 -0
- package/src/assets/demo/images/nature/nature12.jpg +0 -0
- package/src/assets/demo/images/nature/nature2.jpg +0 -0
- package/src/assets/demo/images/nature/nature3.jpg +0 -0
- package/src/assets/demo/images/nature/nature4.jpg +0 -0
- package/src/assets/demo/images/nature/nature5.jpg +0 -0
- package/src/assets/demo/images/nature/nature6.jpg +0 -0
- package/src/assets/demo/images/nature/nature7.jpg +0 -0
- package/src/assets/demo/images/nature/nature8.jpg +0 -0
- package/src/assets/demo/images/nature/nature9.jpg +0 -0
- package/src/assets/demo/images/product/bamboo-watch.jpg +0 -0
- package/src/assets/demo/images/product/black-watch.jpg +0 -0
- package/src/assets/demo/images/product/blue-band.jpg +0 -0
- package/src/assets/demo/images/product/blue-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/bracelet.jpg +0 -0
- package/src/assets/demo/images/product/brown-purse.jpg +0 -0
- package/src/assets/demo/images/product/chakra-bracelet.jpg +0 -0
- package/src/assets/demo/images/product/galaxy-earrings.jpg +0 -0
- package/src/assets/demo/images/product/game-controller.jpg +0 -0
- package/src/assets/demo/images/product/gaming-set.jpg +0 -0
- package/src/assets/demo/images/product/gold-phone-case.jpg +0 -0
- package/src/assets/demo/images/product/green-earbuds.jpg +0 -0
- package/src/assets/demo/images/product/green-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/grey-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/headphones.jpg +0 -0
- package/src/assets/demo/images/product/light-green-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/lime-band.jpg +0 -0
- package/src/assets/demo/images/product/mini-speakers.jpg +0 -0
- package/src/assets/demo/images/product/painted-phone-case.jpg +0 -0
- package/src/assets/demo/images/product/pink-band.jpg +0 -0
- package/src/assets/demo/images/product/pink-purse.jpg +0 -0
- package/src/assets/demo/images/product/product-placeholder.svg +0 -0
- package/src/assets/demo/images/product/purple-band.jpg +0 -0
- package/src/assets/demo/images/product/purple-gemstone-necklace.jpg +0 -0
- package/src/assets/demo/images/product/purple-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/shoes.jpg +0 -0
- package/src/assets/demo/images/product/sneakers.jpg +0 -0
- package/src/assets/demo/images/product/teal-t-shirt.jpg +0 -0
- package/src/assets/demo/images/product/yellow-earbuds.jpg +0 -0
- package/src/assets/demo/images/product/yoga-mat.jpg +0 -0
- package/src/assets/demo/images/product/yoga-set.jpg +0 -0
- package/src/assets/demo/styles/badges.css +0 -0
- package/src/assets/demo/styles/badges.scss +0 -0
- package/src/assets/demo/styles/code.css +0 -0
- package/src/assets/demo/styles/code.scss +0 -0
- package/src/assets/demo/styles/flags/flags.css +0 -0
- package/src/assets/demo/styles/flags/flags_responsive.png +0 -0
- package/src/assets/glyphicons/css/boton-icon.css +0 -0
- package/src/assets/glyphicons/css/glyphicons-basic.css +0 -0
- package/src/assets/glyphicons/css/glyphicons-filetypes.css +0 -0
- package/src/assets/glyphicons/css/glyphicons-halflings.css +0 -0
- package/src/assets/glyphicons/css/glyphicons-social.css +0 -0
- package/src/assets/glyphicons/css/glyphicons.css +0 -0
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.eot +0 -0
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.svg +0 -0
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.ttf +0 -0
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.woff +0 -0
- package/src/assets/glyphicons/fonts/filetypes/glyphicons-filetypes-regular.woff2 +0 -0
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.eot +0 -0
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.svg +0 -0
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.ttf +0 -0
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.woff +0 -0
- package/src/assets/glyphicons/fonts/halflings/glyphicons-halflings-regular.woff2 +0 -0
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.eot +0 -0
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.svg +0 -0
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.ttf +0 -0
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.woff +0 -0
- package/src/assets/glyphicons/fonts/regular/glyphicons-regular.woff2 +0 -0
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.eot +0 -0
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.svg +0 -0
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.ttf +0 -0
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.woff +0 -0
- package/src/assets/glyphicons/fonts/social/glyphicons-social-regular.woff2 +0 -0
- package/src/assets/images/LogoUS.png +0 -0
- package/src/assets/images/Robot.png +0 -0
- package/src/assets/images/favicon.ico +0 -0
- package/src/assets/images/fdNoFound.png +0 -0
- package/src/assets/images/fd_timeOut.png +0 -0
- package/src/assets/images/imagen-principal-sam.png +0 -0
- package/src/assets/images/imagen-principal-samanta.png +0 -0
- package/src/assets/images/imagen-principal-sara.png +0 -0
- package/src/assets/images/imagen-principal-seguridad.png +0 -0
- package/src/assets/images/imagen_login.png +0 -0
- package/src/assets/images/logo-aps-descomprimido.png +0 -0
- package/src/assets/images/logo-aps.png +0 -0
- package/src/assets/images/logo-icono-aps.png +0 -0
- package/src/assets/images/logo-icono-sam.png +0 -0
- package/src/assets/images/logo-icono-samanta.png +0 -0
- package/src/assets/images/logo-icono-sara.png +0 -0
- package/src/assets/images/logo-icono-seguridad.png +0 -0
- package/src/assets/images/logo-sam-descomprimido.png +0 -0
- package/src/assets/images/logo-sam.png +0 -0
- package/src/assets/images/logo-samanta-descomprimido.png +0 -0
- package/src/assets/images/logo-samanta.png +0 -0
- package/src/assets/images/logo-sara-descomprimido.png +0 -0
- package/src/assets/images/logo-sara.png +0 -0
- package/src/assets/images/logo-seguridad-descomprimido.png +0 -0
- package/src/assets/images/logo-seguridad.png +0 -0
- package/src/assets/images/logo-union-simple.png +0 -0
- package/src/assets/images/logo-union-soluciones-logo.png +0 -0
- package/src/assets/images/logous-blanco.png +0 -0
- package/src/assets/images/modulos/icono-activos-fijos.png +0 -0
- package/src/assets/images/modulos/icono-administracion.png +0 -0
- package/src/assets/images/modulos/icono-compras.png +0 -0
- package/src/assets/images/modulos/icono-control.png +0 -0
- package/src/assets/images/modulos/icono-cotizacion.png +0 -0
- package/src/assets/images/modulos/icono-inventarios.png +0 -0
- package/src/assets/images/modulos/icono-presupuesto.png +0 -0
- package/src/assets/images/modulos/icono-produccion.png +0 -0
- package/src/assets/images/modulos/icono-requisicion.png +0 -0
- package/src/assets/images/navegador-chrome.png +0 -0
- package/src/assets/images/navegador-edge.png +0 -0
- package/src/assets/images/navegador-explorer.png +0 -0
- package/src/assets/images/navegador-firefox.png +0 -0
- package/src/assets/images/not-found-fondo.png +0 -0
- package/src/assets/images/not-found.png +0 -0
- package/src/assets/images/not-found.webp +0 -0
- package/src/assets/images/personaje.png +0 -0
- package/src/assets/images/robotZ.png +0 -0
- package/src/assets/images/temaClaro/no-info.webp +0 -0
- package/src/assets/images/temaOscuro/no-info.webp +0 -0
- package/src/assets/images/texto-union-soluciones.png +0 -0
- package/src/assets/images/time-out.webp +0 -0
- package/src/assets/images/timeout.png +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/src/assets/layout/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/src/assets/layout/images/401.svg +0 -0
- package/src/assets/layout/images/404-2x.png +0 -0
- package/src/assets/layout/images/dashboard/saas-card.png +0 -0
- package/src/assets/layout/images/doc/breadcrumb-doc.jpg +0 -0
- package/src/assets/layout/images/doc/inlinemenu-doc.jpg +0 -0
- package/src/assets/layout/images/doc/rightmenu-doc.jpg +0 -0
- package/src/assets/layout/images/doc/topbar-doc.jpg +0 -0
- package/src/assets/layout/images/extensions/asset-amex.svg +0 -0
- package/src/assets/layout/images/extensions/asset-mastercard.svg +0 -0
- package/src/assets/layout/images/extensions/asset-paypal.svg +0 -0
- package/src/assets/layout/images/extensions/asset-visa.svg +0 -0
- package/src/assets/layout/images/extensions/background@2x.jpg +0 -0
- package/src/assets/layout/images/extensions/flag-us@2x.png +0 -0
- package/src/assets/layout/images/extensions/help-header@2x.jpg +0 -0
- package/src/assets/layout/images/extensions/prime-logo.svg +0 -0
- package/src/assets/layout/images/favicon.png +0 -0
- package/src/assets/layout/images/footer-ultima-dark.svg +0 -0
- package/src/assets/layout/images/footer-ultima.svg +0 -0
- package/src/assets/layout/images/landing/collaboration-image.png +0 -0
- package/src/assets/layout/images/landing/easyfollow-image.png +0 -0
- package/src/assets/layout/images/landing/landing-ellipse.png +0 -0
- package/src/assets/layout/images/landing/landing-ellipse2.png +0 -0
- package/src/assets/layout/images/landing/landing-hero-image.jpg +0 -0
- package/src/assets/layout/images/landing/landing-logo1.png +0 -0
- package/src/assets/layout/images/landing/landing-logo2.png +0 -0
- package/src/assets/layout/images/landing/landing-logo3.png +0 -0
- package/src/assets/layout/images/landing/landing-logo4.png +0 -0
- package/src/assets/layout/images/landing/layer-0-opt.jpg +0 -0
- package/src/assets/layout/images/landing/layer-1-opt.png +0 -0
- package/src/assets/layout/images/landing/layer-2-opt.png +0 -0
- package/src/assets/layout/images/logo-ultima.svg +0 -0
- package/src/assets/layout/images/logo.png +0 -0
- package/src/assets/layout/images/logo2x.png +0 -0
- package/src/assets/layout/images/pages/404-bg.jpg +0 -0
- package/src/assets/layout/images/pages/404.png +0 -0
- package/src/assets/layout/images/pages/accessDenied-bg.jpg +0 -0
- package/src/assets/layout/images/pages/accessDenied.png +0 -0
- package/src/assets/layout/images/pages/error-bg.jpg +0 -0
- package/src/assets/layout/images/pages/error.png +0 -0
- package/src/assets/layout/images/pages/error2.png +0 -0
- package/src/assets/layout/images/pages/login-bg.jpg +0 -0
- package/src/assets/layout/images/vector_logo.png +0 -0
- package/src/assets/layout/images/widgets/asset-profile.png +0 -0
- package/src/assets/layout/images/widgets/feature-faq.svg +0 -0
- package/src/assets/layout/images/widgets/feature-onboarding.svg +0 -0
- package/src/assets/layout/images/widgets/feature-security.svg +0 -0
- package/src/assets/layout/images/widgets/image-blog.jpg +0 -0
- package/src/assets/layout/images/widgets/map.jpg +0 -0
- package/src/assets/layout/styles/layout/_animation.scss +0 -0
- package/src/assets/layout/styles/layout/_breadcrumb.scss +0 -0
- package/src/assets/layout/styles/layout/_config.scss +0 -0
- package/src/assets/layout/styles/layout/_content.scss +0 -0
- package/src/assets/layout/styles/layout/_fonts.scss +0 -0
- package/src/assets/layout/styles/layout/_footer.scss +0 -0
- package/src/assets/layout/styles/layout/_invoice.scss +0 -0
- package/src/assets/layout/styles/layout/_landing.scss +0 -0
- package/src/assets/layout/styles/layout/_main.scss +0 -0
- package/src/assets/layout/styles/layout/_megamenu.scss +0 -0
- package/src/assets/layout/styles/layout/_menuprofile.scss +0 -0
- package/src/assets/layout/styles/layout/_responsive.scss +0 -0
- package/src/assets/layout/styles/layout/_rightmenu.scss +0 -0
- package/src/assets/layout/styles/layout/_typography.scss +0 -0
- package/src/assets/layout/styles/layout/_utils.scss +0 -0
- package/src/assets/layout/styles/layout/layout.css +0 -0
- package/src/assets/layout/styles/layout/layout.scss +0 -0
- package/src/assets/layout/styles/layout/preloading.css +0 -0
- package/src/assets/layout/styles/layout/preloading.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_drawer.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_horizontal.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_reveal.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_slim.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_slim_plus.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/_sidebar_vertical.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_bluegrey.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_brown.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_cyan.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_dark.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeporange.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_deeppurple.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_green.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_indigo.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_light.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_pink.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_purple.scss +0 -0
- package/src/assets/layout/styles/layout/sidebar/themes/_menu_teal.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/_topbar.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/_topbar_main.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_amber.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_blue.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_bluegrey.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_brown.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_cyan.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_dark.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeporange.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_deeppurple.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_green.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_grey.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_indigo.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightblue.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lightgreen.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_lime.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_orange.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_pink.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_purple.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_teal.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_white.scss +0 -0
- package/src/assets/layout/styles/layout/topbar/themes/_topbar_yellow.scss +0 -0
- package/src/assets/layout/styles/theme/_compact.scss +0 -0
- package/src/assets/layout/styles/theme/designer/_colors.scss +0 -0
- package/src/assets/layout/styles/theme/designer/_common.scss +0 -0
- package/src/assets/layout/styles/theme/designer/_components.scss +0 -0
- package/src/assets/layout/styles/theme/designer/_mixins.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/button/_button.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/button/_speeddial.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/button/_splitbutton.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_carousel.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_datatable.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_dataview.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_filter.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_fullcalendar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_orderlist.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_organizationchart.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_paginator.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_picklist.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_timeline.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_tree.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_treetable.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/data/_virtualscroller.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/file/_fileupload.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_autocomplete.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_calendar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_cascadeselect.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_checkbox.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_chips.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_colorpicker.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_dropdown.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_editor.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_inputgroup.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_inputmask.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_inputnumber.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_inputswitch.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_inputtext.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_listbox.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_multiselect.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_password.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_radiobutton.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_rating.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_selectbutton.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_slider.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_togglebutton.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/input/_treeselect.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_breadcrumb.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_contextmenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_dock.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_megamenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_menu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_menubar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_panelmenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_slidemenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_steps.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_tabmenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/menu/_tieredmenu.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/messages/_inlinemessage.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/messages/_message.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/messages/_toast.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_avatar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_badge.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_blockui.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_chip.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_inplace.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_progressbar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_scrolltop.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_skeleton.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_tag.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/misc/_terminal.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/multimedia/_galleria.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/multimedia/_image.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/overlay/_confirmpopup.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/overlay/_dialog.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/overlay/_overlaypanel.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/overlay/_sidebar.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/overlay/_tooltip.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_accordion.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_card.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_divider.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_fieldset.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_panel.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_scrollpanel.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_splitter.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_tabview.scss +0 -0
- package/src/assets/layout/styles/theme/designer/components/panel/_toolbar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_accordion.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_autocomplete.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_breadcrumb.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_button.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_calendar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_carousel.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_cascadeselect.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_checkbox.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_chips.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_datatable.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_dropdown.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_fieldset.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_float_label.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_fullcalendar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_galleria.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_input.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_inputgroup.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_inputmask.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_inputnumber.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_inputswitch.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_listbox.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_megamenu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_menu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_menubar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_mixins.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_multiselect.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_orderlist.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_overlaypanel.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_paginator.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_panel.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_panelmenu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_picklist.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_progressbar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_radiobutton.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_rating.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_selectbutton.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_slidemenu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_slider.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_steps.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_tabmenu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_tabview.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_tieredmenu.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_timeline.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_togglebutton.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_toolbar.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_tooltip.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_tree.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_treeselect.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_treetable.scss +0 -0
- package/src/assets/layout/styles/theme/extensions/_vendor_extensions.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/_variables.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/amber/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/amber/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/blue/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/blue/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/bluegrey/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/brown/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/brown/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/cyan/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/cyan/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/deeporange/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/deeppurple/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/green/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/green/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/indigo/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/indigo/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lightblue/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lightgreen/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lime/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/lime/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/orange/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/orange/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/pink/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/pink/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/purple/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/purple/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/teal/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/teal/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-dark/yellow/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-dark/yellow/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/_variables.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/amber/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/amber/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/blue/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/blue/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/bluegrey/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/brown/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/brown/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/cyan/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/cyan/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/deeporange/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/deeporange/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/deeppurple/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/green/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/green/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/indigo/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/indigo/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/lightblue/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/lightblue/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/lightgreen/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/lime/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/lime/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/orange/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/orange/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/pink/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/pink/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/purple/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/purple/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/teal/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/teal/theme.scss +0 -0
- package/src/assets/layout/styles/theme/theme-light/yellow/theme.css +0 -0
- package/src/assets/layout/styles/theme/theme-light/yellow/theme.scss +0 -0
- package/src/assets/theme/uniondinamic/layout-light.css +0 -0
- package/src/assets/theme/uniondinamic/theme-light.css +0 -0
- package/src/styles/primeflex/primeflex.scss +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-300.woff +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-300.woff2 +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-500.woff +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-500.woff2 +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-600.woff +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-600.woff2 +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-700.woff +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-700.woff2 +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-regular.woff +0 -0
- package/src/styles/primeng/layout/fonts/poppins-v20-latin-regular.woff2 +0 -0
- package/src/styles/primeng/layout/layout-dark.scss +0 -0
- package/src/styles/primeng/layout/layout-light.scss +0 -0
- package/src/styles/primeng/sass/_fonts.scss +0 -0
- package/src/styles/primeng/sass/layout/_animation.scss +0 -0
- package/src/styles/primeng/sass/layout/_breadcrumb.scss +0 -0
- package/src/styles/primeng/sass/layout/_config.scss +0 -0
- package/src/styles/primeng/sass/layout/_dashboard.scss +0 -0
- package/src/styles/primeng/sass/layout/_footer.scss +0 -0
- package/src/styles/primeng/sass/layout/_help.scss +0 -0
- package/src/styles/primeng/sass/layout/_invoice.scss +0 -0
- package/src/styles/primeng/sass/layout/_landing.scss +0 -0
- package/src/styles/primeng/sass/layout/_loader.scss +0 -0
- package/src/styles/primeng/sass/layout/_main.scss +0 -0
- package/src/styles/primeng/sass/layout/_megamenu.scss +0 -0
- package/src/styles/primeng/sass/layout/_mixins.scss +0 -0
- package/src/styles/primeng/sass/layout/_pages.scss +0 -0
- package/src/styles/primeng/sass/layout/_rightmenu.scss +0 -0
- package/src/styles/primeng/sass/layout/_rtl.scss +0 -0
- package/src/styles/primeng/sass/layout/_typography.scss +0 -0
- package/src/styles/primeng/sass/layout/_utils.scss +0 -0
- package/src/styles/primeng/sass/layout/_widgets.scss +0 -0
- package/src/styles/primeng/sass/layout/_wizard.scss +0 -0
- package/src/styles/primeng/sass/layout/core/_layout.scss +0 -0
- package/src/styles/primeng/sass/layout/core/_layout_dark.scss +0 -0
- package/src/styles/primeng/sass/layout/core/_layout_light.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_inline_menu.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_common.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_exports.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_horizontal.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_overlay.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_responsive.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_slim.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_static.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_menu_theme.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/_rtl_menu.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_bluegrey.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_brown.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_cyan.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_dark.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_deeporange.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_deeppurple.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_green.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_indigo.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_light.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_pink.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_purple.scss +0 -0
- package/src/styles/primeng/sass/layout/menu/themes/_menu_teal.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_rtl_topbar.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_topbar.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_topbar_common.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_topbar_exports.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_topbar_responsive.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/_topbar_theme.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_amber.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_blue.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_bluegrey.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_brown.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_custom.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_cyan.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_dark.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeporange.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_deeppurple.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_green.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_grey.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_indigo.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightblue.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lightgreen.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_lime.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_orange.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_pink.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_purple.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_teal.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_white.scss +0 -0
- package/src/styles/primeng/sass/layout/topbar/themes/_topbar_yellow.scss +0 -0
- package/src/styles/primeng/sass/overrides/_layout_styles.scss +0 -0
- package/src/styles/primeng/sass/overrides/_layout_variables.scss +0 -0
- package/src/styles/primeng/sass/overrides/_theme_styles.scss +139 -81
- package/src/styles/primeng/sass/overrides/_theme_styles_dark.scss +240 -97
- package/src/styles/primeng/sass/overrides/_theme_variables.scss +0 -0
- package/src/styles/primeng/sass/theme/_compact.scss +0 -0
- package/src/styles/primeng/sass/theme/_theme_dark.scss +0 -0
- package/src/styles/primeng/sass/theme/_theme_light.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/_colors.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/_common.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/_components.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/_mixins.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/button/_button.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/button/_speeddial.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/button/_splitbutton.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_carousel.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_datatable.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_dataview.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_filter.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_fullcalendar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_orderlist.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_organizationchart.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_paginator.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_picklist.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_timeline.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_tree.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_treetable.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/data/_virtualscroller.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/file/_fileupload.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_autocomplete.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_calendar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_cascadeselect.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_checkbox.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_chips.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_colorpicker.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_dropdown.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_editor.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_inputgroup.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_inputmask.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_inputnumber.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_inputswitch.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_inputtext.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_listbox.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_multiselect.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_password.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_radiobutton.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_rating.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_selectbutton.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_slider.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_togglebutton.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/input/_treeselect.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_breadcrumb.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_contextmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_dock.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_megamenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_menu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_menubar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_panelmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_slidemenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_steps.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_tabmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/menu/_tieredmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/messages/_inlinemessage.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/messages/_message.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/messages/_toast.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_avatar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_badge.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_blockui.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_chip.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_inplace.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_progressbar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_scrolltop.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_skeleton.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_tag.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/misc/_terminal.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/multimedia/_galleria.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/multimedia/_image.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/overlay/_confirmpopup.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/overlay/_dialog.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/overlay/_overlaypanel.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/overlay/_sidebar.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/overlay/_tooltip.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_accordion.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_card.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_divider.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_fieldset.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_panel.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_scrollpanel.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_splitter.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_tabview.scss +0 -0
- package/src/styles/primeng/sass/theme/designer/components/panel/_toolbar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_accordion.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_autocomplete.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_breadcrumb.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_button.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_calendar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_carousel.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_cascadeselect.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_checkbox.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_chips.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_datatable.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_dropdown.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_fieldset.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_float_label.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_fullcalendar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_galleria.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_input.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_inputgroup.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_inputmask.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_inputnumber.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_inputswitch.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_listbox.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_megamenu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_menu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_menubar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_mixins.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_multiselect.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_orderlist.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_overlaypanel.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_paginator.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_panel.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_panelmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_picklist.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_progressbar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_radiobutton.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_rating.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_selectbutton.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_slidemenu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_slider.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_steps.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_tabmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_tabview.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_tieredmenu.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_timeline.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_togglebutton.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_toolbar.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_tooltip.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_tree.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_treeselect.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_treetable.scss +0 -0
- package/src/styles/primeng/sass/theme/extensions/_vendor_extensions.scss +0 -0
- package/src/styles/primeng/sass/variables/layout/_layout_common.scss +0 -0
- package/src/styles/primeng/sass/variables/layout/_layout_dark.scss +0 -0
- package/src/styles/primeng/sass/variables/layout/_layout_light.scss +0 -0
- package/src/styles/primeng/sass/variables/theme/_theme_dark.scss +0 -0
- package/src/styles/primeng/sass/variables/theme/_theme_light.scss +0 -0
- package/src/styles/primeng/theme/theme-dark.scss +0 -0
- package/src/styles/primeng/theme/theme-light.scss +0 -0
- package/src/styles/sass/_mixins.scss +0 -0
- package/src/styles/sass/_variables.scss +0 -0
- package/src/styles/sass/mixins/_breakpoints.scss +0 -0
- package/src/styles/sass/mixins/_colors.scss +0 -0
- package/src/styles/sass/pages/_general.scss +0 -0
- package/src/styles/sass/pages/_listado.scss +0 -0
- package/src/styles-dark.scss +0 -0
- package/src/styles.scss +1 -1
- package/esm2022/src/app/core/componentes/tabs-multiples/tabs-multiples.component.mjs +0 -182
- package/esm2022/src/app/core/servicios/tabs-multiples.service.mjs +0 -62
- package/src/app/core/componentes/tabs-multiples/tabs-multiples.component.d.ts +0 -44
- package/src/app/core/servicios/tabs-multiples.service.d.ts +0 -19
|
@@ -6,7 +6,7 @@ import { ReporteFuenteModel } from '../../../seguridad/modelos/ReporteFuenteMode
|
|
|
6
6
|
import { DialogModule } from 'primeng/dialog';
|
|
7
7
|
import { ConfirmPopupModule } from 'primeng/confirmpopup';
|
|
8
8
|
import { AccordionModule } from 'primeng/accordion';
|
|
9
|
-
import {
|
|
9
|
+
import { TemplateTablaVaciaComponent } from '../../../core/componentes/template-tabla-vacia/template-tabla-vacia.component';
|
|
10
10
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
11
11
|
import { FieldsetModule } from 'primeng/fieldset';
|
|
12
12
|
import { InputNumberModule } from 'primeng/inputnumber';
|
|
@@ -18,6 +18,8 @@ import { PopupSentenciaComponent } from '../popup-sentencia/popup-sentencia.comp
|
|
|
18
18
|
import { FormsModule } from '@angular/forms';
|
|
19
19
|
import { FloatLabelModule } from 'primeng/floatlabel';
|
|
20
20
|
import { DataExporter } from '../../../core/servicios/data-exporter-table.utils';
|
|
21
|
+
import { TooltipModule } from 'primeng/tooltip';
|
|
22
|
+
import { TableModule } from 'primeng/table';
|
|
21
23
|
import * as i0 from "@angular/core";
|
|
22
24
|
import * as i1 from "../../../shared/servicios/general.service";
|
|
23
25
|
import * as i2 from "../../services/ejecucionreporte.service";
|
|
@@ -46,6 +48,7 @@ import * as i24 from "primeng/button";
|
|
|
46
48
|
import * as i25 from "primeng/radiobutton";
|
|
47
49
|
import * as i26 from "@angular/forms";
|
|
48
50
|
import * as i27 from "primeng/floatlabel";
|
|
51
|
+
import * as i28 from "primeng/tooltip";
|
|
49
52
|
export class PopupReporteComponent {
|
|
50
53
|
generalService;
|
|
51
54
|
ejecucionReporteService;
|
|
@@ -243,6 +246,7 @@ export class PopupReporteComponent {
|
|
|
243
246
|
//pte proceso externo
|
|
244
247
|
}
|
|
245
248
|
}
|
|
249
|
+
this.utilsService.resizeWindowIFrame();
|
|
246
250
|
}
|
|
247
251
|
cambioValorLista(event, parametro) {
|
|
248
252
|
if (event.value) {
|
|
@@ -359,6 +363,7 @@ export class PopupReporteComponent {
|
|
|
359
363
|
tipo: 'S'
|
|
360
364
|
})).subscribe(data => {
|
|
361
365
|
this.listadoArchivoSoporte = data;
|
|
366
|
+
this.utilsService.resizeWindowIFrame();
|
|
362
367
|
});
|
|
363
368
|
}
|
|
364
369
|
else {
|
|
@@ -459,6 +464,7 @@ export class PopupReporteComponent {
|
|
|
459
464
|
});
|
|
460
465
|
}
|
|
461
466
|
descargarReporteSinHilo() {
|
|
467
|
+
console.log('descargarReporteSinHilo');
|
|
462
468
|
let listaEntrada = [];
|
|
463
469
|
this.parametros.forEach(element => {
|
|
464
470
|
if (element.unionDTO.tipoDato == 'B' && element.unionDTO.tipo == 'D') {
|
|
@@ -469,7 +475,15 @@ export class PopupReporteComponent {
|
|
|
469
475
|
listaEntrada.push(element.unionDTO);
|
|
470
476
|
});
|
|
471
477
|
this.ejecucionReporteService.descargarReporte({
|
|
478
|
+
reporte: this.reporte,
|
|
479
|
+
parametros: listaEntrada,
|
|
480
|
+
tipoReporte: this.tipoReporte,
|
|
481
|
+
operacion: this.operacion,
|
|
482
|
+
correo: this.correo,
|
|
483
|
+
endpointGeneradorReportes: ''
|
|
484
|
+
}).subscribe({
|
|
472
485
|
next: data => {
|
|
486
|
+
console.log(data);
|
|
473
487
|
this.notificacionService.showInfo(data.mensaje);
|
|
474
488
|
const decodedData = atob(data.archivo);
|
|
475
489
|
const byteNumbers = new Array(decodedData.length);
|
|
@@ -490,9 +504,6 @@ export class PopupReporteComponent {
|
|
|
490
504
|
// Limpia la URL creada
|
|
491
505
|
URL.revokeObjectURL(url);
|
|
492
506
|
},
|
|
493
|
-
error: err => {
|
|
494
|
-
this.notificacionService.showError(JSON.stringify(err.error.mensajeEtiqueta));
|
|
495
|
-
}
|
|
496
507
|
});
|
|
497
508
|
}
|
|
498
509
|
generarTabla() {
|
|
@@ -528,7 +539,7 @@ export class PopupReporteComponent {
|
|
|
528
539
|
if (tipoArchivo === 'pdf') {
|
|
529
540
|
this.dataExporter.exportPdf(this.listaRegistro, this.exportColumns, this.nombreArchivo);
|
|
530
541
|
}
|
|
531
|
-
else if ('xls') {
|
|
542
|
+
else if (tipoArchivo === 'xls') {
|
|
532
543
|
this.dataExporter.exportExcelColumnas(this.listaRegistro, this.nombreArchivo, this.columnasExportExcel);
|
|
533
544
|
}
|
|
534
545
|
else if (tipoArchivo === 'csv') {
|
|
@@ -536,11 +547,11 @@ export class PopupReporteComponent {
|
|
|
536
547
|
}
|
|
537
548
|
}
|
|
538
549
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PopupReporteComponent, deps: [{ token: i1.GeneralService }, { token: i2.EjecucionReporteService }, { token: i3.ConfirmationService }, { token: i4.ToastService }, { token: i5.AuthService }, { token: i6.TranslateService }, { token: i7.CargarArchivosService }, { token: i8.UtilsService }, { token: i9.CargarControlFuncionalidadService }, { token: i10.EncriptadoBasicoService }, { token: i11.ReporteFuentePipe }, { token: i12.GeneralPipe }, { token: i7.CargarArchivosService }, { token: i13.DataExporter }, { token: i10.EncriptadoBasicoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
539
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: PopupReporteComponent, isStandalone: true, selector: "app-popup-reporte", inputs: { mostrar: "mostrar", aplicacion: "aplicacion", reporte: "reporte", entradasPuntoProceso: "entradasPuntoProceso" }, outputs: { regresar: "regresar" }, providers: [MessageService, ConfirmationService, DataExporter], ngImport: i0, template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i14.DatePipe, name: "date" }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i15.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i16.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i17.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex", "selectOnFocus", "headerAriaLevel"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i17.AccordionTab, selector: "p-accordionTab", inputs: ["id", "header", "headerStyle", "tabStyle", "contentStyle", "tabStyleClass", "headerStyleClass", "contentStyleClass", "disabled", "cache", "transitionOptions", "iconPos", "selected", "headerAriaLevel"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i18.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i18.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FieldsetModule }, { kind: "component", type: i19.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i20.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i21.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i22.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i23.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i24.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i25.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: PopupSentenciaComponent, selector: "app-popup-sentencia", inputs: ["reporte", "parametros", "mostrarPopup"], outputs: ["regresar"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i26.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i26.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i26.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i27.FloatLabel, selector: "p-floatLabel" }] });
|
|
550
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: PopupReporteComponent, isStandalone: true, selector: "app-popup-reporte", inputs: { mostrar: "mostrar", aplicacion: "aplicacion", reporte: "reporte", entradasPuntoProceso: "entradasPuntoProceso" }, outputs: { regresar: "regresar" }, providers: [MessageService, ConfirmationService, DataExporter], ngImport: i0, template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-2 mb-2\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mb-2 mt-2\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0 mb-2\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'listado' | translate}} {{'segundoplano' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"w-full min-h-100 max-h-150\"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\"> \n <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template> </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i14.DatePipe, name: "date" }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i15.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i16.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i17.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex", "selectOnFocus", "headerAriaLevel"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i17.AccordionTab, selector: "p-accordionTab", inputs: ["id", "header", "headerStyle", "tabStyle", "contentStyle", "tabStyleClass", "headerStyleClass", "contentStyleClass", "disabled", "cache", "transitionOptions", "iconPos", "selected", "headerAriaLevel"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i18.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i18.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FieldsetModule }, { kind: "component", type: i19.Fieldset, selector: "p-fieldset", inputs: ["legend", "toggleable", "collapsed", "style", "styleClass", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i20.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i21.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i22.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i23.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "directive", type: i24.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i25.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: PopupSentenciaComponent, selector: "app-popup-sentencia", inputs: ["reporte", "parametros", "mostrarPopup"], outputs: ["regresar"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i26.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i26.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i26.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i27.FloatLabel, selector: "p-floatLabel" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i28.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
|
|
540
551
|
}
|
|
541
552
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PopupReporteComponent, decorators: [{
|
|
542
553
|
type: Component,
|
|
543
|
-
args: [{ selector: 'app-popup-reporte', imports: [CommonModule, DialogModule, ConfirmPopupModule, AccordionModule, TableModule, TranslateModule, DatePipe, FieldsetModule, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, RadioButtonModule, PopupSentenciaComponent, FormsModule, FloatLabelModule], standalone: true, providers: [MessageService, ConfirmationService, DataExporter], template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-0\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mt-0\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'link_regresar' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"min-w-full p-inputtextarea p-inputtext p-component p-element \"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <p class=\"p-3 font-medium emptymessage\">\n {{'mensajetablavacia' | translate}}\n </p>\n </ng-template>\n </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"] }]
|
|
554
|
+
args: [{ selector: 'app-popup-reporte', imports: [CommonModule, DialogModule, ConfirmPopupModule, AccordionModule, TableModule, TemplateTablaVaciaComponent, TranslateModule, DatePipe, FieldsetModule, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, RadioButtonModule, PopupSentenciaComponent, FormsModule, FloatLabelModule, TooltipModule], standalone: true, providers: [MessageService, ConfirmationService, DataExporter], template: "<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupReporte' header=\"{{'reportesgenerales' | translate}}\" [(visible)]=\"mostrar\" (onShow)=\"mostrarPopup()\"\n [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n\n <div *ngIf=\"panel == 'entrada'\">\n <!--Segundo plano-->\n <p-accordion [multiple]=\"true\">\n <p-accordionTab [selected]=\"true\" [header]=\"'segundoplano' | translate\" *ngIf=\"listaSegundoPlano.length > 0\">\n <p-table [value]=\"listaSegundoPlano\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\"\n [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n [paginator]=\"paginator.totalRecords > paginator.rows\" (onRowSelect)=\"verSegundoPlano($event)\">\n <ng-template pTemplate=\"header\">\n\n <tr class=\"fondoTablaPincipal\">\n <th>{{'estado' | translate }} </th>\n <th>{{'fechainicial' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.nombreEstado}}</td>\n <td>{{entrada.inicia | date: 'dd/MM/yyyy h:mm a'}}</td>\n </tr>\n </ng-template>\n </p-table>\n </p-accordionTab>\n </p-accordion>\n <p-fieldset class=\"mt-2 mb-2\" *ngIf=\"mostrarParametros\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'entrada' | translate}}</span>\n </div>\n </ng-template>\n <p-table [value]=\"parametros\" >\n <ng-template pTemplate=\"body\" let-parametro>\n <tr [pSelectableRow]=\"parametro\">\n <!--<td>\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </td>-->\n <td *ngIf=\"parametro.unionDTO.solicitar == 'S'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"(parametro.unionDTO.tipoDato == 'T' || parametro.unionDTO.tipoDato == 'E') && parametro.unionDTO.tipo == 'D'\" />\n\n <input pInputText [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'U' && parametro.unionDTO.tipo == 'D'\" />\n\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'N' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-inputNumber [(ngModel)]=\"parametro.unionDTO.valor\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n [maxFractionDigits]=\"16\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'B' && parametro.unionDTO.tipo == 'D'\">\n </p-inputNumber>\n\n <p-dropdown [options]=\"parametro.lista\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n (onChange)=\"cambioValorLista($event, parametro)\" [(ngModel)]=\"parametro.unionDTO.llaveLista\"\n optionLabel=\"label\" optionValue=\"value\" *ngIf=\"parametro.unionDTO.tipo == 'L'\">\n </p-dropdown>\n\n <p-calendar type=\"text\" [(ngModel)]=\"parametro.unionDTO.valor\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n *ngIf=\"parametro.unionDTO.tipoDato == 'F' && parametro.unionDTO.tipo == 'D'\"></p-calendar>\n\n <label *ngIf=\"parametro.unionDTO.solicitar == 'S'\">{{ parametro.unionDTO.descripcion }}</label>\n </p-floatLabel>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </p-fieldset>\n <p-fieldset class=\"mb-2 mt-2\" *ngIf=\"generaciones.length > 0\">\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>{{'generar' | translate}}</span>\n </div>\n </ng-template>\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of generaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoReporte($event)\" [inputId]=\"valor.value\" name=\"tipoReporte\"\n [value]=\"valor.value\" [(ngModel)]=\"tipoReporte\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </p-fieldset>\n\n <p-fieldset class=\"mt-0 mb-2\" *ngIf=\"'A' != tipoReporte && mostrarQueDeseaHacer\" >\n <ng-template pTemplate=\"header\">\n <div>\n <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n <span>\u00BFQu\u00E9 desea hacer?</span>\n </div>\n </ng-template>\n <label *ngIf=\"tipoReporte && 'F' == tipoReporte\">{{'seleccionetipoarchivodeseagenerar' | translate}}</label>\n\n <div *ngIf=\"tipoReporte && 'F' == tipoReporte\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of mapaTipoArchivos\">\n <div class=\"field-radiobutton\">\n <p-radioButton (onClick)=\"cambioTipoArchivo($event)\" [inputId]=\"valor.codigo\" name=\"tipoArchivo\"\n [value]=\"valor.codigo\" [(ngModel)]=\"tipoArchivo\" />\n <label [for]=\"valor.codigo\" class=\"ml-2\">\n {{ valor.nombre }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"mostrarArchivosSoporte\">\n <div class=\"Detallereporte\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-12\">\n <p-floatLabel>\n <p-dropdown [options]=\"listadoArchivoSoporte\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\" appendTo=\"body\"\n optionValue=\"llaveTabla\" [(ngModel)]=\"soporteBase\" (onChange)=\"cambioSoporteBase($event)\"></p-dropdown>\n <label>Soporte Base:</label>\n </p-floatLabel>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'F' && tipoArchivo || tipoReporte != 'F' \">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid text-xs\">\n <div class=\"field col-12 md:col-6 lg:col-3 align-items-center mb-0\" *ngFor=\"let valor of operaciones\">\n <div class=\"field-radiobutton\">\n <p-radioButton [inputId]=\"valor.value\" name=\"operacion\" [value]=\"valor.value\"\n [(ngModel)]=\"operacion\" />\n <label [for]=\"valor.value\" class=\"ml-2\">\n {{ valor.label }}\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"operacion == 'E'\">\n <p-floatLabel>\n <input pInputText [(ngModel)]=\"correo\" type=\"text\" [disabled]=\"bloquearCorreo\" />\n <label>{{'correo' | translate}}</label>\n </p-floatLabel>\n </div>\n </p-fieldset>\n \n\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"m-2 mt-4 p-button p-button-outlined background-100\"\n *ngIf=\"validarControlFuncionalidad('ejecrepo:sentencia')\" label=\"Ver sentencia\" icon=\"glyphicons glyphicons-eye-open\"\n (click)=\"sentencia()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'E'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento != 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporte()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'D' && reporte.momento == 'D'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"descargarReporteSinHilo()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"tipoReporte == 'A'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'generar' | translate}}\" (click)=\"generarTabla()\"></button>\n <!--pte proceso externo-->\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'M' || operacion == 'MP'\" icon=\"glyphicons glyphicons-envelope\"\n label=\"{{'link_enviar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion == 'P'\" icon=\"glyphicons glyphicons-folder-open\"\n label=\"{{'link_publicar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" *ngIf=\"operacion =='S'\" icon=\"glyphicons glyphicons-check\"\n label=\"{{'link_generar' | translate}}\" (click)=\"enviarSegundoPlano()\"></button>\n\n </div>\n </div>\n <div *ngIf=\"panel == 'resultado'\">\n <div *ngIf=\"operacion == 'historico'\">\n <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h4 class=\"text-base mt-2 ml-2\">{{'detalle' | translate}} {{'segundoplano' | translate}}</h4>\n <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n (click)=\"regresarSegundoPlano()\" label=\"{{'listado' | translate}} {{'segundoplano' | translate}}\" >\n </button>\n </div>\n <div class=\" Inputgroup\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.inicia\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechainicial') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <p-calendar type=\"text\" [(ngModel)]=\"elementoBorrar.termina\" [disabled]=\"true\" appendTo=\"body\"\n [showTime]=\"true\" [showSeconds]=\"true\" dateFormat=\"dd/mm/yy\"></p-calendar>\n <label>{{('fechafinal') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-4 lg:col-4\">\n <p-floatLabel>\n <input pInputText type=\"text\" [readonly]=\"false\"\n [(ngModel)]=\"elementoBorrar.nombreEstado\" [disabled]=\"true\" />\n <label>{{('estado') | translate}}</label>\n </p-floatLabel>\n </div>\n\n <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"elementoBorrar.estado == 'E'\">\n <label>{{('mensaje') | translate}}</label>\n <textarea class=\"w-full min-h-100 max-h-150\"\n rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"elementoBorrar.archivo\"\n [disabled]=\"true\"></textarea>\n </div>\n </div>\n <div class=\"flex justify-content-end\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n *ngIf=\"elementoBorrar.estado == 'T'\" icon=\"pi pi-download\"\n label=\"{{'link_descargar' | translate}}\" (click)=\"descargarArchivo()\">\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarSegundoPlano($event)\">\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"tipoReporte == 'A'\" >\n <div class=\"flex justify-content-end mb-3\">\n <!-- Botones descarga -->\n <button type=\"button\" pButton pRipple icon=\"pi pi-file\" (click)=\"exportArchivo('csv')\"\n class=\"p-button-raised p-button-export border-solid-1 border-color-400 ml-3 w-auto\" pTooltip=\"CSV\"\n tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\"\n (click)=\"exportArchivo('xls')\"\n class=\"p-button-outlined ml-2 background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n <button type=\"button\" pButton pRipple icon=\"pi pi-file-pdf\"\n (click)=\"exportArchivo('pdf')\"\n class=\"p-button-outlined ml-2 w-auto\" pTooltip=\"PDF\" tooltipPosition=\"bottom\"></button>\n </div>\n <p-table [value]=\"listaRegistro\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n [rows]=\"10\" [totalRecords]=\"listaRegistro.length\" [paginator]=\"listaRegistro.length > 10\" >\n <ng-template pTemplate=\"header\">\n <tr class=\"fondoTablaPincipal\">\n <th [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ col.header }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr>\n <td [style.width.px]=\"col.width || 200\" *ngFor=\"let col of columnas\">{{ entrada[col.field] }}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\"> \n <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template> </p-table>\n </div>\n </div>\n\n</p-dialog>\n<app-popup-sentencia [reporte]=\"reporte\" [parametros]=\"parametros\" [mostrarPopup]=\"mostrarPopupSentencia\"\n (regresar)=\"regresarSentencia($event)\"></app-popup-sentencia>", styles: [":host ::ng-deep .p-button{width:auto}:host ::ng-deep .min-w-full2{min-height:150px;min-width:100%}h4{color:var(--color-500)}\n"] }]
|
|
544
555
|
}], ctorParameters: () => [{ type: i1.GeneralService }, { type: i2.EjecucionReporteService }, { type: i3.ConfirmationService }, { type: i4.ToastService }, { type: i5.AuthService }, { type: i6.TranslateService }, { type: i7.CargarArchivosService }, { type: i8.UtilsService }, { type: i9.CargarControlFuncionalidadService }, { type: i10.EncriptadoBasicoService }, { type: i11.ReporteFuentePipe }, { type: i12.GeneralPipe }, { type: i7.CargarArchivosService }, { type: i13.DataExporter }, { type: i10.EncriptadoBasicoService }], propDecorators: { mostrar: [{
|
|
545
556
|
type: Input
|
|
546
557
|
}], aplicacion: [{
|
|
@@ -552,4 +563,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
552
563
|
}], regresar: [{
|
|
553
564
|
type: Output
|
|
554
565
|
}] } });
|
|
555
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtcmVwb3J0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9wb3B1cHMvcG9wdXAtcmVwb3J0ZS9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BvcHVwcy9wb3B1cC1yZXBvcnRlL3BvcHVwLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQVksY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FB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LEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLGNBQ25RLElBQUksYUFDTCxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUM7d2lCQU1oRCxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9nZW5lcmFsLnBpcGUnO1xuaW1wb3J0IHsgR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljaW9zL2dlbmVyYWwuc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9HZW5lcmFsTW9kZWwnO1xuaW1wb3J0IHsgQ2FyZ2FyQXJjaGl2b3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9jYXJnYXItYXJjaGl2b3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvZW5jcmlwdGFkby1iYXNpY28uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXBvcnRlRnVlbnRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUnO1xuaW1wb3J0IHsgRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lamVjdWNpb25yZXBvcnRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3J0ZUZ1ZW50ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZUZ1ZW50ZU1vZGVsJztcbmltcG9ydCB7IFJlcG9ydGVFbnRyYWRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9SZXBvcnRlRW50cmFkYU1vZGVsJztcbmltcG9ydCB7IFJlcG9ydGVTb3BvcnRlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9SZXBvcnRlU29wb3J0ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxvcy90YWJsZS1jb2x1bW4ubW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENhcmdhckNvbnRyb2xGdW5jaW9uYWxpZGFkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2Nhcmdhci1jb250cm9sLWZ1bmNpb25hbGlkYWQuc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XG5pbXBvcnQgeyBBY2NvcmRpb25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2FjY29yZGlvbic7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGaWVsZHNldE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IFBvcHVwU2VudGVuY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wdXAtc2VudGVuY2lhL3BvcHVwLXNlbnRlbmNpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG9hdExhYmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9mbG9hdGxhYmVsJztcbmltcG9ydCB7IERhdGFFeHBvcnRlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2RhdGEtZXhwb3J0ZXItdGFibGUudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcG9wdXAtcmVwb3J0ZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBBY2NvcmRpb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERhdGVQaXBlLCBGaWVsZHNldE1vZHVsZSwgSW5wdXROdW1iZXJNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIENhbGVuZGFyTW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZSwgUG9wdXBTZW50ZW5jaWFDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBGbG9hdExhYmVsTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBEYXRhRXhwb3J0ZXJdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wdXAtcmVwb3J0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcHVwUmVwb3J0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIG1vc3RyYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFwbGljYWNpb246IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHJlcG9ydGU6IFJlcG9ydGVGdWVudGVNb2RlbCA9IG5ldyBSZXBvcnRlRnVlbnRlTW9kZWw7XG4gIEBJbnB1dCgpIHB1YmxpYyBlbnRyYWRhc1B1bnRvUHJvY2VzbzogYW55W109W107XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVncmVzYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYW5lbDogc3RyaW5nID0gJ2VudHJhZGEnO1xuICBwdWJsaWMgb3BlcmFjaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBsaXN0YUVudHJhZGE6IFJlcG9ydGVFbnRyYWRhTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgbGlzdGFTZWd1bmRvUGxhbm86IGFueVtdID0gW107XG4gIHB1YmxpYyBwYXJhbWV0cm9zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgZWxlbWVudG9Cb3JyYXI6IGFueSA9IHt9O1xuICBwdWJsaWMgZ2VuZXJhY2lvbmVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgb3BlcmFjaW9uZXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBtb3N0cmFyT3RyYVNlbGVjY2lvbjogYm9vbGVhbjtcblx0cHVibGljIG1vc3RyYXJBcmNoaXZvc1NvcG9ydGU6IGJvb2xlYW47XG5cdHB1YmxpYyBtb3N0cmFyQ29uc3VsdGFDYXNvRXJyb3I6IGJvb2xlYW47XG4gIHB1YmxpYyBjb3JyZW86IHN0cmluZztcbiAgcHVibGljIHRpcG9SZXBvcnRlOiBzdHJpbmc7XG4gIHB1YmxpYyBzb3BvcnRlQmFzZTogc3RyaW5nO1xuICBwdWJsaWMgdGlwb0FyY2hpdm86IHN0cmluZztcbiAgcHVibGljIGJsb3F1ZWFyQ29ycmVvOiBib29sZWFuO1xuICBwdWJsaWMgbWFwYVRpcG9BcmNoaXZvcztcbiAgcHVibGljIGxpc3RhZG9BcmNoaXZvU29wb3J0ZTogUmVwb3J0ZVNvcG9ydGVNb2RlbFtdID0gW107XG4gIHB1YmxpYyBtb3N0cmFyUG9wdXBTZW50ZW5jaWE6IGJvb2xlYW47XG5cbiAgcHVibGljIGl0ZW1zOiBNZW51SXRlbVtdO1xuICBwdWJsaWMgdmlzdGFWaXN1YWxpemFyOiBzdHJpbmc7XG4gIHBhZ2luYXRvcj17cm93czoyLHRvdGFsUmVjb3JkczowfVxuICBwdWJsaWMgbW9zdHJhclBhcmFtZXRyb3M6IGJvb2xlYW47XG5cdHB1YmxpYyBtb3N0cmFyUXVlRGVzZWFIYWNlcjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29sdW1uYXM6IFRhYmxlQ29sdW1uW10gPSBbXTtcbiAgcHVibGljIGxpc3RhUmVnaXN0cm86IGFueVtdID0gW107XG5cbiAgcHVibGljIGV4aXN0ZUphc3BlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2xzOiBhbnlbXTtcbiAgZXhwb3J0Q29sdW1uczogYW55W107XG4gIG5vbWJyZUFyY2hpdm8gPSAnVGFibGEnO1xuICBjb2x1bW5hc0V4cG9ydEV4Y2VsOiBhbnlbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlamVjdWNpb25SZXBvcnRlU2VydmljZTogRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBub3RpZmljYWNpb25TZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FyZ2FyQXJjaGl2b1NlcnZpY2U6IENhcmdhckFyY2hpdm9zU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbnRyb2xGdW5jaW9uYWxpZGFkOiBDYXJnYXJDb250cm9sRnVuY2lvbmFsaWRhZFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW5jcmlwdGFkb0Jhc2ljbzogRW5jcmlwdGFkb0Jhc2ljb1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVwb3J0ZUZ1ZW50ZVBpcGU6IFJlcG9ydGVGdWVudGVQaXBlLFxuICAgICAgICAgICAgICBwcml2YXRlIGdlbmVyYWxQaXBlOiBHZW5lcmFsUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjYXJnYXJBcmNoaXZvOiBDYXJnYXJBcmNoaXZvc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGF0YUV4cG9ydGVyOiBEYXRhRXhwb3J0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW5jcmlwdGFkb3JBcmNoaXZvOiBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSwpIHsgfSAgICAgICAgIFxuICBcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYXBhVGlwb0FyY2hpdm9zID0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5NQVBBX1RJUE9fQVJDSElWT1M7ICBcbiAgICB0aGlzLmFwbGljYWNpb24gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuS2V5KCdhcGxpY2FjaW9uJylcbiAgfVxuXG4gIGFzeW5jIG1vc3RyYXJQb3B1cCgpe1xuICAgIHRoaXMucGFuZWwgPSAnZW50cmFkYSc7XG4gICAgdGhpcy5tb3N0cmFyUXVlRGVzZWFIYWNlciA9IGZhbHNlO1xuICAgIHRoaXMudGlwb1JlcG9ydGUgPSBudWxsO1xuICAgIHRoaXMubW9zdHJhckNvbnN1bHRhQ2Fzb0Vycm9yID0gdGhpcy52YWxpZGFyQ29udHJvbEZ1bmNpb25hbGlkYWQoJ3JlcG9ydGU6dmVyc2VudGVuY2lhZXJyb3InKTtcbiAgICB0aGlzLm9wZXJhY2lvbiA9IG51bGw7XG4gICAgdGhpcy5lbGVtZW50b0JvcnJhciA9IHt9XG4gICAgdGhpcy5saXN0YVNlZ3VuZG9QbGFubyA9IFtdXG4gICAgdGhpcy5saXN0YVJlZ2lzdHJvID0gW107XG4gICAgdGhpcy5jb2x1bW5hcyA9IFtdO1xuICAgIHRoaXMuZXhpc3RlSmFzcGVyID0gZmFsc2U7XG4gICAgaWYgKHRoaXMucmVwb3J0ZS5sbGF2ZSkge1xuICAgICAgdmFyIHJlc3VsdGFkbyA9IGF3YWl0IHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZ2V0RGF0b3NFamVjdWNpb25SZXBvcnRlKHtsbGF2ZTogdGhpcy5yZXBvcnRlLmxsYXZlfSkudG9Qcm9taXNlKCk7XG4gICAgICB0aGlzLnJlcG9ydGUgPSByZXN1bHRhZG8ucmVwb3J0ZTtcbiAgICAgIGRlbGV0ZSB0aGlzLnJlcG9ydGVbJ2FsaWFzJ11cbiAgICAgIHRoaXMuY2FyZ2FyTGlzdGFFbnRyYWRhKCk7XG4gICAgICB0aGlzLnRyYWVyU2VndW5kb1BsYW5vKCk7XG4gICAgICB0aGlzLmNhcmdhckNvcnJlbygpO1xuICAgICAgYXdhaXQgdGhpcy52YWxpZGFyRXhpc3RlSmFzcGVyKCk7XG4gICAgICBhd2FpdCB0aGlzLmNhcmdhckdlbmVyYWNpb25lcygpO1xuICAgICAgdGhpcy5jYXJnYXJPcGVyYWNpb25lcygpO1xuICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgfVxuICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICB9XG5cbiAgY2FyZ2FyTWVudSgpe1xuICAgIHRoaXMuaXRlbXMgPSBbXG4gICAgICBcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdlamVjdWNpb24nKSxcbiAgICAgICAgaWNvbjogJ2dseXBoaWNvbnMgZ2x5cGhpY29ucy1wbHVzLXNpZ24nLFxuICAgICAgICBjb21tYW5kOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9ICdlbnRyYWRhJztcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnc2VndW5kb3BsYW5vJyksXG4gICAgICAgIGljb246ICdnbHlwaGljb25zIGdseXBoaWNvbnMtZmlsZS1taW51cycsXG4gICAgICAgIGNvbW1hbmQ6IChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlzdGFWaXN1YWxpemFyID0gJ3NlZ3VuZG9wbGFubyc7XG4gICAgICAgIH0sXG4gICAgICAgIHZpc2libGU6IHRoaXMubGlzdGFTZWd1bmRvUGxhbm8ubGVuZ3RoID4gMCxcbiAgICAgIH1cbiAgICBdXG4gIH1cblxuICBhc3luYyBjYXJnYXJHZW5lcmFjaW9uZXMoKXtcbiAgICB0aGlzLmdlbmVyYWNpb25lcyA9IFtdO1xuICAgIGlmICggdGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUudGl0dWxvUGFyYW1ldHJvKSAmJiB0aGlzLmV4aXN0ZUphc3Blcil7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0pBU1BFUkRJTkFNSUNPLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9KQVNQRVJESU5BTUlDT30pXG4gICAgfVxuICAgIGlmICh0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5qYXNwZXJGaWpvKSAmJiB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5tb2RvRmlqbykpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9KQVNQRVJGSUpPLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9KQVNQRVJGSUpPfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9Ub2RvKSAmJiB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5ob2phRXhjZWwpKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fRVhDRUwsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0VYQ0VMfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9JbmRpdmlkdWFsKSB8fCB0aGlzLnJlcG9ydGUudW5pY29BcmNoaXZvID09ICdOJyl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1BMQU5USUxMQSwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fUExBTlRJTExBfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLnNlcGFyYWRvcikpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9BUkNISVZPUExBTk8sIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0FSQ0hJVk9QTEFOT30pXG4gICAgfVxuICAgIGlmICh0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5ub21icmVUYWJsYSkpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9UQUJMQSwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fVEFCTEF9KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUudGFnRW5jYWJlemFkbykgJiYgdGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuZXN0cnVjdHVyYVJlZ2lzdHJvKSl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1hNTCwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fWE1MfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmFyY2hpdm9FeGNlbENvbHVtbmFyaW8pICYmIHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmhvamFFeGNlbENvbHVtbmFyaW8pKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fQ09MVU1OQVJJTywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fQ09MVU1OQVJJT30pXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmFsaWRhckV4aXN0ZUphc3Blcigpe1xuICAgIHRyeSB7XG4gICAgICB2YXIgZGF0YSA9IGF3YWl0IHRoaXMuY2FyZ2FyQXJjaGl2by5kZXNjYXJnYXJBcmNoaXZvKHRoaXMuZW5jcmlwdGFkb3JBcmNoaXZvLmVuY3JpcHRhcigncmVwb3J0ZXMvJyArIHRoaXMucmVwb3J0ZS5sbGF2ZSArICcuanJ4bWwnKSwgJ3J1dGFfcGxhbnRpbGxhcycsIHRoaXMuYXBsaWNhY2lvbikudG9Qcm9taXNlKCk7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aGlzLmV4aXN0ZUphc3BlciA9IHRydWU7XG4gICAgICB9ICAgXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZXhpc3RlSmFzcGVyID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FyZ2FyT3BlcmFjaW9uZXMoKXtcbiAgICB0aGlzLmJsb3F1ZWFyQ29ycmVvID0gdHJ1ZTtcbiAgICB0aGlzLm9wZXJhY2lvbmVzID0gW107XG4gICAgaWYgKHRoaXMudGlwb1JlcG9ydGUpe1xuICAgICAgaWYgKHRoaXMudGlwb1JlcG9ydGUgIT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1RBQkxBKSB7XG4gICAgICAgIHRoaXMub3BlcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuT1BFUkFDSU9OX0RFU0NBUkdBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX09QRVJBQ0lPTl9ERVNDQVJHQVJ9KTtcbiAgICAgIFxuICAgICAgICBpZiAodGhpcy52YWxpZGFyQ29udHJvbEZ1bmNpb25hbGlkYWQoJ3JlcG9ydGU6ZW52aW9jb3JyZW8nKSl7XG4gICAgICAgICAgdGhpcy5ibG9xdWVhckNvcnJlbyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3BlcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuT1BFUkFDSU9OX0VOVklBUkNPUlJFTyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0VOVklBUkNPUlJFT30pO1xuICAgICAgICBpZiAodGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5NT01FTlRPU19TRUdVTkRPX1BMQU5PID09IHRoaXMucmVwb3J0ZS5tb21lbnRvKSB7XG4gICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fU0VHVU5ET1BMQU5PLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX09QRVJBQ0lPTl9TRUdVTkRPUExBTk99KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHRoaXMudGlwb1JlcG9ydGUgPT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0pBU1BFUkZJSk8gJiYgdGhpcy5yZXBvcnRlLm1vZG9GaWpvID09ICdQJylcbiAgICAgICAgICB8fCB0aGlzLnRpcG9SZXBvcnRlID09IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9QTEFOVElMTEEgJiYgdGhpcy5yZXBvcnRlLmRlc2NhcmdhckZ1ZW50ZSAhPSAnUycpe1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydGUuYXJjaGl2b0h0bWwgJiYgdGhpcy5yZXBvcnRlLmNhbXBvRW1haWwpe1xuICAgICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fRU5WSU9NQVNJVk8sXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0VOVklPTUFTSVZPfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnJlcG9ydGUucHVibGljYWNpb24gJiYgdGhpcy5yZXBvcnRlLmNhbXBvUHVibGljYSl7XG4gICAgICAgICAgICB0aGlzLm9wZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk9QRVJBQ0lPTl9QVUJMSUNBUixcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19PUEVSQUNJT05fUFVCTElDQVJ9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucmVwb3J0ZS5hcmNoaXZvSHRtbCAmJiB0aGlzLnJlcG9ydGUuY2FtcG9FbWFpbCAmJiB0aGlzLnJlcG9ydGUucHVibGljYWNpb24gJiYgdGhpcy5yZXBvcnRlLmNhbXBvUHVibGljYSApe1xuICAgICAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fQ09SUkVPUFVCTElDQVIsXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0NPUlJFT1BVQkxJQ0FSfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vcHRlIHByb2Nlc28gZXh0ZXJub1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbWJpb1ZhbG9yTGlzdGEoZXZlbnQsIHBhcmFtZXRybyl7XG4gICAgaWYgKGV2ZW50LnZhbHVlKXtcbiAgICAgIGxldCBsaXN0YSA9IGV2ZW50LnZhbHVlLnNwbGl0KCc6JylcbiAgICAgIGlmIChwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ04nKXtcbiAgICAgICAgcGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yID0gcGFyc2VJbnQobGlzdGFbMF0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbWV0cm8udW5pb25EVE8udmFsb3IgPSBsaXN0YVswXVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcbiAgfVxuICBcbiAgY2FtYmlvU29wb3J0ZUJhc2UoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5zb3BvcnRlQmFzZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yT2JqZWN0KG5ldyBHZW5lcmFsTW9kZWwoJ1JlcG9ydGVTb3BvcnRlRFRPJywgbnVsbCwgZmFsc2UsIHtsbGF2ZVRhYmxhOiB0aGlzLnNvcG9ydGVCYXNlfSkpLnN1YnNjcmliZShhcmNoaXZvQmFzZSA9PiB7XG4gICAgICBpZiAoYXJjaGl2b0Jhc2UgPT0gbnVsbCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNvcG9ydGVCYXNlID0gYXJjaGl2b0Jhc2UubGxhdmVUYWJsYTtcblx0XHRcdHRoaXMucmVwb3J0ZS5hcmNoaXZvSW5kaXZpZHVhbCA9IGFyY2hpdm9CYXNlLmFyY2hpdm9JbmRpdmlkdWFsO1xuXHRcdFx0dGhpcy5jYXJnYXJPcGVyYWNpb25lcygpO1xuICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgfSk7XG4gICAgXG4gIH1cblxuICBjYXJnYXJDb3JyZW8oKXtcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yT2JqZWN0KG5ldyBHZW5lcmFsTW9kZWwoJ1VzdWFyaW9EVE8nLCBudWxsLCB0cnVlLCB7bG9naW46IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3VzdWFyaW8nKX0pKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmNvcnJlbyA9IGRhdGEuZW1haWw7XG4gICAgfSlcbiAgfVxuXG4gIGNhcmdhckxpc3RhRW50cmFkYSgpe1xuICAgIHRoaXMubW9zdHJhclBhcmFtZXRyb3MgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5lbnRyYWRhc1B1bnRvUHJvY2Vzby5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMucGFyYW1ldHJvcyA9IHRoaXMuZW50cmFkYXNQdW50b1Byb2Nlc287ICBcbiAgICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy5zb2xpY2l0YXIgPT0gJ1MnKXtcbiAgICAgICAgICB0aGlzLm1vc3RyYXJQYXJhbWV0cm9zID0gIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udGlwb0RhdG8gPT0gJ0YnICYmIGVsZW1lbnQudW5pb25EVE8udmFsb3IgIT0gbnVsbCl7XG4gICAgICAgICAgZWxlbWVudC51bmlvbkRUTy52YWxvciA9IG5ldyBEYXRlKGVsZW1lbnQudW5pb25EVE8udmFsb3IpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLm9idGVuZXJMaXN0YUVudHJhZGFFamVjdWNpb24odGhpcy5yZXBvcnRlKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFyYW1ldHJvcyA9IGRhdGE7XG4gICAgICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChlbGVtZW50LnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUycpe1xuICAgICAgICAgICAgdGhpcy5tb3N0cmFyUGFyYW1ldHJvcyA9ICB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnRicgJiYgZWxlbWVudC51bmlvbkRUTy52YWxvciAhPSBudWxsKXtcbiAgICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBuZXcgRGF0ZShlbGVtZW50LnVuaW9uRFRPLnZhbG9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHRyYWVyU2VndW5kb1BsYW5vKCl7XG4gICAgbGV0IHVzdWFyaW8gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuS2V5KCd1c3VhcmlvJylcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yTGlzdChuZXcgR2VuZXJhbE1vZGVsKCdFamVjdWNpb25SZXBvcnRlRFRPJywgbnVsbCwgZmFsc2UsIHtcbiAgICAgIGFkaWNpb25hZG86IHVzdWFyaW8sIFxuICAgICAgcmVwb3J0ZUZ1ZW50ZTogdGhpcy5yZXBvcnRlLmxsYXZlfSkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5saXN0YVNlZ3VuZG9QbGFubyA9IGRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA9IHRoaXMubGlzdGFTZWd1bmRvUGxhbm8ubGVuZ3RoO1xuICAgICAgfSlcbiAgfVxuICBcbiAgdmVyU2VndW5kb1BsYW5vKGV2ZW50KXtcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyID0gZXZlbnQuZGF0YTtcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyLmZlY2hhQWRpY2lvbmFkbyA9IHRoaXMuZWxlbWVudG9Cb3JyYXIuZmVjaGFBZGljaW9uYWRvID8gbmV3IERhdGUodGhpcy5lbGVtZW50b0JvcnJhci5mZWNoYUFkaWNpb25hZG8pIDogbnVsbFxuICAgIHRoaXMuZWxlbWVudG9Cb3JyYXIuaW5pY2lhID0gdGhpcy5lbGVtZW50b0JvcnJhci5pbmljaWEgPyBuZXcgRGF0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyLmluaWNpYSkgOiBudWxsXG4gICAgdGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hID0gdGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hID8gbmV3IERhdGUodGhpcy5lbGVtZW50b0JvcnJhci50ZXJtaW5hKSA6IG51bGxcbiAgICB0aGlzLm9wZXJhY2lvbiA9ICdoaXN0b3JpY28nXG4gICAgdGhpcy5wYW5lbCA9ICdyZXN1bHRhZG8nXG4gIH1cblxuICBlbGltaW5hclNlZ3VuZG9QbGFubyhldmVudCl7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICBtZXNzYWdlOiAgdGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0VMSU1JTkFSX0NPTkZJUk1BUixcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmdlbmVyYWxQaXBlLlNJX0RFU0MsXG4gICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb25maXJtYXInKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLmVsaW1pbmFyRWplY3VjaW9uUmVwb3J0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyKS5zdWJzY3JpYmUoZGF0YSA9PntcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8odGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0VMSU1JTkFSKVxuICAgICAgICAgIHRoaXMucmVncmVzYXJTZWd1bmRvUGxhbm8oKTtcbiAgICAgICAgICB0aGlzLnRyYWVyU2VndW5kb1BsYW5vKCk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGRlc2NhcmdhckFyY2hpdm8oKXtcbiAgICB0aGlzLmNhcmdhckFyY2hpdm9TZXJ2aWNlLmRlc2NhcmdhckFyY2hpdm8odGhpcy5lbmNyaXB0YWRvQmFzaWNvLmVuY3JpcHRhcih0aGlzLmVsZW1lbnRvQm9ycmFyLmFyY2hpdm8pKS5zdWJzY3JpYmUoYmxvYiA9PiB7XG4gICAgICBcbiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICAgIGNvbnN0IG9iamVjdFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcbiAgICAgIGEuaHJlZiA9IG9iamVjdFVybFxuICAgICAgbGV0IHBhcnRlcyA9IHRoaXMuZWxlbWVudG9Cb3JyYXIuYXJjaGl2by5zcGxpdChcIi5cIik7XG4gICAgICBsZXQgZXh0ZW5zaW9uID0gcGFydGVzW3BhcnRlcy5sZW5ndGggLSAxXTtcbiAgICAgIGEuZG93bmxvYWQgPSB0aGlzLnV0aWxzU2VydmljZS5nZW5lcmFyTGxhdmUoKSArICcuJyArIGV4dGVuc2lvbjtcbiAgICAgIGEuY2xpY2soKTtcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbWJpb1RpcG9SZXBvcnRlKGV2ZW50KXtcbiAgICB0aGlzLm1vc3RyYXJRdWVEZXNlYUhhY2VyID0gdHJ1ZTtcbiAgICBpZiAodGhpcy50aXBvUmVwb3J0ZSA9PSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fUExBTlRJTExBICYmIHRoaXMucmVwb3J0ZS51bmljb0FyY2hpdm8gPT0gJ04nICl7XG4gICAgICB0aGlzLm1vc3RyYXJBcmNoaXZvc1NvcG9ydGUgPSB0cnVlO1xuICAgICAgdGhpcy5nZW5lcmFsU2VydmljZS5xdWVyeUZvckxpc3QobmV3IEdlbmVyYWxNb2RlbCgnUmVwb3J0ZVNvcG9ydGVEVE8nLCBudWxsLCBmYWxzZSwge1xuICAgICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLnJlcG9ydGUubGxhdmUsXG4gICAgICAgIHRpcG86J1MnXG4gICAgICB9KSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxpc3RhZG9BcmNoaXZvU29wb3J0ZSA9IGRhdGE7XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9zdHJhckFyY2hpdm9zU29wb3J0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpc3RhZG9BcmNoaXZvU29wb3J0ZSA9IFtdO1xuICAgICAgICB0aGlzLnRpcG9BcmNoaXZvID0gbnVsbDtcbiAgICAgICAgdGhpcy5vcGVyYWNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICAgIC8vdGhpcy5kZXNjYXJnYXJBcmNoaXZvID0gbnVsbDtcbiAgICB9IFxuICB9XG5cbiAgY2FtYmlvVGlwb0FyY2hpdm8oZXZlbnQpe1xuICAgIHRoaXMuY2FyZ2FyT3BlcmFjaW9uZXMoKTtcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VndW5kb1BsYW5vKCl7XG4gICAgdGhpcy5lbGVtZW50b0JvcnJhciA9IHt9XG4gICAgdGhpcy5wYW5lbCA9ICdlbnRyYWRhJ1xuICAgIHRoaXMub3BlcmFjaW9uID0gbnVsbDtcbiAgfVxuXG4gIG9jdWx0YXIoKXtcbiAgICB0aGlzLnRpcG9SZXBvcnRlID0gbnVsbDtcbiAgICB0aGlzLm1vc3RyYXIgPSBmYWxzZTtcbiAgICB0aGlzLnJlZ3Jlc2FyLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgdmFsaWRhckNvbnRyb2xGdW5jaW9uYWxpZGFkKHZhbG9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sRnVuY2lvbmFsaWRhZC5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCh2YWxvcik7XG4gIH1cblxuICBzZW50ZW5jaWEoKXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IHRydWVcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VudGVuY2lhKGV2ZW50KXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IGZhbHNlO1xuICB9XG5cbiAgZW52aWFyU2VndW5kb1BsYW5vKCl7XG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBsaXN0YUVudHJhZGEucHVzaChlbGVtZW50LnVuaW9uRFRPKVxuICAgIH0pXG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5lbnZpYXJTZWd1bmRvUGxhbm8oe1xuICAgICAgcmVwb3J0ZTogdGhpcy5yZXBvcnRlLFxuICAgICAgcGFyYW1ldHJvczogbGlzdGFFbnRyYWRhLFxuICAgICAgdGlwb1JlcG9ydGU6IHRoaXMudGlwb1JlcG9ydGUsXG4gICAgICBvcGVyYWNpb246IHRoaXMub3BlcmFjaW9uLFxuICAgICAgY29ycmVvOiB0aGlzLmNvcnJlbyxcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgIH0pXG4gIH1cblxuICBkZXNjYXJnYXJSZXBvcnRlKCl7XG5cbiAgICBpZignRicgPT0gdGhpcy50aXBvUmVwb3J0ZSl7XG4gICAgICB0aGlzLnJlcG9ydGUudGlwb0FyY2hpdm8gPSB0aGlzLnRpcG9BcmNoaXZvO1xuICAgIH1cblxuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIGZvcih2YXIgZWxlbWVudCBvZiB0aGlzLnBhcmFtZXRyb3MpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpXG4gICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnQicgJiYgZWxlbWVudC51bmlvbkRUTy50aXBvID09ICdEJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdmFsaWRhY2lvbicpXG4gICAgICAgIHZhciB2YWxvcjogc3RyaW5nID0gZWxlbWVudC51bmlvbkRUTy52YWxvciArIFwiXCI7XG4gICAgICAgIGlmICh2YWxvci5lbmRzV2l0aCgnLjAnKSkge1xuICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBwYXJzZUludChlbGVtZW50LnVuaW9uRFRPLnZhbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9XG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5kZXNjYXJnYXJSZXBvcnRlKHtcbiAgICAgIHJlcG9ydGU6IHRoaXMucmVwb3J0ZSxcbiAgICAgIHBhcmFtZXRyb3M6IGxpc3RhRW50cmFkYSxcbiAgICAgIHRpcG9SZXBvcnRlOiB0aGlzLnRpcG9SZXBvcnRlLFxuICAgICAgb3BlcmFjaW9uOiB0aGlzLm9wZXJhY2lvbixcbiAgICAgIGNvcnJlbzogdGhpcy5jb3JyZW8sXG4gICAgICBlbmRwb2ludEdlbmVyYWRvclJlcG9ydGVzOiAnJ1xuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkYXRhID0+e1xuICAgICAgICBjb25zb2xlLmxvZyhkYXRhKVxuICAgICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgICAgICBpZiAoIWRhdGEuYXJjaGl2bykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWNvZGVkRGF0YSA9IGF0b2IoZGF0YS5hcmNoaXZvKTtcbiAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoZGVjb2RlZERhdGEubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gZGVjb2RlZERhdGEuY2hhckNvZGVBdChpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBvYmpldG8gQmxvYiBjb24gbG9zIGJ5dGVzIGRlY29kaWZpY2Fkb3MgeSBlbCB0aXBvIE1JTUUgZGVsIGFyY2hpdm9cbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGRhdGEubWltZSB9KTtcblxuICAgICAgICAvLyBDcmVhIHVuYSBVUkwgZGVsIG9iamV0byBCbG9iXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBlbmxhY2UgZGUgZGVzY2FyZ2EgeSBoYXogY2xpYyBlbiDDqWwgcGFyYSBpbmljaWFyIGxhIGRlc2NhcmdhXG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IGRhdGEubm9tYnJlQXJjaGl2byAgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIFxuICBkZXNjYXJnYXJSZXBvcnRlU2luSGlsbygpe1xuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udGlwb0RhdG8gPT0gJ0InICYmIGVsZW1lbnQudW5pb25EVE8udGlwbyA9PSAnRCcpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8udmFsb3IuZW5kc1dpdGgoJy4wJykpIHtcbiAgICAgICAgICBlbGVtZW50LnVuaW9uRFRPLnZhbG9yID0gcGFyc2VJbnQoZWxlbWVudC51bmlvbkRUTy52YWxvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3RhRW50cmFkYS5wdXNoKGVsZW1lbnQudW5pb25EVE8pXG4gICAgfSlcbiAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLmRlc2NhcmdhclJlcG9ydGUoe1xuICAgICAgbmV4dDogZGF0YSA9PntcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25TZXJ2aWNlLnNob3dJbmZvKGRhdGEubWVuc2FqZSlcbiAgICAgICAgY29uc3QgZGVjb2RlZERhdGEgPSBhdG9iKGRhdGEuYXJjaGl2byk7XG4gICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGRlY29kZWREYXRhLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZERhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IGRlY29kZWREYXRhLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gb2JqZXRvIEJsb2IgY29uIGxvcyBieXRlcyBkZWNvZGlmaWNhZG9zIHkgZWwgdGlwbyBNSU1FIGRlbCBhcmNoaXZvXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBkYXRhLm1pbWUgfSk7XG5cbiAgICAgICAgLy8gQ3JlYSB1bmEgVVJMIGRlbCBvYmpldG8gQmxvYlxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gZW5sYWNlIGRlIGRlc2NhcmdhIHkgaGF6IGNsaWMgZW4gw6lsIHBhcmEgaW5pY2lhciBsYSBkZXNjYXJnYVxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBkYXRhLm5vbWJyZUFyY2hpdm8gKyAnLicgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25TZXJ2aWNlLnNob3dFcnJvcihKU09OLnN0cmluZ2lmeShlcnIuZXJyb3IubWVuc2FqZUV0aXF1ZXRhKSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhclRhYmxhKCl7XG4gICAgdGhpcy5wYW5lbCA9ICdyZXN1bHRhZG8nXG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5jb2x1bW5hcyA9IFtdO1xuICAgIHRoaXMucGFyYW1ldHJvcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9KVxuICAgIHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZ2VuZXJhclRhYmxhKHtyZXBvcnRlOiB0aGlzLnJlcG9ydGUsIHBhcmFtZXRyb3M6IGxpc3RhRW50cmFkYX0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHZhciBjb2x1bW5hOiBUYWJsZUNvbHVtbjtcbiAgICAgIGRhdGEuY29sdW1uYXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29sdW1uYSA9IHtcbiAgICAgICAgICBmaWVsZDogZWxlbWVudC5ub21icmUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBoZWFkZXI6IGVsZW1lbnQubm9tYnJlLFxuICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgY2FuT3JkZXI6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sdW1uYXMucHVzaChjb2x1bW5hKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpc3RhUmVnaXN0cm8gPSBkYXRhLmxpc3RhUmVnaXN0cm87XG4gICAgfSlcbiAgfVxuXG4gIGNyZWFyQ29sdW1uYXNFeHBvcnRhcigpIHtcbiAgICB0aGlzLmV4cG9ydENvbHVtbnMgPSB0aGlzLmNvbHVtbmFzLm1hcChjb2wgPT4gKHsgdGl0bGU6IGNvbC5oZWFkZXIsIGRhdGFLZXk6IGNvbC5maWVsZCB9KSk7XG4gICAgdGhpcy5jb2x1bW5hc0V4cG9ydEV4Y2VsID0gW107XG4gICAgZm9yKGxldCBjb2wgb2YgdGhpcy5jb2x1bW5hcykge1xuICAgICAgdGhpcy5jb2x1bW5hc0V4cG9ydEV4Y2VsLnB1c2goY29sLmZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnRBcmNoaXZvKHRpcG9BcmNoaXZvOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNyZWFyQ29sdW1uYXNFeHBvcnRhcigpO1xuICAgIGlmICh0aXBvQXJjaGl2byA9PT0gJ3BkZicpIHtcbiAgICAgIHRoaXMuZGF0YUV4cG9ydGVyLmV4cG9ydFBkZih0aGlzLmxpc3RhUmVnaXN0cm8sIHRoaXMuZXhwb3J0Q29sdW1ucywgdGhpcy5ub21icmVBcmNoaXZvKTtcbiAgICB9IGVsc2UgaWYgKCd4bHMnKSB7XG4gICAgICB0aGlzLmRhdGFFeHBvcnRlci5leHBvcnRFeGNlbENvbHVtbmFzKHRoaXMubGlzdGFSZWdpc3RybywgdGhpcy5ub21icmVBcmNoaXZvLCB0aGlzLmNvbHVtbmFzRXhwb3J0RXhjZWwpO1xuICAgIH0gZWxzZSBpZiAodGlwb0FyY2hpdm8gPT09ICdjc3YnKSB7XG4gICAgICB0aGlzLmRhdGFFeHBvcnRlci5leHBvcnRDU1YodGhpcy5saXN0YVJlZ2lzdHJvLCB0aGlzLmNvbHVtbmFzRXhwb3J0RXhjZWwsIHRoaXMubm9tYnJlQXJjaGl2byApO1xuICAgIH1cbiAgfVxufVxuIiwiPHAtY29uZmlybVBvcHVwPjwvcC1jb25maXJtUG9wdXA+XG48cC1kaWFsb2cgaWQ9J3BvcHVwUmVwb3J0ZScgaGVhZGVyPVwie3sncmVwb3J0ZXNnZW5lcmFsZXMnIHwgdHJhbnNsYXRlfX1cIiBbKHZpc2libGUpXT1cIm1vc3RyYXJcIiAob25TaG93KT1cIm1vc3RyYXJQb3B1cCgpXCJcbiAgICBbYnJlYWtwb2ludHNdPVwieyc5NjBweCc6ICc3NXZ3JywgJzY0MHB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNTB2dyd9XCIgKG9uSGlkZSk9XCJvY3VsdGFyKClcIiBbbW9kYWxdPVwidHJ1ZVwiPlxuXG4gICAgPGRpdiAqbmdJZj1cInBhbmVsID09ICdlbnRyYWRhJ1wiPlxuICAgICAgICA8IS0tU2VndW5kbyBwbGFuby0tPlxuICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBbc2VsZWN0ZWRdPVwidHJ1ZVwiIFtoZWFkZXJdPVwiJ3NlZ3VuZG9wbGFubycgfCB0cmFuc2xhdGVcIiAqbmdJZj1cImxpc3RhU2VndW5kb1BsYW5vLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdGFTZWd1bmRvUGxhbm9cIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIlxuICAgICAgICAgICAgICAgICAgICBbcm93c109XCJwYWdpbmF0b3Iucm93c1wiIFt0b3RhbFJlY29yZHNdPVwicGFnaW5hdG9yLnRvdGFsUmVjb3Jkc1wiXG4gICAgICAgICAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA+IHBhZ2luYXRvci5yb3dzXCIgKG9uUm93U2VsZWN0KT1cInZlclNlZ3VuZG9QbGFubygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZm9uZG9UYWJsYVBpbmNpcGFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J2VzdGFkbycgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snZmVjaGFpbmljaWFsJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW50cmFkYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwiZW50cmFkYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2VudHJhZGEubm9tYnJlRXN0YWRvfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2VudHJhZGEuaW5pY2lhIHwgZGF0ZTogJ2RkL01NL3l5eXkgaDptbSBhJ319PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cbiAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgPHAtZmllbGRzZXQgY2xhc3M9XCJtdC0wXCIgICpuZ0lmPVwibW9zdHJhclBhcmFtZXRyb3NcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydlbnRyYWRhJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJwYXJhbWV0cm9zXCIgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXBhcmFtZXRybz5cbiAgICAgICAgICAgICAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJwYXJhbWV0cm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08dGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUydcIj57eyBwYXJhbWV0cm8udW5pb25EVE8uZGVzY3JpcGNpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4tLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAgKm5nSWY9XCJwYXJhbWV0cm8udW5pb25EVE8uc29saWNpdGFyID09ICdTJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKHBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnVCcgfHwgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdFJykgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnVScgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCIgLz5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdOJyAmJiBwYXJhbWV0cm8udW5pb25EVE8udGlwbyA9PSAnRCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCIgbW9kZT1cImRlY2ltYWxcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ0InICYmIHBhcmFtZXRyby51bmlvbkRUTy50aXBvID09ICdEJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGFyYW1ldHJvLmxpc3RhXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNhbWJpb1ZhbG9yTGlzdGEoJGV2ZW50LCBwYXJhbWV0cm8pXCIgWyhuZ01vZGVsKV09XCJwYXJhbWV0cm8udW5pb25EVE8ubGxhdmVMaXN0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0wnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLnZhbG9yXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdGJyAmJiBwYXJhbWV0cm8udW5pb25EVE8udGlwbyA9PSAnRCdcIj48L3AtY2FsZW5kYXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUydcIj57eyBwYXJhbWV0cm8udW5pb25EVE8uZGVzY3JpcGNpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG4gICAgICAgIDxwLWZpZWxkc2V0IGNsYXNzPVwibXQtMFwiICpuZ0lmPVwiZ2VuZXJhY2lvbmVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydnZW5lcmFyJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWQgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBnZW5lcmFjaW9uZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIChvbkNsaWNrKT1cImNhbWJpb1RpcG9SZXBvcnRlKCRldmVudClcIiBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiIG5hbWU9XCJ0aXBvUmVwb3J0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci52YWx1ZVwiIFsobmdNb2RlbCldPVwidGlwb1JlcG9ydGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbG9yLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG5cbiAgICAgICAgPHAtZmllbGRzZXQgY2xhc3M9XCJtdC0wXCIgKm5nSWY9XCInQScgIT0gdGlwb1JlcG9ydGUgJiYgbW9zdHJhclF1ZURlc2VhSGFjZXJcIiA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYm9va1wiIHN0eWxlPVwiY29sb3I6dmFyKC0tY29sb3ItNDAwKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+wr9RdcOpIGRlc2VhIGhhY2VyPzwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJ0aXBvUmVwb3J0ZSAmJiAnRicgPT0gdGlwb1JlcG9ydGVcIj57eydzZWxlY2Npb25ldGlwb2FyY2hpdm9kZXNlYWdlbmVyYXInIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlwb1JlcG9ydGUgJiYgJ0YnID09IHRpcG9SZXBvcnRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWQgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtMyBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMFwiICAqbmdGb3I9XCJsZXQgdmFsb3Igb2YgbWFwYVRpcG9BcmNoaXZvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvbiAob25DbGljayk9XCJjYW1iaW9UaXBvQXJjaGl2bygkZXZlbnQpXCIgW2lucHV0SWRdPVwidmFsb3IuY29kaWdvXCIgbmFtZT1cInRpcG9BcmNoaXZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5jb2RpZ29cIiAgWyhuZ01vZGVsKV09XCJ0aXBvQXJjaGl2b1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLmNvZGlnb1wiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsb3Iubm9tYnJlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vc3RyYXJBcmNoaXZvc1NvcG9ydGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiRGV0YWxsZXJlcG9ydGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImxpc3RhZG9BcmNoaXZvU29wb3J0ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uTGFiZWw9XCJkZXNjcmlwY2lvblwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cImxsYXZlVGFibGFcIiBbKG5nTW9kZWwpXT1cInNvcG9ydGVCYXNlXCIgKG9uQ2hhbmdlKT1cImNhbWJpb1NvcG9ydGVCYXNlKCRldmVudClcIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Tb3BvcnRlIEJhc2U6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGlwb1JlcG9ydGUgPT0gJ0YnICYmIHRpcG9BcmNoaXZvIHx8IHRpcG9SZXBvcnRlICE9ICdGJyBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBvcGVyYWNpb25lc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvbiBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiIG5hbWU9XCJvcGVyYWNpb25cIiBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvcGVyYWNpb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJ2YWxvci52YWx1ZVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsb3IubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRSdcIj5cbiAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cImNvcnJlb1wiIHR5cGU9XCJ0ZXh0XCIgW2Rpc2FibGVkXT1cImJsb3F1ZWFyQ29ycmVvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7J2NvcnJlbycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wLWZpZWxkc2V0PlxuICAgICAgICBcblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm0tMiBtdC00IHAtYnV0dG9uIHAtYnV0dG9uLW91dGxpbmVkIGJhY2tncm91bmQtMTAwXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInZhbGlkYXJDb250cm9sRnVuY2lvbmFsaWRhZCgnZWplY3JlcG86c2VudGVuY2lhJylcIiBsYWJlbD1cIlZlciBzZW50ZW5jaWFcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWV5ZS1vcGVuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VudGVuY2lhKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ0UnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1lbnZlbG9wZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VudmlhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRCcgJiYgcmVwb3J0ZS5tb21lbnRvICE9ICdEJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2hlY2tcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJSZXBvcnRlKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ0QnICYmIHJlcG9ydGUubW9tZW50byA9PSAnRCdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWNoZWNrXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2dlbmVyYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZGVzY2FyZ2FyUmVwb3J0ZVNpbkhpbG8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cInRpcG9SZXBvcnRlID09ICdBJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2hlY2tcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJnZW5lcmFyVGFibGEoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPCEtLXB0ZSBwcm9jZXNvIGV4dGVybm8tLT5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0gJ00nIHx8IG9wZXJhY2lvbiA9PSAnTVAnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1lbnZlbG9wZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VudmlhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnUCdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWZvbGRlci1vcGVuXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfcHVibGljYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZW52aWFyU2VndW5kb1BsYW5vKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24tcmFpc2VkXCIgKm5nSWY9XCJvcGVyYWNpb24gPT0nUydcIiAgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1jaGVja1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2dlbmVyYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZW52aWFyU2VndW5kb1BsYW5vKClcIj48L2J1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicGFuZWwgPT0gJ3Jlc3VsdGFkbydcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnaGlzdG9yaWNvJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtYmFzZSBtdC0yIG1sLTJcIj57eydkZXRhbGxlJyB8IHRyYW5zbGF0ZX19IHt7J3NlZ3VuZG9wbGFubycgfCB0cmFuc2xhdGV9fTwvaDQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBmb250LXNlbWlib2xkIGZsZXgtc2hyaW5rLTAgbWwtNFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVncmVzYXJTZWd1bmRvUGxhbm8oKVwiIGxhYmVsPVwie3snbGlua19yZWdyZXNhcicgfCB0cmFuc2xhdGV9fVwiID5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIElucHV0Z3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJlbGVtZW50b0JvcnJhci5pbmljaWFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCI+PC9wLWNhbGVuZGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ2ZlY2hhaW5pY2lhbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZWxlbWVudG9Cb3JyYXIudGVybWluYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIj48L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eygnZmVjaGFmaW5hbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIFtyZWFkb25seV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVsZW1lbnRvQm9ycmFyLm5vbWJyZUVzdGFkb1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7KCdlc3RhZG8nKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0xMiBsZzpjb2wtMTJcIiAqbmdJZj1cImVsZW1lbnRvQm9ycmFyLmVzdGFkbyA9PSAnRSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ21lbnNhamUnKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJtaW4tdy1mdWxsIHAtaW5wdXR0ZXh0YXJlYSBwLWlucHV0dGV4dCBwLWNvbXBvbmVudCBwLWVsZW1lbnQgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjVcIiBjb2xzPVwiMzBcIiBwSW5wdXRUZXh0YXJlYSBbKG5nTW9kZWwpXT1cImVsZW1lbnRvQm9ycmFyLmFyY2hpdm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibWwtMiBwLWJ1dHRvbiBwLWJ1dHRvbi1yYWlzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudG9Cb3JyYXIuZXN0YWRvID09ICdUJ1wiIGljb249XCJwaSBwaS1kb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2Rlc2NhcmdhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJBcmNoaXZvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtbC0yIHAtYnV0dG9uLW91dGxpbmVkXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1iaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19lbGltaW5hcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbGltaW5hclNlZ3VuZG9QbGFubygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInRpcG9SZXBvcnRlID09ICdBJ1wiID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgbWItM1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gQm90b25lcyBkZXNjYXJnYSAtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWZpbGVcIiAoY2xpY2spPVwiZXhwb3J0QXJjaGl2bygnY3N2JylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1leHBvcnQgYm9yZGVyLXNvbGlkLTEgYm9yZGVyLWNvbG9yLTQwMCBtbC0zIHctYXV0b1wiIHBUb29sdGlwPVwiQ1NWXCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlLWV4Y2VsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydEFyY2hpdm8oJ3hscycpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBtbC0yIGJhY2tncm91bmQtMTAwIHctYXV0b1wiIHBUb29sdGlwPVwiWExTXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlLXBkZlwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleHBvcnRBcmNoaXZvKCdwZGYnKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgbWwtMiB3LWF1dG9cIiBwVG9vbHRpcD1cIlBERlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdGFSZWdpc3Ryb1wiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiIFt0b3RhbFJlY29yZHNdPVwibGlzdGFSZWdpc3Ryby5sZW5ndGhcIiBbcGFnaW5hdG9yXT1cImxpc3RhUmVnaXN0cm8ubGVuZ3RoID4gMTBcIiA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJmb25kb1RhYmxhUGluY2lwYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBjb2wuaGVhZGVyIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVudHJhZGE+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBlbnRyYWRhW2NvbC5maWVsZF0gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInAtMyBmb250LW1lZGl1bSBlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J21lbnNhamV0YWJsYXZhY2lhJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9wLWRpYWxvZz5cbjxhcHAtcG9wdXAtc2VudGVuY2lhIFtyZXBvcnRlXT1cInJlcG9ydGVcIiBbcGFyYW1ldHJvc109XCJwYXJhbWV0cm9zXCIgW21vc3RyYXJQb3B1cF09XCJtb3N0cmFyUG9wdXBTZW50ZW5jaWFcIlxuICAgIChyZWdyZXNhcik9XCJyZWdyZXNhclNlbnRlbmNpYSgkZXZlbnQpXCI+PC9hcHAtcG9wdXAtc2VudGVuY2lhPiJdfQ==
|
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtcmVwb3J0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3dlYmNvbW1vbi9wb3B1cHMvcG9wdXAtcmVwb3J0ZS9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvd2ViY29tbW9uL3BvcHVwcy9wb3B1cC1yZXBvcnRlL3BvcHVwLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQVksY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBUW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JMLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQs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VSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwrTkFKbkIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLDBCQ3hDbEUsOG9oQkFpUmlFLHVMRDNPckQsWUFBWSxxVEFBRSxZQUFZLCswQkFBRSxrQkFBa0IsMFBBQUUsZUFBZSxpbEJBQUUsV0FBVyxnbUVBQUUsMkJBQTJCLG9FQUFFLGVBQWUsMkZBQVksY0FBYyw2UEFBRSxpQkFBaUIsMHZCQUFFLGVBQWUseUhBQUUsY0FBYyw0cUNBQUUsY0FBYywwZ0RBQUUsaUJBQWlCLDhVQUFFLHVCQUF1Qix5SUFBRSxXQUFXLGluQkFBRSxnQkFBZ0IscUdBQUUsYUFBYTs7MkZBTWpULHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxjQUMvUyxJQUFJLGFBQ0wsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO3dpQkFNaEQsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNXLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEdlbmVyYWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvZ2VuZXJhbC5waXBlJztcbmltcG9ydCB7IEdlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9nZW5lcmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VuZXJhbE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvR2VuZXJhbE1vZGVsJztcbmltcG9ydCB7IENhcmdhckFyY2hpdm9zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvY2FyZ2FyLWFyY2hpdm9zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW5jcmlwdGFkb0Jhc2ljb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljaW9zL2VuY3JpcHRhZG8tYmFzaWNvLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVudUl0ZW0sIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgUmVwb3J0ZUZ1ZW50ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9yZXBvcnRlLWZ1ZW50ZS5waXBlJztcbmltcG9ydCB7IEVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWplY3VjaW9ucmVwb3J0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydGVGdWVudGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NlZ3VyaWRhZC9tb2RlbG9zL1JlcG9ydGVGdWVudGVNb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnRlRW50cmFkYU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZUVudHJhZGFNb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnRlU29wb3J0ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZVNvcG9ydGUnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVsb3MvdGFibGUtY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDYXJnYXJDb250cm9sRnVuY2lvbmFsaWRhZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy9jYXJnYXItY29udHJvbC1mdW5jaW9uYWxpZGFkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xuaW1wb3J0IHsgQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hY2NvcmRpb24nO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbXBvbmVudGVzL3RlbXBsYXRlLXRhYmxhLXZhY2lhL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudCc7aW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGaWVsZHNldE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmllbGRzZXQnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IFBvcHVwU2VudGVuY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wdXAtc2VudGVuY2lhL3BvcHVwLXNlbnRlbmNpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG9hdExhYmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9mbG9hdGxhYmVsJztcbmltcG9ydCB7IERhdGFFeHBvcnRlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL2RhdGEtZXhwb3J0ZXItdGFibGUudXRpbHMnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcG9wdXAtcmVwb3J0ZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBBY2NvcmRpb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgRGF0ZVBpcGUsIEZpZWxkc2V0TW9kdWxlLCBJbnB1dE51bWJlck1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBEcm9wZG93bk1vZHVsZSwgQ2FsZW5kYXJNb2R1bGUsIFJhZGlvQnV0dG9uTW9kdWxlLCBQb3B1cFNlbnRlbmNpYUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEZsb2F0TGFiZWxNb2R1bGUsIFRvb2x0aXBNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsIENvbmZpcm1hdGlvblNlcnZpY2UsIERhdGFFeHBvcnRlcl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcHVwLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3B1cC1yZXBvcnRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUG9wdXBSZXBvcnRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgbW9zdHJhciA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYXBsaWNhY2lvbjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcmVwb3J0ZTogUmVwb3J0ZUZ1ZW50ZU1vZGVsID0gbmV3IFJlcG9ydGVGdWVudGVNb2RlbDtcbiAgQElucHV0KCkgcHVibGljIGVudHJhZGFzUHVudG9Qcm9jZXNvOiBhbnlbXT1bXTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWdyZXNhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHBhbmVsOiBzdHJpbmcgPSAnZW50cmFkYSc7XG4gIHB1YmxpYyBvcGVyYWNpb246IHN0cmluZztcbiAgcHVibGljIGxpc3RhRW50cmFkYTogUmVwb3J0ZUVudHJhZGFNb2RlbFtdID0gW107XG4gIHB1YmxpYyBsaXN0YVNlZ3VuZG9QbGFubzogYW55W10gPSBbXTtcbiAgcHVibGljIHBhcmFtZXRyb3M6IGFueVtdID0gW107XG4gIHB1YmxpYyBlbGVtZW50b0JvcnJhcjogYW55ID0ge307XG4gIHB1YmxpYyBnZW5lcmFjaW9uZXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBvcGVyYWNpb25lczogYW55W10gPSBbXTtcbiAgcHVibGljIG1vc3RyYXJPdHJhU2VsZWNjaW9uOiBib29sZWFuO1xuXHRwdWJsaWMgbW9zdHJhckFyY2hpdm9zU29wb3J0ZTogYm9vbGVhbjtcblx0cHVibGljIG1vc3RyYXJDb25zdWx0YUNhc29FcnJvcjogYm9vbGVhbjtcbiAgcHVibGljIGNvcnJlbzogc3RyaW5nO1xuICBwdWJsaWMgdGlwb1JlcG9ydGU6IHN0cmluZztcbiAgcHVibGljIHNvcG9ydGVCYXNlOiBzdHJpbmc7XG4gIHB1YmxpYyB0aXBvQXJjaGl2bzogc3RyaW5nO1xuICBwdWJsaWMgYmxvcXVlYXJDb3JyZW86IGJvb2xlYW47XG4gIHB1YmxpYyBtYXBhVGlwb0FyY2hpdm9zO1xuICBwdWJsaWMgbGlzdGFkb0FyY2hpdm9Tb3BvcnRlOiBSZXBvcnRlU29wb3J0ZU1vZGVsW10gPSBbXTtcbiAgcHVibGljIG1vc3RyYXJQb3B1cFNlbnRlbmNpYTogYm9vbGVhbjtcblxuICBwdWJsaWMgaXRlbXM6IE1lbnVJdGVtW107XG4gIHB1YmxpYyB2aXN0YVZpc3VhbGl6YXI6IHN0cmluZztcbiAgcGFnaW5hdG9yPXtyb3dzOjIsdG90YWxSZWNvcmRzOjB9XG4gIHB1YmxpYyBtb3N0cmFyUGFyYW1ldHJvczogYm9vbGVhbjtcblx0cHVibGljIG1vc3RyYXJRdWVEZXNlYUhhY2VyOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb2x1bW5hczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBwdWJsaWMgbGlzdGFSZWdpc3RybzogYW55W10gPSBbXTtcblxuICBwdWJsaWMgZXhpc3RlSmFzcGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbHM6IGFueVtdO1xuICBleHBvcnRDb2x1bW5zOiBhbnlbXTtcbiAgbm9tYnJlQXJjaGl2byA9ICdUYWJsYSc7XG4gIGNvbHVtbmFzRXhwb3J0RXhjZWw6IGFueVtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ2VuZXJhbFNlcnZpY2U6IEdlbmVyYWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlOiBFamVjdWNpb25SZXBvcnRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIG5vdGlmaWNhY2lvblNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjYXJnYXJBcmNoaXZvU2VydmljZTogQ2FyZ2FyQXJjaGl2b3NTZXJ2aWNlLFxuICAgICAgICAgICAgICBwdWJsaWMgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29udHJvbEZ1bmNpb25hbGlkYWQ6IENhcmdhckNvbnRyb2xGdW5jaW9uYWxpZGFkU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbmNyaXB0YWRvQmFzaWNvOiBFbmNyaXB0YWRvQmFzaWNvU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXBvcnRlRnVlbnRlUGlwZTogUmVwb3J0ZUZ1ZW50ZVBpcGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgZ2VuZXJhbFBpcGU6IEdlbmVyYWxQaXBlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcmdhckFyY2hpdm86IENhcmdhckFyY2hpdm9zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkYXRhRXhwb3J0ZXI6IERhdGFFeHBvcnRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbmNyaXB0YWRvckFyY2hpdm86IEVuY3JpcHRhZG9CYXNpY29TZXJ2aWNlLCkgeyB9ICAgICAgICAgXG4gIFxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hcGFUaXBvQXJjaGl2b3MgPSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk1BUEFfVElQT19BUkNISVZPUzsgIFxuICAgIHRoaXMuYXBsaWNhY2lvbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ2FwbGljYWNpb24nKVxuICB9XG5cbiAgYXN5bmMgbW9zdHJhclBvcHVwKCl7XG4gICAgdGhpcy5wYW5lbCA9ICdlbnRyYWRhJztcbiAgICB0aGlzLm1vc3RyYXJRdWVEZXNlYUhhY2VyID0gZmFsc2U7XG4gICAgdGhpcy50aXBvUmVwb3J0ZSA9IG51bGw7XG4gICAgdGhpcy5tb3N0cmFyQ29uc3VsdGFDYXNvRXJyb3IgPSB0aGlzLnZhbGlkYXJDb250cm9sRnVuY2lvbmFsaWRhZCgncmVwb3J0ZTp2ZXJzZW50ZW5jaWFlcnJvcicpO1xuICAgIHRoaXMub3BlcmFjaW9uID0gbnVsbDtcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyID0ge31cbiAgICB0aGlzLmxpc3RhU2VndW5kb1BsYW5vID0gW11cbiAgICB0aGlzLmxpc3RhUmVnaXN0cm8gPSBbXTtcbiAgICB0aGlzLmNvbHVtbmFzID0gW107XG4gICAgdGhpcy5leGlzdGVKYXNwZXIgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5yZXBvcnRlLmxsYXZlKSB7XG4gICAgICB2YXIgcmVzdWx0YWRvID0gYXdhaXQgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5nZXREYXRvc0VqZWN1Y2lvblJlcG9ydGUoe2xsYXZlOiB0aGlzLnJlcG9ydGUubGxhdmV9KS50b1Byb21pc2UoKTtcbiAgICAgIHRoaXMucmVwb3J0ZSA9IHJlc3VsdGFkby5yZXBvcnRlO1xuICAgICAgZGVsZXRlIHRoaXMucmVwb3J0ZVsnYWxpYXMnXVxuICAgICAgdGhpcy5jYXJnYXJMaXN0YUVudHJhZGEoKTtcbiAgICAgIHRoaXMudHJhZXJTZWd1bmRvUGxhbm8oKTtcbiAgICAgIHRoaXMuY2FyZ2FyQ29ycmVvKCk7XG4gICAgICBhd2FpdCB0aGlzLnZhbGlkYXJFeGlzdGVKYXNwZXIoKTtcbiAgICAgIGF3YWl0IHRoaXMuY2FyZ2FyR2VuZXJhY2lvbmVzKCk7XG4gICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcbiAgICB9XG4gICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gIH1cblxuICBjYXJnYXJNZW51KCl7XG4gICAgdGhpcy5pdGVtcyA9IFtcbiAgICAgIFxuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2VqZWN1Y2lvbicpLFxuICAgICAgICBpY29uOiAnZ2x5cGhpY29ucyBnbHlwaGljb25zLXBsdXMtc2lnbicsXG4gICAgICAgIGNvbW1hbmQ6IChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlzdGFWaXN1YWxpemFyID0gJ2VudHJhZGEnO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdzZWd1bmRvcGxhbm8nKSxcbiAgICAgICAgaWNvbjogJ2dseXBoaWNvbnMgZ2x5cGhpY29ucy1maWxlLW1pbnVzJyxcbiAgICAgICAgY29tbWFuZDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy52aXN0YVZpc3VhbGl6YXIgPSAnc2VndW5kb3BsYW5vJztcbiAgICAgICAgfSxcbiAgICAgICAgdmlzaWJsZTogdGhpcy5saXN0YVNlZ3VuZG9QbGFuby5sZW5ndGggPiAwLFxuICAgICAgfVxuICAgIF1cbiAgfVxuXG4gIGFzeW5jIGNhcmdhckdlbmVyYWNpb25lcygpe1xuICAgIHRoaXMuZ2VuZXJhY2lvbmVzID0gW107XG4gICAgaWYgKCB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS50aXR1bG9QYXJhbWV0cm8pICYmIHRoaXMuZXhpc3RlSmFzcGVyKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fSkFTUEVSRElOQU1JQ08sIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0pBU1BFUkRJTkFNSUNPfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmphc3BlckZpam8pICYmIHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLm1vZG9GaWpvKSl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0pBU1BFUkZJSk8sIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19HRU5FUkFDSU9OX0pBU1BFUkZJSk99KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuYXJjaGl2b1RvZG8pICYmIHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLmhvamFFeGNlbCkpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9FWENFTCwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fRVhDRUx9KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuYXJjaGl2b0luZGl2aWR1YWwpIHx8IHRoaXMucmVwb3J0ZS51bmljb0FyY2hpdm8gPT0gJ04nKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fUExBTlRJTExBLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9QTEFOVElMTEF9KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuc2VwYXJhZG9yKSl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX0FSQ0hJVk9QTEFOTywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX0dFTkVSQUNJT05fQVJDSElWT1BMQU5PfSlcbiAgICB9XG4gICAgaWYgKHRoaXMudXRpbHNTZXJ2aWNlLmlzTm90QmxhbmsodGhpcy5yZXBvcnRlLm5vbWJyZVRhYmxhKSl7XG4gICAgICB0aGlzLmdlbmVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1RBQkxBLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9UQUJMQX0pXG4gICAgfVxuICAgIGlmICh0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS50YWdFbmNhYmV6YWRvKSAmJiB0aGlzLnV0aWxzU2VydmljZS5pc05vdEJsYW5rKHRoaXMucmVwb3J0ZS5lc3RydWN0dXJhUmVnaXN0cm8pKXtcbiAgICAgIHRoaXMuZ2VuZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fWE1MLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9YTUx9KVxuICAgIH1cbiAgICBpZiAodGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuYXJjaGl2b0V4Y2VsQ29sdW1uYXJpbykgJiYgdGhpcy51dGlsc1NlcnZpY2UuaXNOb3RCbGFuayh0aGlzLnJlcG9ydGUuaG9qYUV4Y2VsQ29sdW1uYXJpbykpe1xuICAgICAgdGhpcy5nZW5lcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9DT0xVTU5BUklPLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfR0VORVJBQ0lPTl9DT0xVTU5BUklPfSlcbiAgICB9XG4gIH1cblxuICBhc3luYyB2YWxpZGFyRXhpc3RlSmFzcGVyKCl7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBkYXRhID0gYXdhaXQgdGhpcy5jYXJnYXJBcmNoaXZvLmRlc2NhcmdhckFyY2hpdm8odGhpcy5lbmNyaXB0YWRvckFyY2hpdm8uZW5jcmlwdGFyKCdyZXBvcnRlcy8nICsgdGhpcy5yZXBvcnRlLmxsYXZlICsgJy5qcnhtbCcpLCAncnV0YV9wbGFudGlsbGFzJywgdGhpcy5hcGxpY2FjaW9uKS50b1Byb21pc2UoKTtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuZXhpc3RlSmFzcGVyID0gdHJ1ZTtcbiAgICAgIH0gICBcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5leGlzdGVKYXNwZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjYXJnYXJPcGVyYWNpb25lcygpe1xuICAgIHRoaXMuYmxvcXVlYXJDb3JyZW8gPSB0cnVlO1xuICAgIHRoaXMub3BlcmFjaW9uZXMgPSBbXTtcbiAgICBpZiAodGhpcy50aXBvUmVwb3J0ZSl7XG4gICAgICBpZiAodGhpcy50aXBvUmVwb3J0ZSAhPSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fVEFCTEEpIHtcbiAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fREVTQ0FSR0FSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX0RFU0NBUkdBUn0pO1xuICAgICAgXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXJDb250cm9sRnVuY2lvbmFsaWRhZCgncmVwb3J0ZTplbnZpb2NvcnJlbycpKXtcbiAgICAgICAgICB0aGlzLmJsb3F1ZWFyQ29ycmVvID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcGVyYWNpb25lcy5wdXNoKHt2YWx1ZTogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5PUEVSQUNJT05fRU5WSUFSQ09SUkVPLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19PUEVSQUNJT05fRU5WSUFSQ09SUkVPfSk7XG4gICAgICAgIGlmICh0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk1PTUVOVE9TX1NFR1VORE9fUExBTk8gPT0gdGhpcy5yZXBvcnRlLm1vbWVudG8pIHtcbiAgICAgICAgICB0aGlzLm9wZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk9QRVJBQ0lPTl9TRUdVTkRPUExBTk8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkRFU0NfT1BFUkFDSU9OX1NFR1VORE9QTEFOT30pO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodGhpcy50aXBvUmVwb3J0ZSA9PSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLkdFTkVSQUNJT05fSkFTUEVSRklKTyAmJiB0aGlzLnJlcG9ydGUubW9kb0Zpam8gPT0gJ1AnKVxuICAgICAgICAgIHx8IHRoaXMudGlwb1JlcG9ydGUgPT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5HRU5FUkFDSU9OX1BMQU5USUxMQSAmJiB0aGlzLnJlcG9ydGUuZGVzY2FyZ2FyRnVlbnRlICE9ICdTJyl7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKHRoaXMucmVwb3J0ZS5hcmNoaXZvSHRtbCAmJiB0aGlzLnJlcG9ydGUuY2FtcG9FbWFpbCl7XG4gICAgICAgICAgICB0aGlzLm9wZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk9QRVJBQ0lPTl9FTlZJT01BU0lWTyxcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19PUEVSQUNJT05fRU5WSU9NQVNJVk99KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMucmVwb3J0ZS5wdWJsaWNhY2lvbiAmJiB0aGlzLnJlcG9ydGUuY2FtcG9QdWJsaWNhKXtcbiAgICAgICAgICAgIHRoaXMub3BlcmFjaW9uZXMucHVzaCh7dmFsdWU6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuT1BFUkFDSU9OX1BVQkxJQ0FSLFxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5ERVNDX09QRVJBQ0lPTl9QVUJMSUNBUn0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5yZXBvcnRlLmFyY2hpdm9IdG1sICYmIHRoaXMucmVwb3J0ZS5jYW1wb0VtYWlsICYmIHRoaXMucmVwb3J0ZS5wdWJsaWNhY2lvbiAmJiB0aGlzLnJlcG9ydGUuY2FtcG9QdWJsaWNhICl7XG4gICAgICAgICAgICB0aGlzLm9wZXJhY2lvbmVzLnB1c2goe3ZhbHVlOiB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLk9QRVJBQ0lPTl9DT1JSRU9QVUJMSUNBUixcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuREVTQ19PUEVSQUNJT05fQ09SUkVPUFVCTElDQVJ9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9wdGUgcHJvY2VzbyBleHRlcm5vXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICB9XG5cbiAgY2FtYmlvVmFsb3JMaXN0YShldmVudCwgcGFyYW1ldHJvKXtcbiAgICBpZiAoZXZlbnQudmFsdWUpe1xuICAgICAgbGV0IGxpc3RhID0gZXZlbnQudmFsdWUuc3BsaXQoJzonKVxuICAgICAgaWYgKHBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnTicpe1xuICAgICAgICBwYXJhbWV0cm8udW5pb25EVE8udmFsb3IgPSBwYXJzZUludChsaXN0YVswXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmFtZXRyby51bmlvbkRUTy52YWxvciA9IGxpc3RhWzBdXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuICB9XG4gIFxuICBjYW1iaW9Tb3BvcnRlQmFzZShldmVudCkge1xuICAgIGlmICh0aGlzLnNvcG9ydGVCYXNlID09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FyZ2FyT3BlcmFjaW9uZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9IFxuICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UucXVlcnlGb3JPYmplY3QobmV3IEdlbmVyYWxNb2RlbCgnUmVwb3J0ZVNvcG9ydGVEVE8nLCBudWxsLCBmYWxzZSwge2xsYXZlVGFibGE6IHRoaXMuc29wb3J0ZUJhc2V9KSkuc3Vic2NyaWJlKGFyY2hpdm9CYXNlID0+IHtcbiAgICAgIGlmIChhcmNoaXZvQmFzZSA9PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuc29wb3J0ZUJhc2UgPSBhcmNoaXZvQmFzZS5sbGF2ZVRhYmxhO1xuXHRcdFx0dGhpcy5yZXBvcnRlLmFyY2hpdm9JbmRpdmlkdWFsID0gYXJjaGl2b0Jhc2UuYXJjaGl2b0luZGl2aWR1YWw7XG5cdFx0XHR0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcbiAgICB9KTtcbiAgICBcbiAgfVxuXG4gIGNhcmdhckNvcnJlbygpe1xuICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UucXVlcnlGb3JPYmplY3QobmV3IEdlbmVyYWxNb2RlbCgnVXN1YXJpb0RUTycsIG51bGwsIHRydWUsIHtsb2dpbjogdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbktleSgndXN1YXJpbycpfSkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuY29ycmVvID0gZGF0YS5lbWFpbDtcbiAgICB9KVxuICB9XG5cbiAgY2FyZ2FyTGlzdGFFbnRyYWRhKCl7XG4gICAgdGhpcy5tb3N0cmFyUGFyYW1ldHJvcyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmVudHJhZGFzUHVudG9Qcm9jZXNvLmxlbmd0aCA+IDApe1xuICAgICAgdGhpcy5wYXJhbWV0cm9zID0gdGhpcy5lbnRyYWRhc1B1bnRvUHJvY2VzbzsgIFxuICAgICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUycpe1xuICAgICAgICAgIHRoaXMubW9zdHJhclBhcmFtZXRyb3MgPSAgdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnRicgJiYgZWxlbWVudC51bmlvbkRUTy52YWxvciAhPSBudWxsKXtcbiAgICAgICAgICBlbGVtZW50LnVuaW9uRFRPLnZhbG9yID0gbmV3IERhdGUoZWxlbWVudC51bmlvbkRUTy52YWxvcilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRoaXMudXRpbHNTZXJ2aWNlLnJlc2l6ZVdpbmRvd0lGcmFtZSgpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2Uub2J0ZW5lckxpc3RhRW50cmFkYUVqZWN1Y2lvbih0aGlzLnJlcG9ydGUpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5wYXJhbWV0cm9zID0gZGF0YTtcbiAgICAgICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQudW5pb25EVE8uc29saWNpdGFyID09ICdTJyl7XG4gICAgICAgICAgICB0aGlzLm1vc3RyYXJQYXJhbWV0cm9zID0gIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LnVuaW9uRFRPLnRpcG9EYXRvID09ICdGJyAmJiBlbGVtZW50LnVuaW9uRFRPLnZhbG9yICE9IG51bGwpe1xuICAgICAgICAgICAgZWxlbWVudC51bmlvbkRUTy52YWxvciA9IG5ldyBEYXRlKGVsZW1lbnQudW5pb25EVE8udmFsb3IpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnV0aWxzU2VydmljZS5yZXNpemVXaW5kb3dJRnJhbWUoKTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdHJhZXJTZWd1bmRvUGxhbm8oKXtcbiAgICBsZXQgdXN1YXJpbyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3VzdWFyaW8nKVxuICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UucXVlcnlGb3JMaXN0KG5ldyBHZW5lcmFsTW9kZWwoJ0VqZWN1Y2lvblJlcG9ydGVEVE8nLCBudWxsLCBmYWxzZSwge1xuICAgICAgYWRpY2lvbmFkbzogdXN1YXJpbywgXG4gICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLnJlcG9ydGUubGxhdmV9KSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxpc3RhU2VndW5kb1BsYW5vID0gZGF0YTtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IudG90YWxSZWNvcmRzID0gdGhpcy5saXN0YVNlZ3VuZG9QbGFuby5sZW5ndGg7XG4gICAgICB9KVxuICB9XG4gIFxuICB2ZXJTZWd1bmRvUGxhbm8oZXZlbnQpe1xuICAgIHRoaXMuZWxlbWVudG9Cb3JyYXIgPSBldmVudC5kYXRhO1xuICAgIHRoaXMuZWxlbWVudG9Cb3JyYXIuZmVjaGFBZGljaW9uYWRvID0gdGhpcy5lbGVtZW50b0JvcnJhci5mZWNoYUFkaWNpb25hZG8gPyBuZXcgRGF0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyLmZlY2hhQWRpY2lvbmFkbykgOiBudWxsXG4gICAgdGhpcy5lbGVtZW50b0JvcnJhci5pbmljaWEgPSB0aGlzLmVsZW1lbnRvQm9ycmFyLmluaWNpYSA/IG5ldyBEYXRlKHRoaXMuZWxlbWVudG9Cb3JyYXIuaW5pY2lhKSA6IG51bGxcbiAgICB0aGlzLmVsZW1lbnRvQm9ycmFyLnRlcm1pbmEgPSB0aGlzLmVsZW1lbnRvQm9ycmFyLnRlcm1pbmEgPyBuZXcgRGF0ZSh0aGlzLmVsZW1lbnRvQm9ycmFyLnRlcm1pbmEpIDogbnVsbFxuICAgIHRoaXMub3BlcmFjaW9uID0gJ2hpc3RvcmljbydcbiAgICB0aGlzLnBhbmVsID0gJ3Jlc3VsdGFkbydcbiAgfVxuXG4gIGVsaW1pbmFyU2VndW5kb1BsYW5vKGV2ZW50KXtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCxcbiAgICAgIG1lc3NhZ2U6ICB0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVJfQ09ORklSTUFSLFxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuZ2VuZXJhbFBpcGUuU0lfREVTQyxcbiAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbmZpcm1hcicpLFxuICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZWxpbWluYXJFamVjdWNpb25SZXBvcnRlKHRoaXMuZWxlbWVudG9Cb3JyYXIpLnN1YnNjcmliZShkYXRhID0+e1xuICAgICAgICAgIHRoaXMubm90aWZpY2FjaW9uU2VydmljZS5zaG93SW5mbyh0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVIpXG4gICAgICAgICAgdGhpcy5yZWdyZXNhclNlZ3VuZG9QbGFubygpO1xuICAgICAgICAgIHRoaXMudHJhZXJTZWd1bmRvUGxhbm8oKTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZGVzY2FyZ2FyQXJjaGl2bygpe1xuICAgIHRoaXMuY2FyZ2FyQXJjaGl2b1NlcnZpY2UuZGVzY2FyZ2FyQXJjaGl2byh0aGlzLmVuY3JpcHRhZG9CYXNpY28uZW5jcmlwdGFyKHRoaXMuZWxlbWVudG9Cb3JyYXIuYXJjaGl2bykpLnN1YnNjcmliZShibG9iID0+IHtcbiAgICAgIFxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgY29uc3Qgb2JqZWN0VXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxuICAgICAgYS5ocmVmID0gb2JqZWN0VXJsXG4gICAgICBsZXQgcGFydGVzID0gdGhpcy5lbGVtZW50b0JvcnJhci5hcmNoaXZvLnNwbGl0KFwiLlwiKTtcbiAgICAgIGxldCBleHRlbnNpb24gPSBwYXJ0ZXNbcGFydGVzLmxlbmd0aCAtIDFdO1xuICAgICAgYS5kb3dubG9hZCA9IHRoaXMudXRpbHNTZXJ2aWNlLmdlbmVyYXJMbGF2ZSgpICsgJy4nICsgZXh0ZW5zaW9uO1xuICAgICAgYS5jbGljaygpO1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xuICAgIH0pO1xuICB9XG5cbiAgY2FtYmlvVGlwb1JlcG9ydGUoZXZlbnQpe1xuICAgIHRoaXMubW9zdHJhclF1ZURlc2VhSGFjZXIgPSB0cnVlO1xuICAgIGlmICh0aGlzLnRpcG9SZXBvcnRlID09IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuR0VORVJBQ0lPTl9QTEFOVElMTEEgJiYgdGhpcy5yZXBvcnRlLnVuaWNvQXJjaGl2byA9PSAnTicgKXtcbiAgICAgIHRoaXMubW9zdHJhckFyY2hpdm9zU29wb3J0ZSA9IHRydWU7XG4gICAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yTGlzdChuZXcgR2VuZXJhbE1vZGVsKCdSZXBvcnRlU29wb3J0ZURUTycsIG51bGwsIGZhbHNlLCB7XG4gICAgICAgIHJlcG9ydGVGdWVudGU6IHRoaXMucmVwb3J0ZS5sbGF2ZSxcbiAgICAgICAgdGlwbzonUydcbiAgICAgIH0pKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMubGlzdGFkb0FyY2hpdm9Tb3BvcnRlID0gZGF0YTtcbiAgICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9zdHJhckFyY2hpdm9zU29wb3J0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpc3RhZG9BcmNoaXZvU29wb3J0ZSA9IFtdO1xuICAgICAgICB0aGlzLnRpcG9BcmNoaXZvID0gbnVsbDtcbiAgICAgICAgdGhpcy5vcGVyYWNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmNhcmdhck9wZXJhY2lvbmVzKCk7XG4gICAgICAgIC8vdGhpcy5kZXNjYXJnYXJBcmNoaXZvID0gbnVsbDtcbiAgICB9IFxuICB9XG5cbiAgY2FtYmlvVGlwb0FyY2hpdm8oZXZlbnQpe1xuICAgIHRoaXMuY2FyZ2FyT3BlcmFjaW9uZXMoKTtcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VndW5kb1BsYW5vKCl7XG4gICAgdGhpcy5lbGVtZW50b0JvcnJhciA9IHt9XG4gICAgdGhpcy5wYW5lbCA9ICdlbnRyYWRhJ1xuICAgIHRoaXMub3BlcmFjaW9uID0gbnVsbDtcbiAgfVxuXG4gIG9jdWx0YXIoKXtcbiAgICB0aGlzLnRpcG9SZXBvcnRlID0gbnVsbDtcbiAgICB0aGlzLm1vc3RyYXIgPSBmYWxzZTtcbiAgICB0aGlzLnJlZ3Jlc2FyLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgdmFsaWRhckNvbnRyb2xGdW5jaW9uYWxpZGFkKHZhbG9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sRnVuY2lvbmFsaWRhZC5nZXRDb250cm9sRnVuY2lvbmFsaWRhZCh2YWxvcik7XG4gIH1cblxuICBzZW50ZW5jaWEoKXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IHRydWVcbiAgfVxuXG4gIHJlZ3Jlc2FyU2VudGVuY2lhKGV2ZW50KXtcbiAgICB0aGlzLm1vc3RyYXJQb3B1cFNlbnRlbmNpYSA9IGZhbHNlO1xuICB9XG5cbiAgZW52aWFyU2VndW5kb1BsYW5vKCl7XG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBsaXN0YUVudHJhZGEucHVzaChlbGVtZW50LnVuaW9uRFRPKVxuICAgIH0pXG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5lbnZpYXJTZWd1bmRvUGxhbm8oe1xuICAgICAgcmVwb3J0ZTogdGhpcy5yZXBvcnRlLFxuICAgICAgcGFyYW1ldHJvczogbGlzdGFFbnRyYWRhLFxuICAgICAgdGlwb1JlcG9ydGU6IHRoaXMudGlwb1JlcG9ydGUsXG4gICAgICBvcGVyYWNpb246IHRoaXMub3BlcmFjaW9uLFxuICAgICAgY29ycmVvOiB0aGlzLmNvcnJlbyxcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgIH0pXG4gIH1cblxuICBkZXNjYXJnYXJSZXBvcnRlKCl7XG5cbiAgICBpZignRicgPT0gdGhpcy50aXBvUmVwb3J0ZSl7XG4gICAgICB0aGlzLnJlcG9ydGUudGlwb0FyY2hpdm8gPSB0aGlzLnRpcG9BcmNoaXZvO1xuICAgIH1cblxuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIGZvcih2YXIgZWxlbWVudCBvZiB0aGlzLnBhcmFtZXRyb3MpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpXG4gICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnQicgJiYgZWxlbWVudC51bmlvbkRUTy50aXBvID09ICdEJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdmFsaWRhY2lvbicpXG4gICAgICAgIHZhciB2YWxvcjogc3RyaW5nID0gZWxlbWVudC51bmlvbkRUTy52YWxvciArIFwiXCI7XG4gICAgICAgIGlmICh2YWxvci5lbmRzV2l0aCgnLjAnKSkge1xuICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBwYXJzZUludChlbGVtZW50LnVuaW9uRFRPLnZhbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9XG4gICAgdGhpcy5lamVjdWNpb25SZXBvcnRlU2VydmljZS5kZXNjYXJnYXJSZXBvcnRlKHtcbiAgICAgIHJlcG9ydGU6IHRoaXMucmVwb3J0ZSxcbiAgICAgIHBhcmFtZXRyb3M6IGxpc3RhRW50cmFkYSxcbiAgICAgIHRpcG9SZXBvcnRlOiB0aGlzLnRpcG9SZXBvcnRlLFxuICAgICAgb3BlcmFjaW9uOiB0aGlzLm9wZXJhY2lvbixcbiAgICAgIGNvcnJlbzogdGhpcy5jb3JyZW8sXG4gICAgICBlbmRwb2ludEdlbmVyYWRvclJlcG9ydGVzOiAnJ1xuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkYXRhID0+e1xuICAgICAgICBjb25zb2xlLmxvZyhkYXRhKVxuICAgICAgICB0aGlzLm5vdGlmaWNhY2lvblNlcnZpY2Uuc2hvd0luZm8oZGF0YS5tZW5zYWplKVxuICAgICAgICBpZiAoIWRhdGEuYXJjaGl2bykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWNvZGVkRGF0YSA9IGF0b2IoZGF0YS5hcmNoaXZvKTtcbiAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoZGVjb2RlZERhdGEubGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWNvZGVkRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gZGVjb2RlZERhdGEuY2hhckNvZGVBdChpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBvYmpldG8gQmxvYiBjb24gbG9zIGJ5dGVzIGRlY29kaWZpY2Fkb3MgeSBlbCB0aXBvIE1JTUUgZGVsIGFyY2hpdm9cbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGRhdGEubWltZSB9KTtcblxuICAgICAgICAvLyBDcmVhIHVuYSBVUkwgZGVsIG9iamV0byBCbG9iXG4gICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAgICAgLy8gQ3JlYSB1biBlbmxhY2UgZGUgZGVzY2FyZ2EgeSBoYXogY2xpYyBlbiDDqWwgcGFyYSBpbmljaWFyIGxhIGRlc2NhcmdhXG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IGRhdGEubm9tYnJlQXJjaGl2byAgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIFxuICBkZXNjYXJnYXJSZXBvcnRlU2luSGlsbygpe1xuICAgIGNvbnNvbGUubG9nKCdkZXNjYXJnYXJSZXBvcnRlU2luSGlsbycpXG4gICAgbGV0IGxpc3RhRW50cmFkYSA9IFtdXG4gICAgdGhpcy5wYXJhbWV0cm9zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy50aXBvRGF0byA9PSAnQicgJiYgZWxlbWVudC51bmlvbkRUTy50aXBvID09ICdEJykge1xuICAgICAgICBpZiAoZWxlbWVudC51bmlvbkRUTy52YWxvci5lbmRzV2l0aCgnLjAnKSkge1xuICAgICAgICAgIGVsZW1lbnQudW5pb25EVE8udmFsb3IgPSBwYXJzZUludChlbGVtZW50LnVuaW9uRFRPLnZhbG9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdGFFbnRyYWRhLnB1c2goZWxlbWVudC51bmlvbkRUTylcbiAgICB9KVxuICAgIHRoaXMuZWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UuZGVzY2FyZ2FyUmVwb3J0ZSh7XG4gICAgICByZXBvcnRlOiB0aGlzLnJlcG9ydGUsXG4gICAgICBwYXJhbWV0cm9zOiBsaXN0YUVudHJhZGEsXG4gICAgICB0aXBvUmVwb3J0ZTogdGhpcy50aXBvUmVwb3J0ZSxcbiAgICAgIG9wZXJhY2lvbjogdGhpcy5vcGVyYWNpb24sXG4gICAgICBjb3JyZW86IHRoaXMuY29ycmVvLFxuICAgICAgZW5kcG9pbnRHZW5lcmFkb3JSZXBvcnRlczogJydcbiAgICB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogZGF0YSA9PntcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSlcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25TZXJ2aWNlLnNob3dJbmZvKGRhdGEubWVuc2FqZSlcbiAgICAgICAgY29uc3QgZGVjb2RlZERhdGEgPSBhdG9iKGRhdGEuYXJjaGl2byk7XG4gICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGRlY29kZWREYXRhLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZERhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IGRlY29kZWREYXRhLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gb2JqZXRvIEJsb2IgY29uIGxvcyBieXRlcyBkZWNvZGlmaWNhZG9zIHkgZWwgdGlwbyBNSU1FIGRlbCBhcmNoaXZvXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBkYXRhLm1pbWUgfSk7XG5cbiAgICAgICAgLy8gQ3JlYSB1bmEgVVJMIGRlbCBvYmpldG8gQmxvYlxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgICAgIC8vIENyZWEgdW4gZW5sYWNlIGRlIGRlc2NhcmdhIHkgaGF6IGNsaWMgZW4gw6lsIHBhcmEgaW5pY2lhciBsYSBkZXNjYXJnYVxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBkYXRhLm5vbWJyZUFyY2hpdm8gKyAnLicgKyBkYXRhLmV4dGVuc2lvbjtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5jbGljaygpO1xuXG4gICAgICAgIC8vIExpbXBpYSBsYSBVUkwgY3JlYWRhXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIGdlbmVyYXJUYWJsYSgpe1xuICAgIHRoaXMucGFuZWwgPSAncmVzdWx0YWRvJ1xuICAgIGxldCBsaXN0YUVudHJhZGEgPSBbXVxuICAgIHRoaXMuY29sdW1uYXMgPSBbXTtcbiAgICB0aGlzLnBhcmFtZXRyb3MuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGxpc3RhRW50cmFkYS5wdXNoKGVsZW1lbnQudW5pb25EVE8pXG4gICAgfSlcbiAgICB0aGlzLmVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLmdlbmVyYXJUYWJsYSh7cmVwb3J0ZTogdGhpcy5yZXBvcnRlLCBwYXJhbWV0cm9zOiBsaXN0YUVudHJhZGF9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB2YXIgY29sdW1uYTogVGFibGVDb2x1bW47XG4gICAgICBkYXRhLmNvbHVtbmFzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGNvbHVtbmEgPSB7XG4gICAgICAgICAgZmllbGQ6IGVsZW1lbnQubm9tYnJlLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgaGVhZGVyOiBlbGVtZW50Lm5vbWJyZSxcbiAgICAgICAgICB3aWR0aDogMzAwLFxuICAgICAgICAgIGNhbk9yZGVyOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbHVtbmFzLnB1c2goY29sdW1uYSlcbiAgICAgIH0pO1xuICAgICAgdGhpcy5saXN0YVJlZ2lzdHJvID0gZGF0YS5saXN0YVJlZ2lzdHJvO1xuICAgIH0pXG4gIH1cblxuICBjcmVhckNvbHVtbmFzRXhwb3J0YXIoKSB7XG4gICAgdGhpcy5leHBvcnRDb2x1bW5zID0gdGhpcy5jb2x1bW5hcy5tYXAoY29sID0+ICh7IHRpdGxlOiBjb2wuaGVhZGVyLCBkYXRhS2V5OiBjb2wuZmllbGQgfSkpO1xuICAgIHRoaXMuY29sdW1uYXNFeHBvcnRFeGNlbCA9IFtdO1xuICAgIGZvcihsZXQgY29sIG9mIHRoaXMuY29sdW1uYXMpIHtcbiAgICAgIHRoaXMuY29sdW1uYXNFeHBvcnRFeGNlbC5wdXNoKGNvbC5maWVsZCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0QXJjaGl2byh0aXBvQXJjaGl2bzogc3RyaW5nKSB7XG4gICAgdGhpcy5jcmVhckNvbHVtbmFzRXhwb3J0YXIoKTtcbiAgICBpZiAodGlwb0FyY2hpdm8gPT09ICdwZGYnKSB7XG4gICAgICB0aGlzLmRhdGFFeHBvcnRlci5leHBvcnRQZGYodGhpcy5saXN0YVJlZ2lzdHJvLCB0aGlzLmV4cG9ydENvbHVtbnMsIHRoaXMubm9tYnJlQXJjaGl2byk7XG4gICAgfSBlbHNlIGlmICh0aXBvQXJjaGl2byA9PT0gJ3hscycpIHtcbiAgICAgIHRoaXMuZGF0YUV4cG9ydGVyLmV4cG9ydEV4Y2VsQ29sdW1uYXModGhpcy5saXN0YVJlZ2lzdHJvLCB0aGlzLm5vbWJyZUFyY2hpdm8sIHRoaXMuY29sdW1uYXNFeHBvcnRFeGNlbCk7XG4gICAgfSBlbHNlIGlmICh0aXBvQXJjaGl2byA9PT0gJ2NzdicpIHtcbiAgICAgIHRoaXMuZGF0YUV4cG9ydGVyLmV4cG9ydENTVih0aGlzLmxpc3RhUmVnaXN0cm8sIHRoaXMuY29sdW1uYXNFeHBvcnRFeGNlbCwgdGhpcy5ub21icmVBcmNoaXZvICk7XG4gICAgfVxuICB9XG59XG4iLCI8cC1jb25maXJtUG9wdXA+PC9wLWNvbmZpcm1Qb3B1cD5cbjxwLWRpYWxvZyBpZD0ncG9wdXBSZXBvcnRlJyBoZWFkZXI9XCJ7eydyZXBvcnRlc2dlbmVyYWxlcycgfCB0cmFuc2xhdGV9fVwiIFsodmlzaWJsZSldPVwibW9zdHJhclwiIChvblNob3cpPVwibW9zdHJhclBvcHVwKClcIlxuICAgIFticmVha3BvaW50c109XCJ7Jzk2MHB4JzogJzc1dncnLCAnNjQwcHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc1MHZ3J31cIiAob25IaWRlKT1cIm9jdWx0YXIoKVwiIFttb2RhbF09XCJ0cnVlXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicGFuZWwgPT0gJ2VudHJhZGEnXCI+XG4gICAgICAgIDwhLS1TZWd1bmRvIHBsYW5vLS0+XG4gICAgICAgIDxwLWFjY29yZGlvbiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIFtzZWxlY3RlZF09XCJ0cnVlXCIgW2hlYWRlcl09XCInc2VndW5kb3BsYW5vJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwibGlzdGFTZWd1bmRvUGxhbm8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJsaXN0YVNlZ3VuZG9QbGFub1wiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCIgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cInBhZ2luYXRvci5yb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzID4gcGFnaW5hdG9yLnJvd3NcIiAob25Sb3dTZWxlY3QpPVwidmVyU2VndW5kb1BsYW5vKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJmb25kb1RhYmxhUGluY2lwYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snZXN0YWRvJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydmZWNoYWluaWNpYWwnIHwgdHJhbnNsYXRlIH19IDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1lbnRyYWRhPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJlbnRyYWRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS5ub21icmVFc3RhZG99fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS5pbmljaWEgfCBkYXRlOiAnZGQvTU0veXl5eSBoOm1tIGEnfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3AtdGFibGU+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICA8L3AtYWNjb3JkaW9uPlxuICAgICAgICA8cC1maWVsZHNldCBjbGFzcz1cIm10LTIgbWItMlwiICAqbmdJZj1cIm1vc3RyYXJQYXJhbWV0cm9zXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYm9va1wiIHN0eWxlPVwiY29sb3I6dmFyKC0tY29sb3ItNDAwKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3snZW50cmFkYScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwicGFyYW1ldHJvc1wiID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1wYXJhbWV0cm8+XG4gICAgICAgICAgICAgICAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwicGFyYW1ldHJvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy5zb2xpY2l0YXIgPT0gJ1MnXCI+e3sgcGFyYW1ldHJvLnVuaW9uRFRPLmRlc2NyaXBjaW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+LS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnNvbGljaXRhciA9PSAnUydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIihwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ1QnIHx8IHBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnRScpICYmIHBhcmFtZXRyby51bmlvbkRUTy50aXBvID09ICdEJ1wiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJwYXJhbWV0cm8udW5pb25EVE8udmFsb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYXJhbWV0cm8udW5pb25EVE8udGlwb0RhdG8gPT0gJ1UnICYmIHBhcmFtZXRyby51bmlvbkRUTy50aXBvID09ICdEJ1wiIC8+XG5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnTicgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiIG1vZGU9XCJkZWNpbWFsXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heEZyYWN0aW9uRGlnaXRzXT1cIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFyYW1ldHJvLnVuaW9uRFRPLnRpcG9EYXRvID09ICdCJyAmJiBwYXJhbWV0cm8udW5pb25EVE8udGlwbyA9PSAnRCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInBhcmFtZXRyby5saXN0YVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjYW1iaW9WYWxvckxpc3RhKCRldmVudCwgcGFyYW1ldHJvKVwiIFsobmdNb2RlbCldPVwicGFyYW1ldHJvLnVuaW9uRFRPLmxsYXZlTGlzdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJsYWJlbFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy50aXBvID09ICdMJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInBhcmFtZXRyby51bmlvbkRUTy52YWxvclwiIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy50aXBvRGF0byA9PSAnRicgJiYgcGFyYW1ldHJvLnVuaW9uRFRPLnRpcG8gPT0gJ0QnXCI+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cInBhcmFtZXRyby51bmlvbkRUTy5zb2xpY2l0YXIgPT0gJ1MnXCI+e3sgcGFyYW1ldHJvLnVuaW9uRFRPLmRlc2NyaXBjaW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvcC10YWJsZT5cbiAgICAgICAgPC9wLWZpZWxkc2V0PlxuICAgICAgICA8cC1maWVsZHNldCBjbGFzcz1cIm1iLTIgbXQtMlwiICpuZ0lmPVwiZ2VuZXJhY2lvbmVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eydnZW5lcmFyJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWQgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBnZW5lcmFjaW9uZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIChvbkNsaWNrKT1cImNhbWJpb1RpcG9SZXBvcnRlKCRldmVudClcIiBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiIG5hbWU9XCJ0aXBvUmVwb3J0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci52YWx1ZVwiIFsobmdNb2RlbCldPVwidGlwb1JlcG9ydGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbG9yLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG5cbiAgICAgICAgPHAtZmllbGRzZXQgY2xhc3M9XCJtdC0wIG1iLTJcIiAqbmdJZj1cIidBJyAhPSB0aXBvUmVwb3J0ZSAmJiBtb3N0cmFyUXVlRGVzZWFIYWNlclwiID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1ib29rXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1jb2xvci00MDApXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj7Cv1F1w6kgZGVzZWEgaGFjZXI/PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cInRpcG9SZXBvcnRlICYmICdGJyA9PSB0aXBvUmVwb3J0ZVwiPnt7J3NlbGVjY2lvbmV0aXBvYXJjaGl2b2Rlc2VhZ2VuZXJhcicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aXBvUmVwb3J0ZSAmJiAnRicgPT0gdGlwb1JlcG9ydGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02IGxnOmNvbC0zIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wXCIgICpuZ0Zvcj1cImxldCB2YWxvciBvZiBtYXBhVGlwb0FyY2hpdm9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIChvbkNsaWNrKT1cImNhbWJpb1RpcG9BcmNoaXZvKCRldmVudClcIiBbaW5wdXRJZF09XCJ2YWxvci5jb2RpZ29cIiBuYW1lPVwidGlwb0FyY2hpdm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yLmNvZGlnb1wiICBbKG5nTW9kZWwpXT1cInRpcG9BcmNoaXZvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwidmFsb3IuY29kaWdvXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxvci5ub21icmUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9zdHJhckFyY2hpdm9zU29wb3J0ZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJEZXRhbGxlcmVwb3J0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibGlzdGFkb0FyY2hpdm9Tb3BvcnRlXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25MYWJlbD1cImRlc2NyaXBjaW9uXCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwibGxhdmVUYWJsYVwiIFsobmdNb2RlbCldPVwic29wb3J0ZUJhc2VcIiAob25DaGFuZ2UpPVwiY2FtYmlvU29wb3J0ZUJhc2UoJGV2ZW50KVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNvcG9ydGUgQmFzZTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aXBvUmVwb3J0ZSA9PSAnRicgJiYgdGlwb0FyY2hpdm8gfHwgdGlwb1JlcG9ydGUgIT0gJ0YnIFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkIHRleHQteHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTYgbGc6Y29sLTMgYWxpZ24taXRlbXMtY2VudGVyIG1iLTBcIiAgKm5nRm9yPVwibGV0IHZhbG9yIG9mIG9wZXJhY2lvbmVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIFtpbnB1dElkXT1cInZhbG9yLnZhbHVlXCIgbmFtZT1cIm9wZXJhY2lvblwiIFt2YWx1ZV09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wZXJhY2lvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWxvci5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlcmFjaW9uID09ICdFJ1wiPlxuICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiY29ycmVvXCIgdHlwZT1cInRleHRcIiBbZGlzYWJsZWRdPVwiYmxvcXVlYXJDb3JyZW9cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3snY29ycmVvJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3AtZmllbGRzZXQ+XG4gICAgICAgIFxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibS0yIG10LTQgcC1idXR0b24gcC1idXR0b24tb3V0bGluZWQgYmFja2dyb3VuZC0xMDBcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsaWRhckNvbnRyb2xGdW5jaW9uYWxpZGFkKCdlamVjcmVwbzpzZW50ZW5jaWEnKVwiIGxhYmVsPVwiVmVyIHNlbnRlbmNpYVwiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtZXllLW9wZW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW50ZW5jaWEoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRSdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWVudmVsb3BlXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfZW52aWFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImVudmlhclNlZ3VuZG9QbGFubygpXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm0tMiBtdC00IHAtYnV0dG9uLXJhaXNlZFwiICpuZ0lmPVwib3BlcmFjaW9uID09ICdEJyAmJiByZXBvcnRlLm1vbWVudG8gIT0gJ0QnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1jaGVja1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydnZW5lcmFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImRlc2NhcmdhclJlcG9ydGUoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnRCcgJiYgcmVwb3J0ZS5tb21lbnRvID09ICdEJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2hlY2tcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJkZXNjYXJnYXJSZXBvcnRlU2luSGlsbygpXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm0tMiBtdC00IHAtYnV0dG9uLXJhaXNlZFwiICpuZ0lmPVwidGlwb1JlcG9ydGUgPT0gJ0EnXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1jaGVja1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydnZW5lcmFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImdlbmVyYXJUYWJsYSgpXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8IS0tcHRlIHByb2Nlc28gZXh0ZXJuby0tPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSAnTScgfHwgb3BlcmFjaW9uID09ICdNUCdcIiBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWVudmVsb3BlXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfZW52aWFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImVudmlhclNlZ3VuZG9QbGFubygpXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm0tMiBtdC00IHAtYnV0dG9uLXJhaXNlZFwiICpuZ0lmPVwib3BlcmFjaW9uID09ICdQJ1wiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtZm9sZGVyLW9wZW5cIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19wdWJsaWNhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtLTIgbXQtNCBwLWJ1dHRvbi1yYWlzZWRcIiAqbmdJZj1cIm9wZXJhY2lvbiA9PSdTJ1wiICBpY29uPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLWNoZWNrXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfZ2VuZXJhcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbnZpYXJTZWd1bmRvUGxhbm8oKVwiPjwvYnV0dG9uPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJwYW5lbCA9PSAncmVzdWx0YWRvJ1wiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlcmFjaW9uID09ICdoaXN0b3JpY28nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1iYXNlIG10LTIgbWwtMlwiPnt7J2RldGFsbGUnIHwgdHJhbnNsYXRlfX0ge3snc2VndW5kb3BsYW5vJyB8IHRyYW5zbGF0ZX19PC9oND5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBpY29uPVwicGkgcGktY2hldnJvbi1sZWZ0XCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IGZvbnQtc2VtaWJvbGQgZmxleC1zaHJpbmstMCBtbC00XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWdyZXNhclNlZ3VuZG9QbGFubygpXCIgbGFiZWw9XCJ7eydsaXN0YWRvJyB8IHRyYW5zbGF0ZX19IHt7J3NlZ3VuZG9wbGFubycgfCB0cmFuc2xhdGV9fVwiID5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIElucHV0Z3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNCBsZzpjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJlbGVtZW50b0JvcnJhci5pbmljaWFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCI+PC9wLWNhbGVuZGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ2ZlY2hhaW5pY2lhbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZWxlbWVudG9Cb3JyYXIudGVybWluYVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIj48L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eygnZmVjaGFmaW5hbCcpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTQgbGc6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIFtyZWFkb25seV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVsZW1lbnRvQm9ycmFyLm5vbWJyZUVzdGFkb1wiIFtkaXNhYmxlZF09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7KCdlc3RhZG8nKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0xMiBsZzpjb2wtMTJcIiAqbmdJZj1cImVsZW1lbnRvQm9ycmFyLmVzdGFkbyA9PSAnRSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3soJ21lbnNhamUnKSB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJ3LWZ1bGwgbWluLWgtMTAwIG1heC1oLTE1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCI1XCIgY29scz1cIjMwXCIgcElucHV0VGV4dGFyZWEgWyhuZ01vZGVsKV09XCJlbGVtZW50b0JvcnJhci5hcmNoaXZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cIm1sLTIgcC1idXR0b24gcC1idXR0b24tcmFpc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVsZW1lbnRvQm9ycmFyLmVzdGFkbyA9PSAnVCdcIiBpY29uPVwicGkgcGktZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19kZXNjYXJnYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZGVzY2FyZ2FyQXJjaGl2bygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibWwtMiBwLWJ1dHRvbi1vdXRsaW5lZFwiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYmluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7J2xpbmtfZWxpbWluYXInIHwgdHJhbnNsYXRlfX1cIiAoY2xpY2spPVwiZWxpbWluYXJTZWd1bmRvUGxhbm8oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aXBvUmVwb3J0ZSA9PSAnQSdcIiA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8IS0tIEJvdG9uZXMgZGVzY2FyZ2EgLS0+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlXCIgKGNsaWNrKT1cImV4cG9ydEFyY2hpdm8oJ2NzdicpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJhaXNlZCBwLWJ1dHRvbi1leHBvcnQgYm9yZGVyLXNvbGlkLTEgYm9yZGVyLWNvbG9yLTQwMCBtbC0zIHctYXV0b1wiIHBUb29sdGlwPVwiQ1NWXCJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcEJ1dHRvbiBwUmlwcGxlIGljb249XCJwaSBwaS1maWxlLWV4Y2VsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0QXJjaGl2bygneGxzJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgbWwtMiBiYWNrZ3JvdW5kLTEwMCB3LWF1dG9cIiBwVG9vbHRpcD1cIlhMU1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIHBSaXBwbGUgaWNvbj1cInBpIHBpLWZpbGUtcGRmXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0QXJjaGl2bygncGRmJylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgbWwtMiB3LWF1dG9cIiBwVG9vbHRpcD1cIlBERlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdGFSZWdpc3Ryb1wiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiIFt0b3RhbFJlY29yZHNdPVwibGlzdGFSZWdpc3Ryby5sZW5ndGhcIiBbcGFnaW5hdG9yXT1cImxpc3RhUmVnaXN0cm8ubGVuZ3RoID4gMTBcIiA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJmb25kb1RhYmxhUGluY2lwYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBjb2wuaGVhZGVyIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVudHJhZGE+XG4gICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uYXNcIj57eyBlbnRyYWRhW2NvbC5maWVsZF0gfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwMFwiPiBcbiAgICAgICAgICAgICAgICA8YXBwLXRlbXBsYXRlLXRhYmxhLXZhY2lhPjwvYXBwLXRlbXBsYXRlLXRhYmxhLXZhY2lhPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPiAgICAgICAgICAgIDwvcC10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvcC1kaWFsb2c+XG48YXBwLXBvcHVwLXNlbnRlbmNpYSBbcmVwb3J0ZV09XCJyZXBvcnRlXCIgW3BhcmFtZXRyb3NdPVwicGFyYW1ldHJvc1wiIFttb3N0cmFyUG9wdXBdPVwibW9zdHJhclBvcHVwU2VudGVuY2lhXCJcbiAgICAocmVncmVzYXIpPVwicmVncmVzYXJTZW50ZW5jaWEoJGV2ZW50KVwiPjwvYXBwLXBvcHVwLXNlbnRlbmNpYT4iXX0=
|