sigesp 0.9.104-20240402 → 1.0.0-20240419

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/esm2020/lib/app/app.component.mjs +14 -0
  2. package/esm2020/lib/app/app.module.mjs +34 -0
  3. package/esm2020/lib/core/interfaces/Auditoria.mjs +49 -0
  4. package/esm2020/lib/core/interfaces/Banco.mjs +2 -0
  5. package/esm2020/lib/core/interfaces/Catalogo.mjs +2 -0
  6. package/esm2020/lib/core/interfaces/CentroCosto.mjs +2 -0
  7. package/esm2020/lib/core/interfaces/Clasificacion.mjs +2 -0
  8. package/esm2020/lib/core/interfaces/Cliente.mjs +2 -0
  9. package/esm2020/lib/core/interfaces/ComprobantePresupuestario.mjs +2 -0
  10. package/esm2020/lib/core/interfaces/Comunidad.mjs +2 -0
  11. package/esm2020/lib/core/interfaces/Configuracion.mjs +2 -0
  12. package/esm2020/lib/core/interfaces/ConfiguracionRPC.mjs +2 -0
  13. package/esm2020/lib/core/interfaces/ConfiguracionSCG.mjs +2 -0
  14. package/esm2020/lib/core/interfaces/ConfigurationSPG.mjs +2 -0
  15. package/esm2020/lib/core/interfaces/Constantes.mjs +360 -0
  16. package/esm2020/lib/core/interfaces/CuentaEgresos.mjs +2 -0
  17. package/esm2020/lib/core/interfaces/CuentaIngreso.mjs +2 -0
  18. package/esm2020/lib/core/interfaces/CuentaIngresoEstructura.mjs +2 -0
  19. package/esm2020/lib/core/interfaces/CuentaInstitucional.mjs +2 -0
  20. package/esm2020/lib/core/interfaces/CuentaPresupuesto.mjs +2 -0
  21. package/esm2020/lib/core/interfaces/CuentasPorPagar.mjs +2 -0
  22. package/esm2020/lib/core/interfaces/Documento.mjs +2 -0
  23. package/esm2020/lib/core/interfaces/EntradaSuministro.mjs +2 -0
  24. package/esm2020/lib/core/interfaces/Especialidad.mjs +2 -0
  25. package/esm2020/lib/core/interfaces/EstructuraPresupuestaria.mjs +2 -0
  26. package/esm2020/lib/core/interfaces/FuenteFinanciamiento.mjs +2 -0
  27. package/esm2020/lib/core/interfaces/IBancoCuentasPorPagar.mjs +2 -0
  28. package/esm2020/lib/core/interfaces/ITipoDepositos.mjs +2 -0
  29. package/esm2020/lib/core/interfaces/Integracion.mjs +2 -0
  30. package/esm2020/lib/core/interfaces/Lugares.mjs +2 -0
  31. package/esm2020/lib/core/interfaces/Moneda.mjs +2 -0
  32. package/esm2020/lib/core/interfaces/Nomina.mjs +27 -0
  33. package/esm2020/lib/core/interfaces/PlanUnicoCuenta.mjs +2 -0
  34. package/esm2020/lib/core/interfaces/Presupuesto.mjs +2 -0
  35. package/esm2020/lib/core/interfaces/Proveedor.mjs +2 -0
  36. package/esm2020/lib/core/interfaces/RecursosHumanos.mjs +4 -0
  37. package/esm2020/lib/core/interfaces/Request.mjs +2 -0
  38. package/esm2020/lib/core/interfaces/Response.mjs +2 -0
  39. package/esm2020/lib/core/interfaces/Seguridad.mjs +2 -0
  40. package/esm2020/lib/core/interfaces/Servicios.mjs +2 -0
  41. package/esm2020/lib/core/interfaces/Sistema.mjs +2 -0
  42. package/esm2020/lib/core/interfaces/Tributos.mjs +2 -0
  43. package/esm2020/lib/core/interfaces/UnidadTributaria.mjs +2 -0
  44. package/esm2020/lib/core/interfaces/Usuario.mjs +2 -0
  45. package/esm2020/lib/core/interfaces/UsuarioPrefijo.mjs +2 -0
  46. package/esm2020/lib/core/models/CFG/Empresa.model.mjs +151 -0
  47. package/esm2020/lib/core/models/CFG/Enterprise.model.mjs +70 -0
  48. package/esm2020/lib/core/models/CFG/MPrefijo.model.mjs +64 -0
  49. package/esm2020/lib/core/models/CFG/Procede.model.mjs +31 -0
  50. package/esm2020/lib/core/models/CFG/TasaCambio.model.mjs +34 -0
  51. package/esm2020/lib/core/models/CFG/comunidad.model.mjs +22 -0
  52. package/esm2020/lib/core/models/CFG/locations.model.mjs +170 -0
  53. package/esm2020/lib/core/models/CFG/moneda.model.mjs +72 -0
  54. package/esm2020/lib/core/models/CFG/userPrefix.model.mjs +46 -0
  55. package/esm2020/lib/core/models/CXP/MConceptosCXP.model.mjs +34 -0
  56. package/esm2020/lib/core/models/CXP/MTipoDocumentoCXP.model.mjs +44 -0
  57. package/esm2020/lib/core/models/RPC/clasification.model.mjs +16 -0
  58. package/esm2020/lib/core/models/RPC/configuracionRPC.model.mjs +23 -0
  59. package/esm2020/lib/core/models/RPC/document.model.mjs +16 -0
  60. package/esm2020/lib/core/models/RPC/proveedores.model.mjs +9 -0
  61. package/esm2020/lib/core/models/RPC/providerBeneficiary.model.mjs +164 -0
  62. package/esm2020/lib/core/models/RPC/specialty.model.mjs +12 -0
  63. package/esm2020/lib/core/models/SCB/bank.model.mjs +181 -0
  64. package/esm2020/lib/core/models/SCG/IncomeAccount.mjs +83 -0
  65. package/esm2020/lib/core/models/SCG/accountMarriage.model.mjs +29 -0
  66. package/esm2020/lib/core/models/SCG/centroCosto.model.mjs +65 -0
  67. package/esm2020/lib/core/models/SCG/configuracionSCG.model.mjs +169 -0
  68. package/esm2020/lib/core/models/SCG/cuentaInstitucional.model.mjs +89 -0
  69. package/esm2020/lib/core/models/SCG/planUnicoCuenta.model.mjs +17 -0
  70. package/esm2020/lib/core/models/SFV/MClienteModel.mjs +116 -0
  71. package/esm2020/lib/core/models/SIV/MDetaContable.model.mjs +62 -0
  72. package/esm2020/lib/core/models/SIV/MDetaEntrada.model.mjs +94 -0
  73. package/esm2020/lib/core/models/SIV/MEntradaSuministro.model.mjs +132 -0
  74. package/esm2020/lib/core/models/SIV/MTipoDepositos.model.mjs +61 -0
  75. package/esm2020/lib/core/models/SNO/MAnticipoPrestaciones.model.mjs +100 -0
  76. package/esm2020/lib/core/models/SNO/MArchivoTxtCampo.model.mjs +61 -0
  77. package/esm2020/lib/core/models/SNO/MArchivosTxt.model.mjs +41 -0
  78. package/esm2020/lib/core/models/SNO/MAsignacionCargo.model.mjs +205 -0
  79. package/esm2020/lib/core/models/SNO/MAspectoEvaluacion.model.mjs +90 -0
  80. package/esm2020/lib/core/models/SNO/MAuditoria.model.mjs +61 -0
  81. package/esm2020/lib/core/models/SNO/MBeneficiario.model.mjs +137 -0
  82. package/esm2020/lib/core/models/SNO/MCargaFamiliar.model.mjs +52 -0
  83. package/esm2020/lib/core/models/SNO/MCargaMasiva.model.mjs +34 -0
  84. package/esm2020/lib/core/models/SNO/MCargosPersonal.model.mjs +101 -0
  85. package/esm2020/lib/core/models/SNO/MClasificacionObrero.mdel.mjs +46 -0
  86. package/esm2020/lib/core/models/SNO/MCodigoUnicoRac.model.mjs +39 -0
  87. package/esm2020/lib/core/models/SNO/MComponete.model.mjs +38 -0
  88. package/esm2020/lib/core/models/SNO/MConceptoVacaciones.model.mjs +85 -0
  89. package/esm2020/lib/core/models/SNO/MConceptosNomina.model.mjs +234 -0
  90. package/esm2020/lib/core/models/SNO/MConceptosPersonalNomina.model.mjs +97 -0
  91. package/esm2020/lib/core/models/SNO/MConcursante.model.mjs +317 -0
  92. package/esm2020/lib/core/models/SNO/MConcurso.model.mjs +246 -0
  93. package/esm2020/lib/core/models/SNO/MConfiguracionSNO.model.mjs +404 -0
  94. package/esm2020/lib/core/models/SNO/MConstanteNomina.model.mjs +67 -0
  95. package/esm2020/lib/core/models/SNO/MConstantePersonalNomina.model.mjs +79 -0
  96. package/esm2020/lib/core/models/SNO/MDedicacion.model.mjs +35 -0
  97. package/esm2020/lib/core/models/SNO/MDefinicionNomina.model.mjs +343 -0
  98. package/esm2020/lib/core/models/SNO/MDefinicionesBasicas.model.mjs +84 -0
  99. package/esm2020/lib/core/models/SNO/MDeudaAnterior.model.mjs +40 -0
  100. package/esm2020/lib/core/models/SNO/MEncargaduria.model.mjs +138 -0
  101. package/esm2020/lib/core/models/SNO/MEscalaEvaluacion.model.mjs +38 -0
  102. package/esm2020/lib/core/models/SNO/MEscalaEvaluacionDt.model.mjs +37 -0
  103. package/esm2020/lib/core/models/SNO/MEstructuraOrganizativa.model.mjs +119 -0
  104. package/esm2020/lib/core/models/SNO/MFamiliares.model.mjs +86 -0
  105. package/esm2020/lib/core/models/SNO/MFeriados.model.mjs +43 -0
  106. package/esm2020/lib/core/models/SNO/MFideicomiso.model.mjs +406 -0
  107. package/esm2020/lib/core/models/SNO/MFormacionAcademica.model.mjs +49 -0
  108. package/esm2020/lib/core/models/SNO/MGrado.model.mjs +47 -0
  109. package/esm2020/lib/core/models/SNO/MHojaTiempo.model.mjs +117 -0
  110. package/esm2020/lib/core/models/SNO/MImpuestoSobreRenta.model.mjs +73 -0
  111. package/esm2020/lib/core/models/SNO/MMetodoBanco.model.mjs +105 -0
  112. package/esm2020/lib/core/models/SNO/MNominaSimple.model.mjs +86 -0
  113. package/esm2020/lib/core/models/SNO/MPeriodoNomina.model.mjs +95 -0
  114. package/esm2020/lib/core/models/SNO/MPermisos.model.mjs +68 -0
  115. package/esm2020/lib/core/models/SNO/MPersonal.model.mjs +626 -0
  116. package/esm2020/lib/core/models/SNO/MPersonalJubilado.model.mjs +64 -0
  117. package/esm2020/lib/core/models/SNO/MPersonalNomina.model.mjs +313 -0
  118. package/esm2020/lib/core/models/SNO/MPlanHorario.model.mjs +116 -0
  119. package/esm2020/lib/core/models/SNO/MPlantillaConstancia.model.mjs +31 -0
  120. package/esm2020/lib/core/models/SNO/MPrestamo.model.mjs +221 -0
  121. package/esm2020/lib/core/models/SNO/MPrimaGrados.model.mjs +43 -0
  122. package/esm2020/lib/core/models/SNO/MPrimasConcepto.model.mjs +43 -0
  123. package/esm2020/lib/core/models/SNO/MRango.model.mjs +43 -0
  124. package/esm2020/lib/core/models/SNO/MReportesRRHH.mjs +402 -0
  125. package/esm2020/lib/core/models/SNO/MRequisitosConcursante.model.mjs +46 -0
  126. package/esm2020/lib/core/models/SNO/MRequisitosConcursos.model.mjs +37 -0
  127. package/esm2020/lib/core/models/SNO/MRequisitosMinimos.model.mjs +113 -0
  128. package/esm2020/lib/core/models/SNO/MSalarioHistorico.model.mjs +70 -0
  129. package/esm2020/lib/core/models/SNO/MSolicitudEmpleo.model.mjs +121 -0
  130. package/esm2020/lib/core/models/SNO/MTablaVacaciones.model.mjs +57 -0
  131. package/esm2020/lib/core/models/SNO/MTablaVacacionesPeriodo.model.mjs +40 -0
  132. package/esm2020/lib/core/models/SNO/MTabulador.model.mjs +96 -0
  133. package/esm2020/lib/core/models/SNO/MTipoEvaluacion.model.mjs +75 -0
  134. package/esm2020/lib/core/models/SNO/MTipoPersonal.model.mjs +34 -0
  135. package/esm2020/lib/core/models/SNO/MTiposEnfermedad.model.mjs +37 -0
  136. package/esm2020/lib/core/models/SNO/MTrabajoAnterior.model.mjs +65 -0
  137. package/esm2020/lib/core/models/SNO/MUbicacionFisica.model.mjs +61 -0
  138. package/esm2020/lib/core/models/SNO/MVacacionesPersonal.model.mjs +115 -0
  139. package/esm2020/lib/core/models/SOC/charge.model.mjs +66 -0
  140. package/esm2020/lib/core/models/SOC/clause.model.mjs +31 -0
  141. package/esm2020/lib/core/models/SOC/clauseModality.model.mjs +35 -0
  142. package/esm2020/lib/core/models/SOC/configuracionSOC.model.mjs +62 -0
  143. package/esm2020/lib/core/models/SOC/service.model.mjs +46 -0
  144. package/esm2020/lib/core/models/SOC/serviceCharge.model.mjs +37 -0
  145. package/esm2020/lib/core/models/SOC/serviceType.model.mjs +31 -0
  146. package/esm2020/lib/core/models/SPG/UnidadAdministradoraCentral.mjs +43 -0
  147. package/esm2020/lib/core/models/SPG/administrativeUnit.model.mjs +112 -0
  148. package/esm2020/lib/core/models/SPG/comprobantePresupuestario.model.mjs +51 -0
  149. package/esm2020/lib/core/models/SPG/configurationSPG.model.mjs +59 -0
  150. package/esm2020/lib/core/models/SPG/cuentaPresupuesto.model.mjs +120 -0
  151. package/esm2020/lib/core/models/SPG/estructuraPresupuestaria.model.mjs +176 -0
  152. package/esm2020/lib/core/models/SPG/expensiveAccount.model.mjs +108 -0
  153. package/esm2020/lib/core/models/SPG/fuenteFinanciamiento.model.mjs +31 -0
  154. package/esm2020/lib/core/models/SPG/incomeStructureAccount.model.mjs +81 -0
  155. package/esm2020/lib/core/models/SPG/organizationType.model.mjs +12 -0
  156. package/esm2020/lib/core/models/SSS/component.model.mjs +44 -0
  157. package/esm2020/lib/core/models/SSS/group.model.mjs +30 -0
  158. package/esm2020/lib/core/models/SSS/log.model.mjs +29 -0
  159. package/esm2020/lib/core/models/SSS/securityConfiguration.model.mjs +20 -0
  160. package/esm2020/lib/core/models/SSS/sistema.mjs +71 -0
  161. package/esm2020/lib/core/models/SSS/user.model.mjs +32 -0
  162. package/esm2020/lib/core/models/SSS/userDetail.model.mjs +73 -0
  163. package/esm2020/lib/core/models/SSS/userPermit.model.mjs +47 -0
  164. package/esm2020/lib/core/models/SSS/userRights.model.mjs +104 -0
  165. package/esm2020/lib/core/models/STB/MCargosAdicionales.mjs +84 -0
  166. package/esm2020/lib/core/models/STB/deduction.model.mjs +90 -0
  167. package/esm2020/lib/core/models/STB/deductionType.model.mjs +20 -0
  168. package/esm2020/lib/core/models/STB/unidadTributaria.model.mjs +14 -0
  169. package/esm2020/lib/core/models/basic-model.model.mjs +8 -0
  170. package/esm2020/lib/shared/components/catalogo/catalogo.component.mjs +72 -0
  171. package/esm2020/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.mjs +83 -0
  172. package/esm2020/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.mjs +74 -0
  173. package/esm2020/lib/shared/components/confirm/confirm.component.mjs +35 -0
  174. package/esm2020/lib/shared/components/icon/icon.component.mjs +22 -0
  175. package/esm2020/lib/shared/components/table-select/table-select.component.mjs +99 -0
  176. package/esm2020/lib/shared/material/customPaginator.mjs +24 -0
  177. package/esm2020/lib/shared/material/material.module.mjs +322 -0
  178. package/esm2020/lib/shared/pipes/iso-currency.pipe.mjs +43 -0
  179. package/esm2020/lib/shared/shared.module.mjs +66 -0
  180. package/esm2020/lib/sigesp.service.mjs +2050 -0
  181. package/esm2020/lib/validation.service.mjs +131 -0
  182. package/esm2020/public-api.mjs +156 -0
  183. package/esm2020/sigesp.mjs +5 -0
  184. package/fesm2015/{sigesp.js → sigesp.mjs} +524 -286
  185. package/fesm2015/sigesp.mjs.map +1 -0
  186. package/fesm2020/sigesp.mjs +14485 -0
  187. package/fesm2020/sigesp.mjs.map +1 -0
  188. package/index.d.ts +5 -0
  189. package/lib/app/app.component.d.ts +3 -0
  190. package/lib/app/app.module.d.ts +8 -0
  191. package/lib/core/models/SNO/MAuditoria.model.d.ts +1 -1
  192. package/lib/core/models/SNO/MFamiliares.model.d.ts +2 -2
  193. package/lib/shared/components/catalogo/catalogo.component.d.ts +4 -1
  194. package/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.d.ts +3 -0
  195. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +4 -1
  196. package/lib/shared/components/confirm/confirm.component.d.ts +3 -0
  197. package/lib/shared/components/icon/icon.component.d.ts +3 -0
  198. package/lib/shared/components/table-select/table-select.component.d.ts +4 -1
  199. package/lib/shared/material/material.module.d.ts +46 -0
  200. package/lib/shared/pipes/iso-currency.pipe.d.ts +3 -0
  201. package/lib/shared/shared.module.d.ts +14 -0
  202. package/lib/sigesp.service.d.ts +6 -3
  203. package/lib/validation.service.d.ts +3 -0
  204. package/package.json +23 -11
  205. package/public-api.d.ts +8 -0
  206. package/bundles/sigesp.umd.js +0 -15577
  207. package/bundles/sigesp.umd.js.map +0 -1
  208. package/bundles/sigesp.umd.min.js +0 -2
  209. package/bundles/sigesp.umd.min.js.map +0 -1
  210. package/esm2015/lib/app/app.component.js +0 -15
  211. package/esm2015/lib/app/app.module.js +0 -23
  212. package/esm2015/lib/core/interfaces/Auditoria.js +0 -49
  213. package/esm2015/lib/core/interfaces/Banco.js +0 -2
  214. package/esm2015/lib/core/interfaces/Catalogo.js +0 -2
  215. package/esm2015/lib/core/interfaces/CentroCosto.js +0 -2
  216. package/esm2015/lib/core/interfaces/Clasificacion.js +0 -2
  217. package/esm2015/lib/core/interfaces/Cliente.js +0 -2
  218. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +0 -2
  219. package/esm2015/lib/core/interfaces/Comunidad.js +0 -2
  220. package/esm2015/lib/core/interfaces/Configuracion.js +0 -2
  221. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +0 -2
  222. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +0 -2
  223. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +0 -2
  224. package/esm2015/lib/core/interfaces/Constantes.js +0 -360
  225. package/esm2015/lib/core/interfaces/CuentaEgresos.js +0 -2
  226. package/esm2015/lib/core/interfaces/CuentaIngreso.js +0 -2
  227. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +0 -2
  228. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +0 -2
  229. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +0 -2
  230. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +0 -2
  231. package/esm2015/lib/core/interfaces/Documento.js +0 -2
  232. package/esm2015/lib/core/interfaces/EntradaSuministro.js +0 -2
  233. package/esm2015/lib/core/interfaces/Especialidad.js +0 -2
  234. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +0 -2
  235. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +0 -2
  236. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +0 -2
  237. package/esm2015/lib/core/interfaces/ITipoDepositos.js +0 -2
  238. package/esm2015/lib/core/interfaces/Integracion.js +0 -2
  239. package/esm2015/lib/core/interfaces/Lugares.js +0 -2
  240. package/esm2015/lib/core/interfaces/Moneda.js +0 -2
  241. package/esm2015/lib/core/interfaces/Nomina.js +0 -27
  242. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +0 -2
  243. package/esm2015/lib/core/interfaces/Presupuesto.js +0 -2
  244. package/esm2015/lib/core/interfaces/Proveedor.js +0 -2
  245. package/esm2015/lib/core/interfaces/RecursosHumanos.js +0 -4
  246. package/esm2015/lib/core/interfaces/Request.js +0 -2
  247. package/esm2015/lib/core/interfaces/Response.js +0 -2
  248. package/esm2015/lib/core/interfaces/Seguridad.js +0 -2
  249. package/esm2015/lib/core/interfaces/Servicios.js +0 -2
  250. package/esm2015/lib/core/interfaces/Sistema.js +0 -2
  251. package/esm2015/lib/core/interfaces/Tributos.js +0 -2
  252. package/esm2015/lib/core/interfaces/UnidadTributaria.js +0 -2
  253. package/esm2015/lib/core/interfaces/Usuario.js +0 -2
  254. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +0 -2
  255. package/esm2015/lib/core/models/CFG/Empresa.model.js +0 -151
  256. package/esm2015/lib/core/models/CFG/Enterprise.model.js +0 -70
  257. package/esm2015/lib/core/models/CFG/MPrefijo.model.js +0 -64
  258. package/esm2015/lib/core/models/CFG/Procede.model.js +0 -31
  259. package/esm2015/lib/core/models/CFG/TasaCambio.model.js +0 -34
  260. package/esm2015/lib/core/models/CFG/comunidad.model.js +0 -22
  261. package/esm2015/lib/core/models/CFG/locations.model.js +0 -170
  262. package/esm2015/lib/core/models/CFG/moneda.model.js +0 -72
  263. package/esm2015/lib/core/models/CFG/userPrefix.model.js +0 -46
  264. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +0 -34
  265. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +0 -44
  266. package/esm2015/lib/core/models/RPC/clasification.model.js +0 -16
  267. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +0 -23
  268. package/esm2015/lib/core/models/RPC/document.model.js +0 -16
  269. package/esm2015/lib/core/models/RPC/proveedores.model.js +0 -9
  270. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +0 -164
  271. package/esm2015/lib/core/models/RPC/specialty.model.js +0 -12
  272. package/esm2015/lib/core/models/SCB/bank.model.js +0 -181
  273. package/esm2015/lib/core/models/SCG/IncomeAccount.js +0 -83
  274. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +0 -29
  275. package/esm2015/lib/core/models/SCG/centroCosto.model.js +0 -65
  276. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +0 -169
  277. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +0 -89
  278. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +0 -17
  279. package/esm2015/lib/core/models/SFV/MClienteModel.js +0 -116
  280. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +0 -62
  281. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +0 -94
  282. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +0 -132
  283. package/esm2015/lib/core/models/SIV/MTipoDepositos.model.js +0 -61
  284. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +0 -100
  285. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +0 -61
  286. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +0 -41
  287. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +0 -205
  288. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +0 -90
  289. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +0 -61
  290. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +0 -137
  291. package/esm2015/lib/core/models/SNO/MCargaFamiliar.model.js +0 -52
  292. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +0 -34
  293. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +0 -101
  294. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +0 -46
  295. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +0 -39
  296. package/esm2015/lib/core/models/SNO/MComponete.model.js +0 -38
  297. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +0 -85
  298. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +0 -234
  299. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +0 -97
  300. package/esm2015/lib/core/models/SNO/MConcursante.model.js +0 -317
  301. package/esm2015/lib/core/models/SNO/MConcurso.model.js +0 -246
  302. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +0 -404
  303. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +0 -67
  304. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +0 -79
  305. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +0 -35
  306. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +0 -343
  307. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +0 -84
  308. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +0 -40
  309. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +0 -138
  310. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +0 -38
  311. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +0 -37
  312. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +0 -119
  313. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +0 -86
  314. package/esm2015/lib/core/models/SNO/MFeriados.model.js +0 -43
  315. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +0 -406
  316. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +0 -49
  317. package/esm2015/lib/core/models/SNO/MGrado.model.js +0 -47
  318. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +0 -117
  319. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +0 -73
  320. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +0 -105
  321. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +0 -86
  322. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +0 -95
  323. package/esm2015/lib/core/models/SNO/MPermisos.model.js +0 -68
  324. package/esm2015/lib/core/models/SNO/MPersonal.model.js +0 -626
  325. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +0 -64
  326. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +0 -313
  327. package/esm2015/lib/core/models/SNO/MPlanHorario.model.js +0 -116
  328. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +0 -31
  329. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +0 -221
  330. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +0 -43
  331. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +0 -43
  332. package/esm2015/lib/core/models/SNO/MRango.model.js +0 -43
  333. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +0 -402
  334. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +0 -46
  335. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +0 -37
  336. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +0 -113
  337. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +0 -70
  338. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +0 -121
  339. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +0 -57
  340. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +0 -40
  341. package/esm2015/lib/core/models/SNO/MTabulador.model.js +0 -96
  342. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +0 -75
  343. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +0 -34
  344. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +0 -37
  345. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +0 -65
  346. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +0 -61
  347. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +0 -115
  348. package/esm2015/lib/core/models/SOC/charge.model.js +0 -66
  349. package/esm2015/lib/core/models/SOC/clause.model.js +0 -31
  350. package/esm2015/lib/core/models/SOC/clauseModality.model.js +0 -35
  351. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +0 -62
  352. package/esm2015/lib/core/models/SOC/service.model.js +0 -46
  353. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +0 -37
  354. package/esm2015/lib/core/models/SOC/serviceType.model.js +0 -31
  355. package/esm2015/lib/core/models/SPG/UnidadAdministradoraCentral.js +0 -43
  356. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +0 -112
  357. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +0 -51
  358. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +0 -59
  359. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +0 -120
  360. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +0 -176
  361. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +0 -108
  362. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +0 -31
  363. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +0 -81
  364. package/esm2015/lib/core/models/SPG/organizationType.model.js +0 -12
  365. package/esm2015/lib/core/models/SSS/component.model.js +0 -44
  366. package/esm2015/lib/core/models/SSS/group.model.js +0 -30
  367. package/esm2015/lib/core/models/SSS/log.model.js +0 -29
  368. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +0 -20
  369. package/esm2015/lib/core/models/SSS/sistema.js +0 -71
  370. package/esm2015/lib/core/models/SSS/user.model.js +0 -32
  371. package/esm2015/lib/core/models/SSS/userDetail.model.js +0 -73
  372. package/esm2015/lib/core/models/SSS/userPermit.model.js +0 -47
  373. package/esm2015/lib/core/models/SSS/userRights.model.js +0 -104
  374. package/esm2015/lib/core/models/STB/MCargosAdicionales.js +0 -84
  375. package/esm2015/lib/core/models/STB/deduction.model.js +0 -90
  376. package/esm2015/lib/core/models/STB/deductionType.model.js +0 -20
  377. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +0 -14
  378. package/esm2015/lib/core/models/basic-model.model.js +0 -8
  379. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +0 -59
  380. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +0 -70
  381. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +0 -62
  382. package/esm2015/lib/shared/components/confirm/confirm.component.js +0 -30
  383. package/esm2015/lib/shared/components/icon/icon.component.js +0 -20
  384. package/esm2015/lib/shared/components/table-select/table-select.component.js +0 -85
  385. package/esm2015/lib/shared/material/customPaginator.js +0 -24
  386. package/esm2015/lib/shared/material/material.module.js +0 -145
  387. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +0 -39
  388. package/esm2015/lib/shared/shared.module.js +0 -51
  389. package/esm2015/lib/sigesp.service.js +0 -2084
  390. package/esm2015/lib/validation.service.js +0 -130
  391. package/esm2015/public-api.js +0 -148
  392. package/esm2015/sigesp.js +0 -15
  393. package/fesm2015/sigesp.js.map +0 -1
  394. package/sigesp.d.ts +0 -32
  395. package/sigesp.metadata.json +0 -1
@@ -0,0 +1,317 @@
1
+ import { MBasicModel } from "../basic-model.model";
2
+ export class MConcursante extends MBasicModel {
3
+ constructor(e = null) {
4
+ super();
5
+ this.idEnterprise = 0;
6
+ this.idEmpresa = 0;
7
+ this.idConcurso = 0;
8
+ this.codigoConcurso = '';
9
+ this.idConcursante = 0;
10
+ this.cedula = '';
11
+ this.idProfesion = 0;
12
+ this.profesion = '';
13
+ this.nombreProfesion = '';
14
+ this.fechaInscripcion = '';
15
+ this.nombres = '';
16
+ this.apellidos = '';
17
+ this.direccion = '';
18
+ this.fechaNacimiento = '';
19
+ this.estadoCivil = '';
20
+ this.codigoPais = '';
21
+ this.nombrePais = '';
22
+ this.codigoEstado = '';
23
+ this.nombreEstado = '';
24
+ this.nacionalidad = '';
25
+ this.telefono = '';
26
+ this.celular = '';
27
+ this.correo = '';
28
+ this.genero = '';
29
+ this.nivelAcademico = 0;
30
+ this.estatusRequisitos = 1;
31
+ if (e) {
32
+ this.idEnterprise = +e.id_enterprise;
33
+ this.idEmpresa = +e.id_empresa;
34
+ this.idConcurso = parseInt(e.id_concurso);
35
+ this.codigoConcurso = e.codcon;
36
+ this.idConcursante = parseInt(e.id_concursante);
37
+ this.cedula = e.cedper;
38
+ this.idProfesion = parseInt(e.id_profesion);
39
+ this.profesion = e.profesion;
40
+ this.nombreProfesion = e.nombre_profesion;
41
+ this.fechaInscripcion = e.fecreg;
42
+ this.nombres = e.nomper;
43
+ this.apellidos = e.apeper;
44
+ this.direccion = e.dirper;
45
+ this.fechaNacimiento = e.fecnacper;
46
+ this.estadoCivil = e.estcivper;
47
+ this.codigoPais = e.codpai;
48
+ this.nombrePais = e.nombre_pais;
49
+ this.codigoEstado = e.codest;
50
+ this.nombreEstado = e.nombre_estado;
51
+ this.nacionalidad = e.nacper;
52
+ this.telefono = e.telhabper;
53
+ this.celular = e.telmovper;
54
+ this.correo = e.emaper;
55
+ this.genero = e.sexper;
56
+ this.nivelAcademico = parseInt(e.nivacaper);
57
+ this.estatusRequisitos = parseInt(e.estconper);
58
+ }
59
+ }
60
+ dataInterface() {
61
+ return {
62
+ id_enterprise: this.idEnterprise.toString(),
63
+ id_empresa: this.idEmpresa,
64
+ id_concurso: this.idConcurso.toString(),
65
+ codcon: this.codigoConcurso,
66
+ id_concursante: this.idConcursante.toString(),
67
+ cedper: this.cedula,
68
+ id_profesion: this.idProfesion.toString(),
69
+ profesion: this.profesion,
70
+ nombre_profesion: this.nombreProfesion,
71
+ fecreg: this.fechaInscripcion,
72
+ nomper: this.nombres,
73
+ apeper: this.apellidos,
74
+ dirper: this.direccion,
75
+ fecnacper: this.fechaNacimiento,
76
+ estcivper: this.estadoCivil,
77
+ codpai: this.codigoPais,
78
+ nombre_pais: this.nombrePais,
79
+ codest: this.codigoEstado,
80
+ nombre_estado: this.nombreEstado,
81
+ nacper: this.nacionalidad,
82
+ telhabper: this.telefono,
83
+ telmovper: this.celular,
84
+ emaper: this.correo,
85
+ sexper: this.genero,
86
+ nivacaper: this.nivelAcademico.toString(),
87
+ estconper: this.estatusRequisitos.toString()
88
+ };
89
+ }
90
+ }
91
+ export class MTrabajosConcursantes extends MBasicModel {
92
+ constructor(e) {
93
+ super();
94
+ this.idEnterprise = 0;
95
+ this.idEmpresa = 0;
96
+ this.idConcurso = 0;
97
+ this.idConcursante = 0;
98
+ this.idTrabajo = 0;
99
+ this.codigo = '';
100
+ this.empresaTrabajoAnterior = '';
101
+ this.cargoTrabajoAnterior = '';
102
+ this.fechaIngreso = '';
103
+ this.fechaRetiro = '';
104
+ if (e) {
105
+ this.idEnterprise = +e.id_enterprise;
106
+ this.idEmpresa = +e.id_empresa;
107
+ this.idConcurso = parseInt(e.id_concurso);
108
+ this.idConcursante = parseInt(e.id_concursante);
109
+ this.idTrabajo = parseInt(e.id_trabajocon);
110
+ this.codigo = e.codtraper;
111
+ this.empresaTrabajoAnterior = e.emptraper;
112
+ this.cargoTrabajoAnterior = e.cartraant;
113
+ this.fechaIngreso = e.fecingtraant;
114
+ this.fechaRetiro = e.fecrettraant;
115
+ }
116
+ else {
117
+ this.isNew = true;
118
+ }
119
+ }
120
+ dataInterface() {
121
+ return {
122
+ id_enterprise: this.idEnterprise.toString(),
123
+ id_empresa: this.idEmpresa,
124
+ id_concurso: this.idConcurso.toString(),
125
+ id_concursante: this.idConcursante.toString(),
126
+ id_trabajocon: this.idTrabajo.toString(),
127
+ codtraper: this.codigo,
128
+ emptraper: this.empresaTrabajoAnterior,
129
+ cartraant: this.cargoTrabajoAnterior,
130
+ fecingtraant: this.fechaIngreso,
131
+ fecrettraant: this.fechaRetiro
132
+ };
133
+ }
134
+ }
135
+ export class MEstudiosConcursantes extends MBasicModel {
136
+ constructor(e = null) {
137
+ super();
138
+ this.idEnterprise = 0;
139
+ this.idEmpresa = 0;
140
+ this.idConcurso = 0;
141
+ this.idConcursante = 0;
142
+ this.idEstudio = 0;
143
+ this.codigoEstudio = '';
144
+ this.institutoEstudio = '';
145
+ this.descripcionEstudio = '';
146
+ this.fechaInicioEstudio = '';
147
+ this.fechaFinEstudio = '';
148
+ this.tituloObtenido = 0;
149
+ this.yearAprobados = 0;
150
+ this.horasEstudiosRealizadas = 0;
151
+ if (e) {
152
+ this.idEnterprise = +e.id_enterprise;
153
+ this.idEmpresa = +e.id_empresa;
154
+ this.idConcurso = parseInt(e.id_concurso);
155
+ this.idConcursante = parseInt(e.id_concursante);
156
+ this.idEstudio = parseInt(e.id_estudiocon);
157
+ this.codigoEstudio = e.codestrea;
158
+ this.institutoEstudio = e.insestper;
159
+ this.descripcionEstudio = e.desestper;
160
+ this.fechaInicioEstudio = e.fecinireaest;
161
+ this.fechaFinEstudio = e.fecfinestrea;
162
+ this.tituloObtenido = parseInt(e.titestper);
163
+ this.yearAprobados = parseInt(e.anoaprestper);
164
+ this.horasEstudiosRealizadas = parseInt(e.horestrea);
165
+ }
166
+ else {
167
+ this.isNew = true;
168
+ }
169
+ }
170
+ dataInterface() {
171
+ return {
172
+ id_enterprise: this.idEnterprise.toString(),
173
+ id_empresa: this.idEmpresa,
174
+ id_concurso: this.idConcurso.toString(),
175
+ id_concursante: this.idConcursante.toString(),
176
+ id_estudiocon: this.idEstudio.toString(),
177
+ codestrea: this.codigoEstudio,
178
+ insestper: this.institutoEstudio,
179
+ desestper: this.descripcionEstudio,
180
+ fecinireaest: this.fechaInicioEstudio,
181
+ fecfinestrea: this.fechaFinEstudio,
182
+ titestper: this.tituloObtenido.toString(),
183
+ anoaprestper: this.yearAprobados.toString(),
184
+ horestrea: this.horasEstudiosRealizadas.toString(),
185
+ };
186
+ }
187
+ }
188
+ export class MExperienciaLaboral extends MBasicModel {
189
+ constructor(e = null) {
190
+ super();
191
+ this.idEmpresa = 0;
192
+ this.idConcurso = 0;
193
+ this.idConcursante = 0;
194
+ this.idTrabajoConcursante = 0;
195
+ this.codigoTrabajo = '';
196
+ this.empresa = '';
197
+ this.cargo = '';
198
+ this.fechaIngreso = '';
199
+ this.fechaRetiro = '';
200
+ if (e) {
201
+ this.idEmpresa = parseInt(e.id_empresa);
202
+ this.idConcursante = parseInt(e.id_concurso);
203
+ this.idConcursante = parseInt(e.id_concursante);
204
+ this.idTrabajoConcursante = parseInt(e.id_trabajocon);
205
+ this.codigoTrabajo = e.codtra;
206
+ this.empresa = e.emptraper;
207
+ this.cargo = e.cartraant;
208
+ this.fechaIngreso = e.fecingtraant;
209
+ this.fechaRetiro = e.fecrettraant;
210
+ }
211
+ else {
212
+ this.isNew = true;
213
+ }
214
+ }
215
+ dataInterface() {
216
+ return {
217
+ id_empresa: this.idEmpresa.toString(),
218
+ id_concurso: this.idConcurso.toString(),
219
+ id_concursante: this.idConcursante.toString(),
220
+ id_trabajocon: this.idTrabajoConcursante.toString(),
221
+ codtra: this.codigoTrabajo,
222
+ emptraper: this.empresa,
223
+ cartraant: this.cargo,
224
+ fecingtraant: this.fechaIngreso,
225
+ fecrettraant: this.fechaRetiro
226
+ };
227
+ }
228
+ }
229
+ export class MFamiliaConcursante extends MBasicModel {
230
+ constructor(e = null) {
231
+ super();
232
+ this.idEnterprise = 0;
233
+ this.idEmpresa = 0;
234
+ this.idConcurso = 0;
235
+ this.idConcursante = 0;
236
+ this.idFamiliar = 0;
237
+ this.codigo = '';
238
+ this.cedula = '';
239
+ this.nombre = '';
240
+ this.apellido = '';
241
+ this.sexo = '';
242
+ this.nexo = '';
243
+ this.fecha = '';
244
+ if (e) {
245
+ this.idEnterprise = +e.id_enterprise;
246
+ this.idEmpresa = +e.id_empresa;
247
+ this.idConcurso = parseInt(e.id_concurso);
248
+ this.idConcursante = parseInt(e.id_concursante);
249
+ this.idFamiliar = parseInt(e.id_familiacon);
250
+ this.codigo = e.codfam;
251
+ this.cedula = e.cedfam;
252
+ this.nombre = e.nomfam;
253
+ this.apellido = e.apefam;
254
+ this.sexo = e.sexfam;
255
+ this.nexo = e.nexfam;
256
+ this.fecha = e.fecnacfam;
257
+ }
258
+ else {
259
+ this.isNew = true;
260
+ }
261
+ }
262
+ dataInterface() {
263
+ return {
264
+ id_enterprise: this.idEnterprise.toString(),
265
+ id_empresa: this.idEmpresa,
266
+ id_concurso: this.idConcurso.toString(),
267
+ id_concursante: this.idConcursante.toString(),
268
+ id_familiacon: this.idFamiliar.toString(),
269
+ codfam: this.codigo,
270
+ cedfam: this.cedula,
271
+ nomfam: this.nombre,
272
+ apefam: this.apellido,
273
+ sexfam: this.sexo,
274
+ nexfam: this.nexo,
275
+ fecnacfam: this.fecha,
276
+ };
277
+ }
278
+ }
279
+ export class MFormacionInformal extends MBasicModel {
280
+ constructor(e = null) {
281
+ super();
282
+ this.idEnterprise = 0;
283
+ this.idEmpresa = 0;
284
+ this.idConcurso = 0;
285
+ this.idConcursante = 0;
286
+ this.idCurso = 0;
287
+ this.codigoCurso = '';
288
+ this.descripcionCurso = '';
289
+ this.horasCurso = 0;
290
+ if (e) {
291
+ this.idEnterprise = +e.id_enterprise;
292
+ this.idEmpresa = +e.id_empresa;
293
+ this.idConcursante = parseInt(e.id_concurso);
294
+ this.idConcursante = parseInt(e.id_concursante);
295
+ this.idCurso = parseInt(e.id_curso);
296
+ this.codigoCurso = e.codcur;
297
+ this.descripcionCurso = e.desestrea;
298
+ this.horasCurso = parseInt(e.horestrea);
299
+ }
300
+ else {
301
+ this.isNew = true;
302
+ }
303
+ }
304
+ dataInterface() {
305
+ return {
306
+ id_enterprise: this.idEnterprise.toString(),
307
+ id_empresa: this.idEmpresa,
308
+ id_concurso: this.idConcurso.toString(),
309
+ id_concursante: this.idConcurso.toString(),
310
+ id_curso: this.idCurso.toString(),
311
+ codcur: this.codigoCurso,
312
+ desestrea: this.descripcionCurso,
313
+ horestrea: this.horasCurso.toString()
314
+ };
315
+ }
316
+ }
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNvbmN1cnNhbnRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lnZXNwL3NyYy9saWIvY29yZS9tb2RlbHMvU05PL01Db25jdXJzYW50ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBNEJ6QyxZQUFhLElBQWUsSUFBSTtRQUM1QixLQUFLLEVBQUUsQ0FBQztRQTVCTCxpQkFBWSxHQUFRLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGVBQVUsR0FBUyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBUyxFQUFFLENBQUM7UUFDMUIsa0JBQWEsR0FBUyxDQUFDLENBQUM7UUFDeEIsV0FBTSxHQUFTLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFTLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUFTLEVBQUUsQ0FBQztRQUM1QixZQUFPLEdBQVMsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBUyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFTLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFTLEVBQUUsQ0FBQztRQUMzQixnQkFBVyxHQUFTLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQVMsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBUyxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFTLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQVMsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBUyxFQUFF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QUksQ0FBQyxVQUFVLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPO1lBQ0gsYUFBYSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQzFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1NBQ3hDLENBQUE7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uY3Vyc2FudGUsIElFc3R1ZGlvc0NvbmN1cnNhbnRlcywgSUV4cGVyaWVuY2lhTGFib3JhbCwgSUZhbWlsaWFDb25jdXJzYW50ZSwgSUZvcm1hY2lvbkluZm9ybWFsLCBJVHJhYmFqb3NDb25jdXJzYW50ZXMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9SZWN1cnNvc0h1bWFub3NcIjtcclxuaW1wb3J0IHsgTUJhc2ljTW9kZWwgfSBmcm9tIFwiLi4vYmFzaWMtbW9kZWwubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNQ29uY3Vyc2FudGUgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvQ29uY3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjZWR1bGE6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZFByb2Zlc2lvbjogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgcHJvZmVzaW9uOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVQcm9mZXNpb246c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5zY3JpcGNpb246IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVzOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgYXBlbGxpZG9zOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGlyZWNjaW9uOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZmVjaGFOYWNpbWllbnRvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZXN0YWRvQ2l2aWw6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29QYWlzOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpczogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvZGlnb0VzdGFkbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUVzdGFkbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5hY2lvbmFsaWRhZDogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIHRlbGVmb25vOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY2VsdWxhcjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvcnJlbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGdlbmVybzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5pdmVsQWNhZGVtaWNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBlc3RhdHVzUmVxdWlzaXRvczogbnVtYmVyPTE7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklDb25jdXJzYW50ZT1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbmN1cnNvPWUuY29kY29uO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2VkdWxhPWUuY2VkcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkUHJvZmVzaW9uPXBhcnNlSW50KGUuaWRfcHJvZmVzaW9uKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9mZXNpb249ZS5wcm9mZXNpb247XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUHJvZmVzaW9uPWUubm9tYnJlX3Byb2Zlc2lvbjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluc2NyaXBjaW9uPWUuZmVjcmVnO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZXM9ZS5ub21wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBlbGxpZG9zPWUuYXBlcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRpcmVjY2lvbj1lLmRpcnBlcjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYU5hY2ltaWVudG89ZS5mZWNuYWNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YWRvQ2l2aWw9ZS5lc3RjaXZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFpcz1lLmNvZHBhaTtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVQYWlzPWUubm9tYnJlX3BhaXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0YWRvPWUuY29kZXN0O1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZUVzdGFkbz1lLm5vbWJyZV9lc3RhZG87XHJcbiAgICAgICAgICAgIHRoaXMubmFjaW9uYWxpZGFkPWUubmFjcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRlbGVmb25vPWUudGVsaGFicGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNlbHVsYXI9ZS50ZWxtb3ZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29ycmVvPWUuZW1hcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVybz1lLnNleHBlcjtcclxuICAgICAgICAgICAgdGhpcy5uaXZlbEFjYWRlbWljbz1wYXJzZUludChlLm5pdmFjYXBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1JlcXVpc2l0b3M9cGFyc2VJbnQoZS5lc3Rjb25wZXIpO1xyXG5cclxuICAgICAgICB9ICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SUNvbmN1cnNhbnRle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZW1wcmVzYcKgOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzbzogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZGNvbjogdGhpcy5jb2RpZ29Db25jdXJzbyxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjZWRwZXI6IHRoaXMuY2VkdWxhLFxyXG4gICAgICAgICAgICBpZF9wcm9mZXNpb246IHRoaXMuaWRQcm9mZXNpb24udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcHJvZmVzaW9uOiB0aGlzLnByb2Zlc2lvbixcclxuICAgICAgICAgICAgbm9tYnJlX3Byb2Zlc2lvbjogdGhpcy5ub21icmVQcm9mZXNpb24sXHJcbiAgICAgICAgICAgIGZlY3JlZzogdGhpcy5mZWNoYUluc2NyaXBjaW9uLFxyXG4gICAgICAgICAgICBub21wZXI6IHRoaXMubm9tYnJlcyxcclxuICAgICAgICAgICAgYXBlcGVyOiB0aGlzLmFwZWxsaWRvcyxcclxuICAgICAgICAgICAgZGlycGVyOiB0aGlzLmRpcmVjY2lvbixcclxuICAgICAgICAgICAgZmVjbmFjcGVyOiB0aGlzLmZlY2hhTmFjaW1pZW50byxcclxuICAgICAgICAgICAgZXN0Y2l2cGVyOiB0aGlzLmVzdGFkb0NpdmlsLFxyXG4gICAgICAgICAgICBjb2RwYWk6IHRoaXMuY29kaWdvUGFpcyxcclxuICAgICAgICAgICAgbm9tYnJlX3BhaXM6IHRoaXMubm9tYnJlUGFpcyxcclxuICAgICAgICAgICAgY29kZXN0OiB0aGlzLmNvZGlnb0VzdGFkbyxcclxuICAgICAgICAgICAgbm9tYnJlX2VzdGFkbzogdGhpcy5ub21icmVFc3RhZG8sXHJcbiAgICAgICAgICAgIG5hY3BlcjogdGhpcy5uYWNpb25hbGlkYWQsXHJcbiAgICAgICAgICAgIHRlbGhhYnBlcjogdGhpcy50ZWxlZm9ubyxcclxuICAgICAgICAgICAgdGVsbW92cGVyOiB0aGlzLmNlbHVsYXIsXHJcbiAgICAgICAgICAgIGVtYXBlcjogdGhpcy5jb3JyZW8sXHJcbiAgICAgICAgICAgIHNleHBlcjogdGhpcy5nZW5lcm8sXHJcbiAgICAgICAgICAgIG5pdmFjYXBlcjogdGhpcy5uaXZlbEFjYWRlbWljby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBlc3Rjb25wZXI6IHRoaXMuZXN0YXR1c1JlcXVpc2l0b3MudG9TdHJpbmcoKVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNVHJhYmFqb3NDb25jdXJzYW50ZXMgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRUcmFiYWpvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZW1wcmVzYVRyYWJham9BbnRlcmlvcjpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY2FyZ29UcmFiYWpvQW50ZXJpb3I6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZmVjaGFSZXRpcm86c3RyaW5nPScnO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvciAoZT86SVRyYWJham9zQ29uY3Vyc2FudGVzKSB7ICBcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPStlLmlkX2VtcHJlc2HCoFxyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc289cGFyc2VJbnQoZS5pZF9jb25jdXJzbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNhbnRlKTtcclxuICAgICAgICAgICAgdGhpcy5pZFRyYWJham89cGFyc2VJbnQoZS5pZF90cmFiYWpvY29uKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ289ZS5jb2R0cmFwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZW1wcmVzYVRyYWJham9BbnRlcmlvcj1lLmVtcHRyYXBlcjtcclxuICAgICAgICAgICAgdGhpcy5jYXJnb1RyYWJham9BbnRlcmlvcj1lLmNhcnRyYWFudDtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluZ3Jlc289ZS5mZWNpbmd0cmFhbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZXRpcm89ZS5mZWNyZXR0cmFhbnQ7XHJcbiAgICAgICAgfSAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklUcmFiYWpvc0NvbmN1cnNhbnRlc3tcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzYW50ZTogdGhpcy5pZENvbmN1cnNhbnRlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3RyYWJham9jb246IHRoaXMuaWRUcmFiYWpvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHRyYXBlcjogdGhpcy5jb2RpZ28sXHJcbiAgICAgICAgICAgIGVtcHRyYXBlcjogdGhpcy5lbXByZXNhVHJhYmFqb0FudGVyaW9yLFxyXG4gICAgICAgICAgICBjYXJ0cmFhbnQ6IHRoaXMuY2FyZ29UcmFiYWpvQW50ZXJpb3IsIFxyXG4gICAgICAgICAgICBmZWNpbmd0cmFhbnQ6IHRoaXMuZmVjaGFJbmdyZXNvLCBcclxuICAgICAgICAgICAgZmVjcmV0dHJhYW50OiB0aGlzLmZlY2hhUmV0aXJvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTUVzdHVkaW9zQ29uY3Vyc2FudGVzIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcblx0cHVibGljIGlkRXN0dWRpbzogbnVtYmVyPTA7XHJcblx0cHVibGljIGNvZGlnb0VzdHVkaW86IHN0cmluZz0nJztcclxuXHRwdWJsaWMgaW5zdGl0dXRvRXN0dWRpbzogc3RyaW5nPScnO1xyXG5cdHB1YmxpYyBkZXNjcmlwY2lvbkVzdHVkaW86IHN0cmluZz0nJztcclxuXHRwdWJsaWMgZmVjaGFJbmljaW9Fc3R1ZGlvOiBzdHJpbmc9Jyc7XHJcblx0cHVibGljIGZlY2hhRmluRXN0dWRpbzogc3RyaW5nPScnO1xyXG5cdHB1YmxpYyB0aXR1bG9PYnRlbmlkbzogbnVtYmVyPTA7XHJcblx0cHVibGljIHllYXJBcHJvYmFkb3M6IG51bWJlcj0wO1xyXG5cdHB1YmxpYyBob3Jhc0VzdHVkaW9zUmVhbGl6YWRhczogbnVtYmVyPTA7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklFc3R1ZGlvc0NvbmN1cnNhbnRlcz1udWxsKSB7XHJcbiAgICAgICAgc3VwZXIoKTsgIFxyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG5cdFx0XHR0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcblx0XHRcdHRoaXMuaWRFc3R1ZGlvPXBhcnNlSW50KGUuaWRfZXN0dWRpb2Nvbik7XHJcblx0XHRcdHRoaXMuY29kaWdvRXN0dWRpbz1lLmNvZGVzdHJlYTtcclxuXHRcdFx0dGhpcy5pbnN0aXR1dG9Fc3R1ZGlvPWUuaW5zZXN0cGVyO1xyXG5cdFx0XHR0aGlzLmRlc2NyaXBjaW9uRXN0dWRpbz1lLmRlc2VzdHBlcjtcclxuXHRcdFx0dGhpcy5mZWNoYUluaWNpb0VzdHVkaW89ZS5mZWNpbmlyZWFlc3Q7XHJcblx0XHRcdHRoaXMuZmVjaGFGaW5Fc3R1ZGlvPWUuZmVjZmluZXN0cmVhO1xyXG5cdFx0XHR0aGlzLnRpdHVsb09idGVuaWRvPXBhcnNlSW50KGUudGl0ZXN0cGVyKTtcclxuXHRcdFx0dGhpcy55ZWFyQXByb2JhZG9zPXBhcnNlSW50KGUuYW5vYXByZXN0cGVyKTtcclxuXHRcdFx0dGhpcy5ob3Jhc0VzdHVkaW9zUmVhbGl6YWRhcz1wYXJzZUludChlLmhvcmVzdHJlYSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgICB9ICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRXN0dWRpb3NDb25jdXJzYW50ZXN7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhwqA6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNvOiB0aGlzLmlkQ29uY3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG5cdFx0XHRpZF9lc3R1ZGlvY29uOiB0aGlzLmlkRXN0dWRpby50b1N0cmluZygpLFxyXG5cdFx0XHRjb2Rlc3RyZWE6IHRoaXMuY29kaWdvRXN0dWRpbyxcclxuXHRcdFx0aW5zZXN0cGVyOiB0aGlzLmluc3RpdHV0b0VzdHVkaW8sXHJcblx0XHRcdGRlc2VzdHBlcjogdGhpcy5kZXNjcmlwY2lvbkVzdHVkaW8sXHJcblx0XHRcdGZlY2luaXJlYWVzdDogdGhpcy5mZWNoYUluaWNpb0VzdHVkaW8sXHJcblx0XHRcdGZlY2ZpbmVzdHJlYTogdGhpcy5mZWNoYUZpbkVzdHVkaW8sXHJcblx0XHRcdHRpdGVzdHBlcjogdGhpcy50aXR1bG9PYnRlbmlkby50b1N0cmluZygpLFxyXG5cdFx0XHRhbm9hcHJlc3RwZXI6IHRoaXMueWVhckFwcm9iYWRvcy50b1N0cmluZygpLFxyXG5cdFx0XHRob3Jlc3RyZWE6IHRoaXMuaG9yYXNFc3R1ZGlvc1JlYWxpemFkYXMudG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNRXhwZXJpZW5jaWFMYWJvcmFsIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFRyYWJham9Db25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvVHJhYmFqbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGVtcHJlc2E6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjYXJnbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhUmV0aXJvOiBzdHJpbmc9Jyc7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklFeHBlcmllbmNpYUxhYm9yYWw9bnVsbCkgeyAgXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBpZiAoZSl7XHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPXBhcnNlSW50KGUuaWRfZW1wcmVzYSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNvKTtcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNhbnRlPXBhcnNlSW50KGUuaWRfY29uY3Vyc2FudGUpO1xyXG4gICAgICAgICAgICB0aGlzLmlkVHJhYmFqb0NvbmN1cnNhbnRlPXBhcnNlSW50KGUuaWRfdHJhYmFqb2Nvbik7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvVHJhYmFqbz1lLmNvZHRyYTtcclxuICAgICAgICAgICAgdGhpcy5lbXByZXNhPWUuZW1wdHJhcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmdvPWUuY2FydHJhYW50O1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5ncmVzbz1lLmZlY2luZ3RyYWFudDtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVJldGlybz1lLmZlY3JldHRyYWFudDtcclxuICAgICAgICB9ICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRXhwZXJpZW5jaWFMYWJvcmFse1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2E6IHRoaXMuaWRFbXByZXNhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNvOiB0aGlzLmlkQ29uY3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF90cmFiYWpvY29uOiB0aGlzLmlkVHJhYmFqb0NvbmN1cnNhbnRlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHRyYTogdGhpcy5jb2RpZ29UcmFiYWpvLFxyXG4gICAgICAgICAgICBlbXB0cmFwZXI6IHRoaXMuZW1wcmVzYSxcclxuICAgICAgICAgICAgY2FydHJhYW50OiB0aGlzLmNhcmdvLFxyXG4gICAgICAgICAgICBmZWNpbmd0cmFhbnQ6IHRoaXMuZmVjaGFJbmdyZXNvLFxyXG4gICAgICAgICAgICBmZWNyZXR0cmFhbnQ6IHRoaXMuZmVjaGFSZXRpcm9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNRmFtaWxpYUNvbmN1cnNhbnRlIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRGYW1pbGlhcjogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNvZGlnbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNlZHVsYTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGFwZWxsaWRvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgc2V4bzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5leG86IHN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZmVjaGE6IHN0cmluZz0nJztcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IgKGU6SUZhbWlsaWFDb25jdXJzYW50ZT1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRGYW1pbGlhcj1wYXJzZUludChlLmlkX2ZhbWlsaWFjb24pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnbz1lLmNvZGZhbTtcclxuICAgICAgICAgICAgdGhpcy5jZWR1bGE9ZS5jZWRmYW07XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlPWUubm9tZmFtO1xyXG4gICAgICAgICAgICB0aGlzLmFwZWxsaWRvPWUuYXBlZmFtO1xyXG4gICAgICAgICAgICB0aGlzLnNleG89ZS5zZXhmYW07XHJcbiAgICAgICAgICAgIHRoaXMubmV4bz1lLm5leGZhbTtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYT1lLmZlY25hY2ZhbVxyXG4gICAgICAgIH0gICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRmFtaWxpYUNvbmN1cnNhbnRle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZW1wcmVzYcKgOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzbzogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNhbnRlOiB0aGlzLmlkQ29uY3Vyc2FudGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZmFtaWxpYWNvbjogdGhpcy5pZEZhbWlsaWFyLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBjb2RmYW06IHRoaXMuY29kaWdvLFxyXG4gICAgICAgICAgICBjZWRmYW06IHRoaXMuY2VkdWxhLFxyXG4gICAgICAgICAgICBub21mYW06IHRoaXMubm9tYnJlLFxyXG4gICAgICAgICAgICBhcGVmYW06IHRoaXMuYXBlbGxpZG8sXHJcbiAgICAgICAgICAgIHNleGZhbTogdGhpcy5zZXhvLFxyXG4gICAgICAgICAgICBuZXhmYW06IHRoaXMubmV4byxcclxuICAgICAgICAgICAgZmVjbmFjZmFtOiB0aGlzLmZlY2hhLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1Gb3JtYWNpb25JbmZvcm1hbCBleHRlbmRzIE1CYXNpY01vZGVsIHtcclxuICAgIHB1YmxpYyBpZEVudGVycHJpc2U6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZENvbmN1cnNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEN1cnNvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvQ3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvbkN1cnNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaG9yYXNDdXJzbzogbnVtYmVyPTA7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklGb3JtYWNpb25JbmZvcm1hbD1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPStlLmlkX2VtcHJlc2HCoFxyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNhbnRlKTtcclxuICAgICAgICAgICAgdGhpcy5pZEN1cnNvPXBhcnNlSW50KGUuaWRfY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0N1cnNvPWUuY29kY3VyO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uQ3Vyc289ZS5kZXNlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yYXNDdXJzbz1wYXJzZUludChlLmhvcmVzdHJlYSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH0gIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklGb3JtYWNpb25JbmZvcm1hbHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzYW50ZTogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2N1cnNvOiB0aGlzLmlkQ3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kY3VyOiB0aGlzLmNvZGlnb0N1cnNvLFxyXG4gICAgICAgICAgICBkZXNlc3RyZWE6IHRoaXMuZGVzY3JpcGNpb25DdXJzbyxcclxuICAgICAgICAgICAgaG9yZXN0cmVhOiB0aGlzLmhvcmFzQ3Vyc28udG9TdHJpbmcoKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==