+
+
diff --git a/.codex-links/WebIntranet/AnularPicadas.aspx.designer.vb b/.codex-links/WebIntranet/AnularPicadas.aspx.designer.vb
new file mode 100644
index 0000000..023f4f4
--- /dev/null
+++ b/.codex-links/WebIntranet/AnularPicadas.aspx.designer.vb
@@ -0,0 +1,96 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class AnularPicadas
+
+ '''
+ '''Control intPicadaPersBL.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents intPicadaPersBL As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control Li1.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents Li1 As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control VAAPBCBLpers.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents VAAPBCBLpers As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control estIncPicBL.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents estIncPicBL As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control cbPersonas.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents cbPersonas As Global.DevExpress.Web.ASPxComboBox
+
+ '''
+ '''Control fechaInicioListInc.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents fechaInicioListInc As Global.System.Web.UI.HtmlControls.HtmlInputGenericControl
+
+ '''
+ '''Control fechaFinListInc.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents fechaFinListInc As Global.System.Web.UI.HtmlControls.HtmlInputGenericControl
+
+ '''
+ '''Control btnAnuPic.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents btnAnuPic As Global.System.Web.UI.HtmlControls.HtmlInputButton
+
+ '''
+ '''Control tablaPicadasAnular.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents tablaPicadasAnular As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/AnularPicadas.aspx.vb b/.codex-links/WebIntranet/AnularPicadas.aspx.vb
new file mode 100644
index 0000000..9cbff2b
--- /dev/null
+++ b/.codex-links/WebIntranet/AnularPicadas.aspx.vb
@@ -0,0 +1,105 @@
+Imports System.Net.Http
+Imports Newtonsoft.Json
+
+Public Class AnularPicadas
+ Inherits System.Web.UI.Page
+
+ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ If Session("usuario") = "" Then
+ Response.Redirect("default.aspx")
+ End If
+ estIncPicBL.Visible = False
+ If Session("modo") = "PERSONAL" Then
+ If Session("persona").Personas(0).Dni = "44286377S" Then
+ estIncPicBL.Visible = True
+ End If
+ Dim persons As List(Of Models.Personal) = Session("persona").Personas
+ Dim listaPersonas As New List(Of Models.Personal)
+ Dim listDni = Session("usuariosSeleccionados")
+ For Each pers As String In listDni
+ Dim per = persons.FirstOrDefault(Function(x) x.Dni = pers)
+ listaPersonas.Add(per)
+ Next
+ cbPersonas.DataSource = listaPersonas.OrderBy(Function(x) x.Nombre)
+ cbPersonas.DataBind()
+ 'Dim DivSelect = ""
+ 'selPersonas.InnerHtml = DivSelect
+ Else
+ Response.Redirect("default.aspx")
+ End If
+ End Sub
+
+ Protected Async Sub cargarPicadas(sender As Object, e As EventArgs)
+ Dim persona As New List(Of String)
+ persona.Add(cbPersonas.Value)
+ Dim Fei = CDate(fechaInicioListInc.Value)
+ Dim Fef = CDate(fechaFinListInc.Value)
+
+ Dim consulta As New Models.Consulta
+ consulta.listaNif = persona
+ consulta.fechaInicio = Fei
+ consulta.fechaFin = Fef
+ Dim jsonConsulta As String = JsonConvert.SerializeObject(consulta)
+ Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/ListPicadasAnular"
+ Dim clienteHTTP As New HttpClient
+ Dim contenidoConsultaHTTP As New StringContent(jsonConsulta, Encoding.UTF8, "application/json")
+ Debug.WriteLine("CargarListadodePicadasAsync:1===" + Now.ToLongTimeString)
+ Dim respuestaHTTP As HttpResponseMessage = Await clienteHTTP.PostAsync(url, contenidoConsultaHTTP).ConfigureAwait(False)
+ Debug.WriteLine("CargarListadodePicadasAsync:2===" + Now.ToLongTimeString)
+ Dim sRespuesta As String = Await respuestaHTTP.Content.ReadAsStringAsync().ConfigureAwait(False)
+ Debug.WriteLine("CargarListadodePicadasAsync:3===" + Now.ToLongTimeString)
+ Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
+ settings.CheckAdditionalContent = True
+ Dim objetoDatos As List(Of Models.listPicadasAnular) =
+ Newtonsoft.Json.JsonConvert.DeserializeObject(Of List(Of Models.listPicadasAnular))(sRespuesta, settings)
+
+ Dim html = ""
+
+ html += "
" +
+ "
Inactiva
Fecha / Hora
Incidencia
"
+
+ For Each picada As Models.listPicadasAnular In objetoDatos
+ Dim check = If(picada.activo = True, "checked", "")
+ html += "
" + picada.fecha.ToString("dd/MM/yyyy HH:mm") + "
" + picada.incidencia + "
"
+ Next
+
+ html += "
"
+
+ tablaPicadasAnular.InnerHtml = html
+ tablaPicadasAnular.Style.Add("display", "flex !important")
+ End Sub
+
+ Public Shared Async Function ModificarPicadas(cbList As String) As Threading.Tasks.Task(Of String)
+
+ Dim objetoConsulta As New List(Of Models.EditarPicadasAnuladas)
+ Dim cbList1 = cbList.Split("/")
+ For Each str As String In cbList1
+ Dim s = str.Split("-")
+ Dim nEdPi As New Models.EditarPicadasAnuladas
+ nEdPi.idPicada = CInt(s(0))
+ nEdPi.estado = CBool(s(1))
+ objetoConsulta.Add(nEdPi)
+ Next
+
+ Dim jsonConsulta As String = JsonConvert.SerializeObject(objetoConsulta)
+ Dim url As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/EditarPicadasAnular"
+ Dim clienteHTTP As New HttpClient
+ Dim contenidoConsultaHTTP As New StringContent(jsonConsulta, Encoding.UTF8, "application/json")
+ Debug.WriteLine("CargarListadodePicadasAsync:1===" + Now.ToLongTimeString)
+ Dim respuestaHTTP As HttpResponseMessage = Await clienteHTTP.PostAsync(url, contenidoConsultaHTTP).ConfigureAwait(False)
+ Debug.WriteLine("CargarListadodePicadasAsync:2===" + Now.ToLongTimeString)
+ Dim sRespuesta As String = Await respuestaHTTP.Content.ReadAsStringAsync().ConfigureAwait(False)
+ Debug.WriteLine("CargarListadodePicadasAsync:3===" + Now.ToLongTimeString)
+ Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
+ settings.CheckAdditionalContent = True
+ Dim objetoDatos As Models.resultadoEditarPicadasAnuladas =
+ Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.resultadoEditarPicadasAnuladas)(sRespuesta, settings)
+
+
+ Return objetoDatos.mensaje
+ End Function
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Clases.vb b/.codex-links/WebIntranet/Clases.vb
new file mode 100644
index 0000000..95947dd
--- /dev/null
+++ b/.codex-links/WebIntranet/Clases.vb
@@ -0,0 +1,568 @@
+
+Namespace Models
+
+ Public Class TramoTeletrabajoExcepcion
+ Public Property fechaInicio As Date
+ Public Property fechaFin As Date
+ Public Property idExcepTel As Integer
+ Public Property idPersona As Integer
+ Public Property motivo As String
+
+ End Class
+ Public Class ResultadoListadoExcepciones
+ Public Property resultado As Integer
+ Public Property mensaje As String
+ Public Property listado As List(Of TramoTeletrabajoExcepcion)
+ End Class
+ Public Class ResultadoListTeletrabajoEntreFechas
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property ListadoEF As List(Of TramosTeletrabajo)
+ End Class
+ Public Class TramosTeletrabajo
+ Public Property id As Integer
+ Public Property nuDias As Integer
+ Public Property excepcion As Boolean
+ Public Property lunes As Boolean
+ Public Property martes As Boolean
+ Public Property miercoles As Boolean
+ Public Property jueves As Boolean
+ Public Property viernes As Boolean
+ Public Property motivo As String
+ Public Property Fei As Date
+ Public Property Fef As Date
+ End Class
+ Public Class resultadoEditarPicadasAnuladas
+ Public Property resultado As Integer
+ Public Property mensaje As String
+ End Class
+ Public Class EditarPicadasAnuladas
+ Public Property idPicada As Integer
+ Public Property estado As Boolean
+ End Class
+ Public Class ResultadoObtenerHAD
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property HAD As String
+ End Class
+ Public Class EnumDepartamento
+ Public Property idDep As Integer
+ Public Property Descripcion As String
+ End Class
+ Public Class listPicadasAnular
+ Public Property id As Integer
+ Public Property idUsu As Integer
+ Public Property fecha As Date
+ Public Property incidencia As String
+ Public Property activo As Boolean
+ End Class
+
+ Public Class FechaIniFin
+ Property fechaInicio As String
+ Property fechaFin As String
+ End Class
+ Public Class ResultadoIdentificacion
+ Public Property resultado As Integer
+ Public Property Personas As List(Of Personal)
+ Public Property FeIniInciPorAceptar As Date
+ Public Property FeFinInciPorAceptar As Date
+ Public Property FeIniInciBorrador As Date
+ Public Property FeFinInciBorrador As Date
+ Public Property errores As String
+ End Class
+ Public Class Identificacion
+ Public Property Nif As String
+ Public Property clave As String
+ Public Property origen As String
+ Public Property resultado As String
+ End Class
+
+ Public Class SituacionPersonalOficina
+ Public Property PerenlaOficina As List(Of PersonaSituacion)
+ Public Property PerconIncidencia As List(Of PersonaSituacion)
+ End Class
+
+ Public Class PersonaSituacion
+ Public Property Nif As String
+ Public Property ApeNom As String
+ Public Property Situacion As String
+ End Class
+ Public Class GenerarForaTer
+ Public Property nif As String
+ Public Property Swift As String
+ Public Property Bic As String
+ Public Property Entidad As String
+ Public Property IBAN As String
+ End Class
+ Public Class ResultadoGenerarForaTer
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroForaTer As Byte()
+ End Class
+
+ Public Class compAcceso
+ Public Property idAcceso As String
+ Public Property clave As String
+
+ End Class
+
+ Public Class ResultadoListPicaEntreFechas
+ Public Property resultado As Integer
+ Public Property Mensaje As String
+ Public Property ListadoEF As ListadoPicadasEntreFechas
+ End Class
+ Public Class ListadoPicadasEntreFechas
+ Property ListaDepartamento As List(Of Departamento)
+ Property FechaInicio As String
+ Property FechaFin As String
+ Property HorasTraPeriodo As Double
+ End Class
+
+ Public Class Departamento
+ Property NombreDepartamento As String
+ Property LisPersonas As List(Of PersonaCH)
+ End Class
+ Public Class Anos_Meses_Dias
+ Property Anos As Integer
+ Property Meses As Integer
+ Property Dias As Integer
+
+ End Class
+ Public Class PersonaCH
+ Property ApellidosNombre As String
+ Property LisFechasTurnos As List(Of FechaTurno)
+ Property TotalesPeriodo As TotalPeriodo
+ End Class
+
+ Public Class FechaTurno
+ Property DesFechaTurno As String
+ Property LisPicadasAsistencias As List(Of PicadaAsistencia)
+ Property TotalesPeriodo As TotalPeriodo
+ End Class
+
+ Public Class PicadaAsistencia
+ Property Fecha As String
+ Property Hora As String
+ Property HoraReal As String
+ Property Incidencia As String
+ Property HorasATrabajar As String
+ Property HorasTrabajadas As String
+ Property HorasExtraACompensar As String
+ Property HorasExtraAguardar As String
+ Property Saldo As String
+ Property HorasRecuperables As String
+ Property HorasIncumplimiento As String
+ Property HorasTrabajadasTarde As String
+ Property NumeroPicada As String
+ End Class
+
+ Public Class TotalPeriodo
+ Property TotalHorasATrabajar As String
+ Property TotalHorasTrabajadas As String
+ Property TotalHorasExtraACompensar As String
+ Property TotalHorasExtraAguardar As String
+ Property TotalSaldo As String
+ Property TotalHorasRecuperables As String
+ Property TotalHorasIncumplimiento As String
+ Property TotalHorasTrabajadasTarde As String
+ End Class
+ Public Class Persona
+ Public Property Nombre As String
+ Public Property Apellidos As String
+ Public Property DNI As String
+ Public Property email() As String
+ Public Property FechaNacimiento As Date?
+ Public Property Telefono As String
+ Public Property Direccion As String
+ Public Property CodigoPostal As String
+ Public Property Provincia As String
+ Public Property Poblacion As String
+ Public Property FechaAlta As Date?
+ End Class
+ Public Class NominaTrabajador
+ Public Property idNominaTrabajador As String
+ Public Property Descripcion As String
+ Public Property MesNomina As Integer
+ End Class
+ Public Class Incidencias
+ Public Property idIncidencias As String
+ Public Property Descripcion As String
+ Public Property EsInciReloj As Boolean
+ End Class
+ Public Class ResultadoHorasExtrasEntreFechas
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property HorasEF As HorasExtEntreFech
+ End Class
+
+ Public Class HorasExtEntreFech
+ Property FechaInicio As Date()
+ Property FechaFin As Date()
+ Property Nombre As String
+ Property SaldoPeriodo As String
+ Property SalcoAcumulado As String
+ Property ListadoHorasExtras As List(Of HoraExtra)
+
+ End Class
+
+ Public Class HoraExtra
+ Property Fecha As Date
+ Property Horas As String
+ Property Descripcion As String
+
+ End Class
+ Public Class ClaVaApBc
+ Property Anno As Integer
+ Property Nombre As String
+ Property TotPerVa As String
+ Property TotDisVa As String
+ Property TotDifVa As String
+ Property TotPerAp As String
+ Property TotDisAp As String
+ Property TotDifAp As String
+ Property TotPerBc As String
+ Property TotDisBc As String
+ Property TotDifBc As String
+ Property TotPerDr As String
+ Property TotDisDr As String
+ Property TotDifDr As String
+ Property TotPerHr As String
+ Property TotDisHr As String
+ Property TotDifHr As String
+
+ Property ListadoVaApBc As List(Of VaApBc)
+ End Class
+
+ Public Class VaApBc
+ Property Fecha As Date
+ Property FechaFin As Date
+ Property Descripcion As String
+ Property HorasManana As String
+ Property HorasTarde As String
+ Property NumDias As Integer
+ End Class
+ Public Class ResultadoSituacionVAAPBC
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property DiasVAB As List(Of ClaVaApBc)
+ End Class
+ 'Public Class ResultadoIdentificacion
+ ' Public Property resultado As Integer
+ ' Public Property Personas As List(Of Personal)
+ ' Public Property FeIniInciPorAceptar As Date
+ ' Public Property FeFinInciPorAceptar As Date
+ ' Public Property errores As String
+ 'End Class
+ Public Class Personal
+ Public Property Nombre As String
+ Public Property Dni As String
+ Public Property idPersona As Integer
+ Public Property Departamento As String
+ Public Property Roll As String
+ Public Property Grupo As String
+ Public Property NumeroInciPorAceptar As Integer
+ Public Property FeIniInciPorAceptar As Date
+ Public Property FeFinInciPorAceptar As Date
+
+
+ End Class
+ Public Class ListaPersonasDelegadas
+ Public Property nifIdent As String
+ Public Property listaPersonasDel As List(Of PersonaDelegada)
+ End Class
+ Public Class PersonaDelegada
+ Public Property Nif As String
+ Public Property Delegado As Boolean
+ End Class
+
+ Public Class Consulta
+ Public Property fechaInicio As Nullable(Of Date)
+ Public Property fechaFin As Nullable(Of Date)
+ Public Property listaNif As List(Of String)
+ End Class
+
+ Public Class ListAsisEntreFechas
+ Property ListaPersonas As List(Of PersonaAsi)
+ Property FechaInicio As String
+ Property FechaFin As String
+
+ End Class
+
+ Public Class PersonaAsi
+ Property ApellidosNombre As String
+ Property Nif As String
+ Property LisAsistencias As List(Of Asistencia)
+
+ End Class
+
+ Public Class Asistencia
+ Property idAsistencia As Integer
+ Property DesAsistencia As String
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property HorasTraManana As String
+ Public Property HorasTraTarde As String
+ Public Property Observaciones As String
+ Public Property ExpedienteECO As String
+ Public Property Estado As String
+ Public Property DesWeb As String
+ Public Property Tipo As String
+ Public Property Ndias As Integer
+
+ End Class
+ Public Class ResultadoListAsisEntreFechas
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property ListadoEF As ListAsisEntreFechas
+ Public Property ListadoEFNoAceptada As ListAsisEntreFechas
+
+ End Class
+
+ Public Class ResultadoObtenAsistencia
+ '''
+ ''' Devuelve 0 si es correcto en caso que no sea 0 devuelve error
+ '''
+ '''
+ '''
+ Public Property Nif As String
+ Public Property ApellidosNombre As String
+ Public Property idAsistencia As Integer
+ Public Property DesAsistencia As String
+ Public Property idIncidenciaControlHorario As Integer
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property HoraInicioManana As String
+ Public Property HoraFinManana As String
+ Public Property HorasTraManana As String
+ Public Property HoraInicioTarde As String
+ Public Property HoraFinTarde As String
+ Public Property HorasTraTarde As String
+ Public Property Observaciones As String
+ Public Property PosiblesEstados As List(Of Estados)
+ Public Property PuedeCambiarEstado As Boolean
+ Public Property EstadosAsistencia As List(Of EstadosdelaAsistencia)
+ Public Property IdEstadoActual As Integer
+ Public Property DesEstadoActual As String
+ Public Property Expediente As String
+ Public Property ExisteArchivo As Boolean = False
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+
+ End Class
+
+ Public Class EstadosdelaAsistencia
+ Public Property FechaHora As Date
+ Public Property IdTipoEstado As Integer
+ Public Property Usuario As String
+ Public Property InformacionAnexa As String
+ Public Property Observaciones As String
+
+
+ End Class
+ Public Class Estados
+ Public Property idEstado As String
+ Public Property Descripcion As String
+
+ End Class
+
+ Public Class EstadosAsistencia
+ Private Property listaEstados As List(Of Estados)
+ End Class
+
+ Public Class Incidencia
+ Public Property idIncidencias As String
+ Public Property Descripcion As String
+ Public Property EsInciReloj As Boolean
+ Public Property RequiereAprobacion As Boolean
+ Public Property AdmiteDiasCompletos As Boolean
+ Public Property AdmiteIntervaloDias As Boolean
+ Public Property AdmiteIntervaloHoras As Boolean
+ Public Property AdmiteInstanteTemporal As Boolean
+ Public Property AdmiteRangosFechas As Boolean
+ Public Property Adjunto As String
+ Public Property idGrupo As String
+ Public Property idSubgrupo As String
+ Public Property visibleWeb As Boolean
+ Public Property descripcionWeb As String
+ Public Property ayudaWeb As String
+ Public Property orden As Integer
+ ReadOnly Property Nombre As String
+ Get
+ If descripcionWeb IsNot Nothing Then
+ Nombre = descripcionWeb
+ Else
+ Nombre = Descripcion
+ End If
+ End Get
+ End Property
+
+ End Class
+ Public Class FicheroAtrasnmitir
+ Public Property idRegistro As Integer
+ Public Property tabla As String
+ Public Property Fichero As String
+
+ End Class
+ Public Class ResultadoAlmacenaFicheroAtransmitir
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+
+ End Class
+ Public Class grupos
+ Public Property idGrupo As String
+ Public Property Descripcion As String
+ Public Property NumIncidencias As Integer
+ Public Property NumSolicitudes As Integer
+ Public Property orden As Integer
+ Public Property ayudaWeb As String
+
+ End Class
+ Public Class subGrupos
+ Public Property idSubGrupo As Integer
+ Public Property ayudaWeb As String
+ Public Property descripcion As String
+ Public Property orden As Integer
+ Public Property numCom As Integer
+ Public Property numSol As Integer
+ End Class
+ Public Class ResultadoSubGruposIncidenciasControlHorario
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property listaSubgrupos As List(Of subGrupos)
+ End Class
+ Public Class ResultadoModificaPersonasDelegadas
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property Personas As List(Of Personal)
+ Public Property FeIniInciPorAceptar As Date
+ Public Property FeFinInciPorAceptar As Date
+ End Class
+ Public Class ConsultaAnnoMes
+ Public Property Anno As Integer
+ Public Property Mes As Integer
+ Public Property listaNif As List(Of String)
+ End Class
+
+ Public Class ResultadoExcelResumenAsistencia
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+
+ Public Class AlmacenaFicheroIncidencia
+ Public Property idAsistencia As Integer
+ Public Property Fichero As String
+ End Class
+
+ Public Class ResultadoGenAsisEntreFechas
+ '''
+ ''' Devuelve 0 si es correcto en caso que no sea 0 devuelve error
+ '''
+ '''
+ Public Property Resultado As Integer
+
+ Public Property idAsistencia As Integer
+
+ Public Property Mensaje As String
+ End Class
+ Public Class ResultadoGenTeletrabajoEntreFechas
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property Errores As List(Of String)
+ Public Property ListadoEF As ListTeleTrabajoEntreFechas
+ End Class
+ Public Class GenTeletrabajoEntreFechas
+ Public Property ListNif As List(Of String)
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property ListadoEF As ListTeleTrabajoEntreFechas
+ End Class
+ Public Class ListTeleTrabajoEntreFechas
+ Property ListaPersonas As List(Of PersonaAsi)
+ Property FechaInicio As String
+ Property FechaFin As String
+
+ End Class
+ Public Class ListAsisMasivas
+
+ Public Property Nif As String
+
+ Public Property ListAsis As List(Of AsisEstado)
+
+ End Class
+
+ Public Class AsisEstado
+
+ Public Property idAsistencia As Integer
+
+ Public Property idEstado As Integer
+
+ End Class
+
+ Public Class NifPersona
+ Property Nif As String
+ End Class
+ Public Class ResultadoObtenerDatosPersonales
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property DatosPersonales As DatosPersonas
+ End Class
+ Public Class ObtenerDatosPersonales
+ Public Property Nif As String
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property DatosPersonales As DatosPersonas
+ End Class
+ Public Class DatosPersonas
+ Public Property Nif As String
+ Public Property Direccion As String
+ Public Property CodigoPostal As String
+ Public Property Poblacion As String
+ Public Property Provincia As String
+ Public Property Telefono As String
+ Public Property Movil As String
+ Public Property IBAN As String
+ End Class
+ Public Class ResultadoExcelHojaAcreditacionDatos
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+ Public Class ExcelHojaAcreditacionDatos
+ Public Property ListNif As List(Of String)
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+ Public Class ResultadoSolicitudConsolidacionGrado
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+ Public Class SolicitudConsolidacionGrado
+ Public Property ListNif As List(Of String)
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+ Public Class ResultadoExcelRPT
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+ Public Class ExcelRPT
+ Public Property ListNif As List(Of String)
+ Public Property FechaInicio As Date
+ Public Property FechaFin As Date
+ Public Property Resultado As Integer
+ Public Property Mensaje As String
+ Public Property FicheroExcel As Byte()
+ End Class
+
+End Namespace
diff --git a/.codex-links/WebIntranet/Content/1-oaaf-logo.svg b/.codex-links/WebIntranet/Content/1-oaaf-logo.svg
new file mode 100644
index 0000000..10a180d
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/1-oaaf-logo.svg
@@ -0,0 +1,69 @@
+
+
+
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Black.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Black.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Black.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Black.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-BlackItalic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-BlackItalic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-BlackItalic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-BlackItalic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Bold.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Bold.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Bold.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Bold.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-BoldItalic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-BoldItalic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-BoldItalic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-BoldItalic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Italic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Italic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Italic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Italic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Light.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Light.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Light.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Light.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-LightItalic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-LightItalic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-LightItalic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-LightItalic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Medium.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Medium.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Medium.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Medium.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-MediumItalic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-MediumItalic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-MediumItalic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-MediumItalic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Regular.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Regular.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Regular.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Regular.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Thin.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-Thin.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-Thin.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-Thin.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-ThinItalic.ttf b/.codex-links/WebIntranet/Content/FUENTES/Roboto-ThinItalic.ttf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Roboto-ThinItalic.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/Roboto-ThinItalic.ttf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Satoshi-Black.otf b/.codex-links/WebIntranet/Content/FUENTES/Satoshi-Black.otf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Satoshi-Black.otf
rename to .codex-links/WebIntranet/Content/FUENTES/Satoshi-Black.otf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Satoshi-Regular.otf b/.codex-links/WebIntranet/Content/FUENTES/Satoshi-Regular.otf
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/FUENTES/Satoshi-Regular.otf
rename to .codex-links/WebIntranet/Content/FUENTES/Satoshi-Regular.otf
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-brands-400.ttf b/.codex-links/WebIntranet/Content/FUENTES/fa-brands-400.ttf
similarity index 96%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-brands-400.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/fa-brands-400.ttf
index 774d51a..641a489 100644
Binary files a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-brands-400.ttf and b/.codex-links/WebIntranet/Content/FUENTES/fa-brands-400.ttf differ
diff --git a/.codex-links/WebIntranet/Content/FUENTES/fa-brands-400.woff2 b/.codex-links/WebIntranet/Content/FUENTES/fa-brands-400.woff2
new file mode 100644
index 0000000..5929101
Binary files /dev/null and b/.codex-links/WebIntranet/Content/FUENTES/fa-brands-400.woff2 differ
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-regular-400.ttf b/.codex-links/WebIntranet/Content/FUENTES/fa-regular-400.ttf
similarity index 72%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-regular-400.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/fa-regular-400.ttf
index 8a9d634..7d634a2 100644
Binary files a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-regular-400.ttf and b/.codex-links/WebIntranet/Content/FUENTES/fa-regular-400.ttf differ
diff --git a/.codex-links/WebIntranet/Content/FUENTES/fa-regular-400.woff2 b/.codex-links/WebIntranet/Content/FUENTES/fa-regular-400.woff2
new file mode 100644
index 0000000..953d554
Binary files /dev/null and b/.codex-links/WebIntranet/Content/FUENTES/fa-regular-400.woff2 differ
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-solid-900.ttf b/.codex-links/WebIntranet/Content/FUENTES/fa-solid-900.ttf
similarity index 82%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-solid-900.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/fa-solid-900.ttf
index 993dbe1..b3a2b64 100644
Binary files a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-solid-900.ttf and b/.codex-links/WebIntranet/Content/FUENTES/fa-solid-900.ttf differ
diff --git a/.codex-links/WebIntranet/Content/FUENTES/fa-solid-900.woff2 b/.codex-links/WebIntranet/Content/FUENTES/fa-solid-900.woff2
new file mode 100644
index 0000000..83433f4
Binary files /dev/null and b/.codex-links/WebIntranet/Content/FUENTES/fa-solid-900.woff2 differ
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-v4compatibility.ttf b/.codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.ttf
similarity index 76%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-v4compatibility.ttf
rename to .codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.ttf
index ab6ae22..e4eea68 100644
Binary files a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/webfonts/fa-v4compatibility.ttf and b/.codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.ttf differ
diff --git a/.codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.woff2 b/.codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.woff2
new file mode 100644
index 0000000..e804f18
Binary files /dev/null and b/.codex-links/WebIntranet/Content/FUENTES/fa-v4compatibility.woff2 differ
diff --git a/.codex-links/WebIntranet/Content/Site.css b/.codex-links/WebIntranet/Content/Site.css
new file mode 100644
index 0000000..4be33cc
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/Site.css
@@ -0,0 +1,2875 @@
+
+
+/**************************************ESTILO BASE***********************************/
+:root {
+ --AzulOAAF: #2291d0;
+ --GrisOscuroOAAF: #343334;
+ --AzulClaroOAAF: #6fafd3;
+ --GrisClaroOAAF: #a4a3a4;
+ --GrisNeutro: #e9e9e9;
+ --TT1: #cdf1b1;
+ --TT2: #52ecf6;
+ --TT3: #ea8361;
+ --TTEx: #ba65f5;
+}
+
+.gestionPropia {
+ --AzulOAAF: #2291d0;
+ --GrisOscuroOAAF: #343334;
+ --AzulClaroOAAF: #6fafd3;
+ --GrisClaroOAAF: #a4a3a4;
+}
+
+.gestionPersonal {
+ --AzulOAAF: #343334;
+ --AzulClaroOAAD: #a4a3a4;
+ --GrisOscuroOAAF: #2291d0;
+ --GrisClaroOAAF: #6fafd3;
+}
+
+@font-face {
+ font-family: 'RobotoB';
+ src: url('FUENTES/Roboto-Bold.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'RobotoI';
+ src: url('FUENTES/Roboto-Italic.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ src: url('FUENTES/Roboto-Regular.ttf') format('truetype');
+}
+
+@font-face {
+ font-family: 'SatoshiB';
+ src: url('FUENTES/Satoshi-Black.otf') format('opentype');
+}
+
+@font-face {
+ font-family: 'Satoshi';
+ src: url('FUENTES/Satoshi-Regular.otf') format('opentype');
+}
+
+
+/**************************************ESTILO GENERAL***********************************/
+p {
+ font-family: "Satoshi";
+
+}
+.op05{
+ opacity:0.5;
+}
+.celdaBoton{
+ cursor:pointer;
+ text-align:center;
+ font-weight:bold
+}
+.celdaBoton:hover {
+ color:white;
+ background-color: var(--AzulOAAF);
+
+}
+.celdaH {
+ background-color: var(--AzulOAAF);
+ border: 1px solid white;
+ border-collapse: collapse;
+ border-bottom: none;
+}
+
+ .celdaH p {
+ text-decoration: none;
+ color: white;
+ text-align: center;
+ word-wrap: break-word;
+ }
+
+ .celdaH p:hover {
+ text-decoration: none;
+ color: white;
+ }
+
+.celdaD {
+ border: 1px solid black;
+ border-collapse: collapse;
+ padding-block: 2px;
+}
+
+ .celdaD p {
+ text-align: center;
+ margin: 0;
+ color: black;
+ word-wrap: break-word;
+ }
+
+.multiselect {
+ width: 200px;
+}
+
+.selectBox {
+ position: relative;
+}
+
+ .selectBox select {
+ width: 100%;
+ font-weight: bold;
+ }
+
+.overSelect {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+
+#checkboxes {
+ display: none;
+ border: 1px #dadada solid;
+}
+
+ #checkboxes label {
+ display: block;
+ }
+
+ #checkboxes label:hover {
+ background-color: #1e90ff;
+ }
+
+#cajaFiltros {
+ display: flex;
+ max-width: 750px;
+ justify-content: space-between;
+ margin-bottom: 15px;
+ margin-inline: auto;
+ flex-wrap:wrap;
+}
+#btnPicar {
+ margin-top: 50px;
+}
+.cajaModInc {
+ background-color: white;
+ padding: 20px;
+ height: fit-content;
+ margin-inline: auto;
+ margin-block: auto;
+ flex-direction: column-reverse;
+ display: flex;
+}
+.oculto{
+ display:none !important
+}
+
+#btnAtrasGeneral {
+ position: fixed;
+ top: 145px;
+ left: 160px;
+ z-index: 6;
+}
+#tablasPersonalMob {
+ display: none;
+}
+#marcoSituacion{
+ background-color: #0000007f;
+ position:fixed;
+ top:0;
+ left:0;
+ width:100%;
+ height:100vh;
+ justify-content:center;
+ align-items:center;
+ z-index:15;
+}
+#divSituacion {
+ padding:20px;
+ max-width:80%;
+ max-height:600px;
+ background-color:white;
+}
+#tablaActivos{
+ max-height:500px;
+ overflow-y:auto;
+}
+#tablaInactivos {
+ max-height: 500px;
+ overflow-y: auto;
+}
+
+.lblGeneral {
+ margin-bottom:0;
+ margin-top:10px;
+}
+#divCambiarIBAN {
+ background-color: #000000b2;
+ width:100%;
+ height:100vh;
+ justify-content:center;
+ align-items:center;
+ z-index:15;
+ position:fixed;
+ top:0;
+ left:0;
+}
+#divIBAN {
+ background-color:white;
+ padding:20px;
+ min-width:450px;
+ max-width:650px;
+ display:flex;
+ flex-direction:column;
+ gap:15px;
+}
+#IncidenciasPendientesDiv {
+ background-color: #000000bf;
+ width: 100%;
+ height: 100vh;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 30;
+ display: none;
+ justify-content: center;
+ align-items: center
+}
+
+
+.popupIncPendientes {
+ height: 180px;
+ padding: 20px;
+ display: flex;
+ min-width: 500px;
+ background-color: white;
+ justify-content: center;
+ position: relative;
+ flex-direction: column;
+ /*background-image: url(../content/images/logoModal.png);*/
+ /*background-position: left;
+ background-position-y: bottom;
+ background-repeat: no-repeat;*/
+}
+
+
+.ListaMenu a {
+ text-decoration:none;
+ color:darkgray
+}
+#txtobservacionesPI {
+ width: calc(100% - 175px)
+}
+.tituloMobile {
+ display:none
+}
+#usuarioNav {
+ font-weight: bold;
+ color: black;
+ text-decoration: none;
+ font-family: 'SatoshiB';
+}
+.card-header {
+ background-color: var(--AzulOAAF);
+ cursor:pointer;
+}
+.card-header:hover {
+ background-color:var(--AzulClaroOAAF)
+}
+
+.CardSubgrupo {
+ border: none;
+ background-color: transparent;
+ color: white;
+}
+
+.sombraNavegador {
+ -webkit-box-shadow: 0px 0px 19px 2px rgba(0,0,0,0.19);
+ box-shadow: 0px 0px 19px 2px rgba(0,0,0,0.19);
+}
+
+.TablaOAAF th {
+ font-family: 'RobotoB';
+ text-align: start;
+}
+
+.TablaOAAF td {
+ font-family: 'Roboto';
+ text-align: start;
+}
+
+#barraNavegacionVacia {
+ padding-inline: 160px;
+ z-index: 5;
+ flex-direction: column;
+ left: 0;
+ top: 0px;
+ position: fixed;
+ width: 100%;
+ background-color: white;
+}
+#Nav1 {
+ padding-inline: 160px;
+ z-index: 5;
+ flex-direction: column;
+ left: 0;
+ top: 0px;
+ position: fixed;
+ width: 100%;
+ background-color: white;
+}
+.btnHome {
+ margin-block: 15px;
+ display: flex;
+ width: 100%;
+ font-size: 40px;
+ justify-content: center;
+ font-family: 'SatoshiB' !important;
+ text-decoration: none !important;
+}
+ .btnHome h1{
+ padding:0
+ }
+ .btnOAAFAzul {
+ user-select: none;
+ cursor: pointer;
+ background-color: var(--AzulOAAF);
+ border-radius: 15px;
+ font-family: 'Satoshi';
+ border: none;
+ color: white !important;
+ padding: 10px;
+ text-align: center;
+ }
+
+ .btnOAAFAzul:hover {
+ opacity: 0.6;
+ }
+
+.btnOAAFBlack {
+ user-select: none;
+ cursor: pointer;
+ padding: 10px;
+ text-align: center;
+ background-color: var(--GrisOscuroOAAF);
+ border-radius: 15px;
+ font-family: 'Satoshi';
+ border: none;
+ color: white !important;
+}
+
+ .btnOAAFBlack:hover {
+ opacity: 0.6;
+ }
+
+.body {
+ font-family: 'Roboto'
+}
+
+.padding-pag {
+ padding-inline: 160px;
+}
+
+
+.listaTeletrabajo {
+ transition: all 0.2s
+}
+
+.listaTeletrabajoCheck {
+ transition: all 0.2s
+}
+
+.listaTeletrabajo:hover {
+ cursor: pointer;
+ font-weight: bold;
+}
+
+.listaTeletrabajoCheck:hover {
+ cursor: pointer;
+ background-color: var(--GrisClaroOAAF);
+ color: white;
+}
+
+.diaConTeletrabajo1 {
+ background-color: var(--TT1);
+ color: white;
+}
+
+
+.diaConTeletrabajo2 {
+ background-color: var(--TT2);
+ color: white;
+}
+
+
+
+.diaConTeletrabajo3 {
+ background-color: var(--TT3);
+ color: white;
+}
+
+
+.diaConTeletrabajoEx {
+ background-color: var(--TTEx);
+ color: white;
+}
+
+.btnCerrarModInc {
+ border: 1px solid black;
+ padding: 5px;
+ padding-inline: 10px;
+ cursor: pointer
+}
+
+ .btnCerrarModInc:hover {
+ background-color: black;
+ color: white !important;
+ }
+
+
+.btnBack:hover {
+ background-color: var(--AzulClaro) !important
+}
+.ocultoTurn {
+ display:none
+}
+body {
+ /* position: relative;
+ padding-top: 150px;
+ font-family: "Roboto";
+ padding-left: 0px;
+ padding-right: 0px;*/
+}
+
+/*.collapseInc:not(.show) {
+ display: none;
+}*/
+
+.hidden {
+ display: none
+}
+
+.pagina {
+ padding-top: 200px;
+ padding-inline: 160px;
+}
+
+.btnAzul {
+ cursor:pointer;
+ height: 38px !important;
+ background-color: var(--AzulOAAF) !important;
+ color: white !important;
+ border-radius: 5px;
+ border: none;
+ text-transform: uppercase;
+ font-family: "RobotoB";
+ font-size: 16px;
+ filter: opacity(0.7);
+}
+
+
+ .btnAzul:hover {
+ filter: opacity(1);
+ }
+
+.btnGris {
+ cursor:pointer;
+ height: 38px !important;
+ background-color: var(--GrisNeutro) !important;
+ color: black !important;
+ border-radius: 5px;
+ border: none;
+ text-transform: uppercase;
+ font-family: "RobotoB";
+ font-size: 16px;
+}
+
+ .btnGris:hover {
+ background-color: var(--GrisMedio) !important;
+ }
+
+.cajaIntPicadas {
+ min-width: 425px;
+}
+
+.btnBlanco {
+ height: 38px !important;
+ background-color: white !important;
+ color: var(--AzulOAAF);
+ border-radius: 5px;
+ border: none;
+}
+
+ .btnBlanco:hover {
+ background-color: lightgray !important;
+ }
+#navigation {
+ box-shadow: 10px 25px 31px -26px rgba(0,0,0,0.33);
+}
+.btnAlargado {
+ min-width: 200px;
+ font-size: 16px;
+}
+
+.IntroducirFechas {
+ margin-bottom: 0px;
+ line-height: normal;
+ justify-content: space-evenly;
+ margin-right: auto;
+ margin-left: auto;
+ margin-top: 3rem;
+ max-width: 740px;
+}
+.selectInHora {
+ display: flex;
+ width: 100%
+}
+.inFecha {
+ width: 150px;
+ height: 30px;
+ margin-left: 0px;
+ border-radius: 6px;
+ border-color: rgba(0,0,0,.1);
+}
+.row {
+ margin-right: 0;
+ margin-left: 0;
+}
+
+.celdaBlanca {
+ background-color: white !important;
+ border: 0px none !important;
+}
+
+.pagina {
+ height: 100vh;
+}
+
+.Loading {
+ display: none;
+ width: 100px;
+ /*animation-name: spin;*/
+ animation-duration: 3000ms;
+ animation-iteration-count: infinite;
+ animation-timing-function: linear;
+}
+
+#divLoading {
+ display: none;
+ z-index: 99;
+ position: absolute;
+ width: 100%;
+ height: 100vh;
+ background-color: #00000086;
+}
+
+ #divLoading .Loading {
+ display: flex !important;
+ position: fixed;
+ width: 150px;
+ height:auto;
+ top: 400px;
+ border-radius: 100%;
+ left: calc(50% - 75px);
+ background: white;
+ padding: 20px;
+ border-radius: 10px;
+ }
+
+#divLoading2 {
+ position: absolute;
+ top: 300px;
+ left: calc(50% - 50px);
+}
+
+#divLoading3 {
+ position: absolute;
+ top: 300px;
+ left: calc(50% - 50px);
+}
+
+#divLoading4 {
+ position: absolute;
+ top: 300px;
+ left: calc(50% - 50px);
+}
+
+#divLoading5 {
+ position: absolute;
+ top: 355px;
+ left: calc(50% - 50px);
+}
+
+#divLoading6 {
+ position: absolute;
+ top: 300px;
+ left: calc(50% - 50px);
+}
+
+.inactivo {
+ display: none !important;
+}
+
+/*.tablaPicadas tr:nth-child(odd) td {
+ background-color: #dedede
+}*/
+/**************************************BARRA NAVEGACION***********************************/
+.barraNavegacion {
+ height: 50px;
+ padding-right: 0px;
+ padding-left: 15px;
+ margin-left: 11px;
+}
+
+.top-menu2 {
+ line-height: 35px;
+ position: relative;
+ display: flex;
+ list-style: none;
+ padding: 0px;
+ margin-bottom: 0;
+}
+
+ .top-menu2 ul li {
+ cursor: pointer;
+ padding: 10px;
+ background-color: var(--AzulClaroOAAF);
+ display: none;
+ max-width: 250px;
+ line-height: normal;
+ }
+
+ .top-menu2 li {
+ color: black !important;
+ margin-left: 10px;
+ margin-right: 10px;
+ cursor: pointer;
+ transition: all 0.2s
+ }
+
+ .top-menu2 li:hover {
+ border-bottom: 4px solid;
+ border-block-color: var(--AzulOAAF);
+ color: var(--AzulParlamento) !important;
+ transition: all 0.2s
+ }
+
+#optContHorario {
+ padding-left: 0;
+ position: fixed;
+ top: 105px;
+ left: calc(50% - 225px);
+ padding-top: 80px;
+}
+
+ #optContHorario li {
+ color: white;
+ cursor: pointer;
+ padding: 10px;
+ background-color: #F8F9FA;
+ display: none;
+ max-width: 250px;
+ line-height: normal;
+ }
+
+ #optContHorario:hover li {
+ transition: all 0.2s;
+ display: block
+ }
+
+ #optContHorario:hover li:hover {
+ transition: all 0.2s;
+ }
+.pag {
+ min-height: calc(100vh - 396px);
+ width: 100%;
+ padding-inline: 10%;
+ padding-top: 250px;
+}
+.top-menu2 ul li:hover {
+ transition: all 0.2s;
+ display: block;
+}
+
+#navLateral {
+ padding-inline: 10px;
+ max-height: calc(100vh - 396px);
+ overflow: auto;
+}
+
+ #navLateral ul {
+ list-style-type: disc
+ }
+
+ #navLateral ul li {
+ cursor: pointer;
+ margin-block: 15px;
+ }
+
+ #navLateral ul li a {
+ color: black;
+ text-decoration: none
+ }
+
+ #navLateral ul li:hover {
+ opacity: 0.6
+ }
+
+.listActivo {
+ font-weight: bold
+}
+
+.migasDePan {
+ font-size:14px;
+ margin-bottom: 40px;
+}
+
+ .migasDePan ul {
+ list-style: none;
+ display: flex;
+ gap: 5px;
+ }
+
+ .migasDePan ul li {
+ cursor: pointer;
+ color: blue;
+ }
+
+ .migasDePan .migaActiva {
+ cursor: initial;
+ color: dimgrey
+ }
+
+
+.navbar-light .navbar-nav .nav-link {
+ /*color: white !important;*/
+ font-family:'Satoshi';
+ cursor:pointer;
+}
+
+navbar navbar-expand-lg
+#usuarioNav {
+ color: white !important;
+ margin-right: 20px;
+}
+
+.separacion {
+ padding-top: 20px;
+ width: 100%;
+ background-color: white;
+}
+
+.item1 {
+ grid-row-end: 1 / span 2;
+ display: flex;
+ justify-content: end !important;
+}
+
+.item2 {
+ grid-area: nominas;
+ justify-content: start !important;
+}
+
+.item3 {
+ grid-area: datosPersonales;
+ justify-content: start !important;
+}
+
+.grid-container {
+ display: grid;
+ grid-template-columns: auto auto;
+ background-color: #F8F9FA;
+ padding: 40px;
+}
+
+
+
+
+.recuadroDeHome {
+ background-color: #F8F9FA;
+ margin-left: 5%;
+ margin-right: 5%
+}
+
+.contenedor {
+ display: flex;
+}
+
+.barraIzquierda {
+ width: 20px;
+ height: 90px;
+ background-color: var(--AzulParlamento);
+}
+
+.barraArriba {
+ background-color: #5BA1BA;
+ height: 10px;
+ margin-left: 20px;
+ width: calc(100% - 20px);
+ justify-content: end;
+ position: fixed;
+ top: 0px;
+}
+
+.containerNavBar {
+ background-color: white;
+ display: flex;
+ width: 100%;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.formatoCategoriasHome {
+ padding-bottom: 10px;
+ /*font-family: Neuton-Regular;*/
+ color: white;
+ padding-left: 30px;
+ font-size: 40px;
+}
+
+.hoverLinkControlHorario {
+ background-image: url('../Content/images/ControlHorarioImg.png');
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ margin: 0px;
+ padding: 0px;
+ transition: all 0.2s;
+}
+
+ .hoverLinkControlHorario:hover {
+ background-image: url('../Content/images/ControlHorarioHover.jpg');
+ }
+
+
+.hoverLinkDatosPersonales {
+ background-image: url('../Content/images/DatosPersonalesImg.jpeg');
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ margin: 0px;
+ padding: 0px;
+ transition: all 0.2s;
+}
+
+
+ .hoverLinkDatosPersonales:hover {
+ background-image: url('../Content/images/DatosPersonalesHover.jpg');
+ }
+
+
+.hoverLinkNominas {
+ background-image: url('../Content/images/NominasImg.jpeg');
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ margin: 0px;
+ padding: 0px;
+ transition: all 0.2s;
+}
+
+ .hoverLinkNominas:hover {
+ background-image: url('../Content/images/NominasHover.jpg');
+ }
+
+.justificadoCentro {
+ justify-content: center;
+}
+
+.colorFondoNavBar {
+ background-color: #F8F9FA !important;
+ height: 100px;
+}
+
+.titularOpcControlHorario {
+ font-family: 'Satoshi';
+ color: var(--AzulOAAF);
+ margin-bottom: 40px;
+}
+
+
+.divInpHora .row .div {
+ margin-left: 0px;
+}
+
+#usNav {
+ display: flex;
+ margin-right: 20px;
+ gap: 10px;
+}
+
+ #usNav img {
+ height: 20px;
+ margin-right: 13px;
+ margin-top: 5px;
+ cursor: pointer;
+ }
+
+.gestionPersonal #imgUsers div {
+ filter: hue-rotate(350deg);
+}
+
+.gestionPersonal #imgLogout div {
+ filter: hue-rotate(350deg);
+}
+
+.gestionPersonal #imgCambioModo div {
+ filter: hue-rotate(350deg);
+}
+
+#imgLogout div {
+ background-image: url(../content/images/logoutHover.png);
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ height: 25px;
+ width: 25px;
+ margin-right: 15px;
+ transition: all 0.2s;
+}
+
+ #imgLogout div:hover {
+ background-image: url(../content/images/logout.png);
+ transition: all 0.2s;
+ }
+
+#imgCambiarModo i {
+ height: 25px;
+ width: 25px;
+ transition: all 0.2s;
+}
+
+ #imgCambiarModo i:hover {
+ transition: all 0.2s;
+ }
+
+#imgUsers div {
+ height: 25px;
+ width: 25px;
+ margin-right: 15px;
+ transition: all 0.2s;
+}
+
+ #imgUsers div:hover {
+ background-image: url(../content/images/userEdit.png);
+ transition: all 0.2s;
+ }
+
+.usSeleccionado {
+ padding-top: 90px;
+ padding-bottom: 10px;
+ margin-bottom: 15px;
+}
+
+ .usSeleccionado p {
+ margin-top: 0;
+ padding-inline: 40px;
+ margin-bottom: 0;
+ }
+
+.navbar-brand {
+ cursor: pointer;
+ margin-left: 15px;
+}
+
+.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
+ background-color: var(--AzulClaro);
+ border-radius: 0px;
+ padding: 12px;
+}
+
+.navbar-nav {
+ align-items: center;
+}
+
+.dropdown-menu {
+ background-color: white;
+ font-family: 'Roboto';
+}
+
+.dropdown-item {
+ color: black;
+ background-color: white;
+}
+
+ .dropdown-item:hover {
+ border-bottom: 4px solid;
+ border-color: var(--AzulOAAF);
+ }
+
+ .dropdown-item.active {
+ border-bottom: 4px solid;
+ background-color: white !important;
+ color: black !important;
+ border-color: var(--AzulOAAF);
+ }
+
+
+.incidenciasDesplegable {
+ background-color: white;
+ font-family: 'Roboto';
+}
+
+ .incidenciasDesplegable > tr > td {
+ color: black;
+ background-color: white;
+ }
+
+ .incidenciasDesplegable > tr > td:hover {
+ border-bottom: 4px solid;
+ border-color: var(--AzulOAAF);
+ }
+
+ .incidenciasDesplegable > tr > td.active {
+ border-bottom: 4px solid;
+ background-color: white !important;
+ color: black !important;
+ border-color: var(--AzulOAAF);
+ }
+
+.activado {
+ border-bottom: 4px solid;
+ border-color: var(--AzulOAAF) !important;
+}
+
+.activadoSub {
+ border-bottom: 4px solid;
+ border-color: var(--AzulOAAF) !important;
+}
+
+
+#topMenuVacia {
+ margin-top: 23px;
+ width: calc(100% - 322px);
+ margin-left: 15px
+}
+
+#topMenuVacia2 {
+ margin-top: 23px;
+ width: calc(100% - 322px);
+ margin-left: 15px
+}
+
+
+/**************************************SELECCION MODO***********************************/
+#usNavVacia {
+ display: flex
+}
+
+ #usNavVacia img {
+ height: 20px;
+ margin-right: 13px;
+ margin-top: 5px;
+ cursor: pointer;
+ }
+
+#imgLogoutVacia div {
+ background-image: url(../content/images/logoutHover.png);
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ height: 25px;
+ width: 25px;
+ margin-right: 15px;
+ transition: all 0.2s;
+}
+
+ #imgLogoutVacia div:hover {
+ background-image: url(../content/images/logout.png);
+ transition: all 0.2s;
+ }
+
+#UsuarioNavVacia {
+ color: white !important;
+ margin-right: 20px;
+}
+
+
+/**************************************SELECCION USUARIOS***********************************/
+
+
+#usNavVacia2 {
+ display: flex
+}
+
+ #usNavVacia2 img {
+ height: 20px;
+ margin-right: 13px;
+ margin-top: 5px;
+ cursor: pointer;
+ }
+
+#imgLogoutVacia2 div {
+ background-image: url(../content/images/logoutHover.png);
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ height: 25px;
+ width: 25px;
+ margin-right: 15px;
+ transition: all 0.2s;
+}
+
+ #imgLogoutVacia2 div:hover {
+ background-image: url(../content/images/logout.png);
+ transition: all 0.2s;
+ }
+
+#UsuarioNavVacia2 {
+ color: white !important;
+ margin-right: 20px;
+}
+
+#cajaUsuario {
+ padding-top: 25px;
+}
+
+.divUsuarioSelect p {
+ margin-bottom: 15px;
+ padding-left: 40px;
+}
+
+#divBtn {
+ display: flex;
+ justify-content: center;
+}
+
+.CBUsuarios {
+ width: 85%;
+}
+
+ .CBUsuarios input {
+ height: 30px;
+ }
+
+#btnSeleccionar {
+ position: relative;
+ bottom: 0;
+ margin-top: 15px;
+ max-width: 450px;
+ width: 100%;
+ margin-inline: auto;
+}
+
+.colorFondoSeleccionPersonas {
+ background-color: var(--GrisNeutro) !important;
+}
+
+.seleccionando {
+ height: 100vh;
+ justify-content: center;
+ align-items: center;
+}
+
+#cajaSelecciones {
+ padding-inline: 0px;
+ display: flex;
+ flex-direction: column;
+ margin-left: auto;
+ margin-right: 5px;
+ background-color: white;
+ max-width: 500px;
+ min-height: 40vh;
+ max-height: 70vh;
+ overflow: auto;
+ position: relative;
+}
+
+#cajaSeleccionados {
+ padding-inline: 0px;
+ display: flex;
+ flex-direction: column;
+ margin-left: 5px;
+ margin-right: auto;
+ background-color: white;
+ max-width: 500px;
+ max-height: 70vh;
+ overflow: auto;
+}
+
+@media (max-width: 992px) {
+
+ .barraArriba {
+ display: none;
+ }
+
+ .cajaIntPicadas{
+ min-width:0
+ }
+
+ #topMenu {
+ display: none;
+ }
+
+ .barraIzquierda {
+ display: none;
+ }
+
+ .colorFondoNavBar {
+ margin-top: 0px;
+ height: 60px;
+ background-color: var(--AzulOAAF) !important;
+ }
+
+ #linkLogoParlamento {
+ display: none;
+ }
+
+ #usNav {
+ display: none;
+ }
+
+ .textoParAnda {
+ display: flex !important;
+ }
+
+ .divConMenuHambur {
+ display: flex !important;
+ }
+
+ #divElementosCabecera {
+ display: flex !important;
+ }
+
+ .separacionHome {
+ margin-top: 0px !important;
+ }
+}
+
+.separacionHome {
+ margin-top: 10px;
+}
+
+.hlist {
+ display: flex;
+ flex-direction: column;
+ background-color: #e5e5e5;
+ box-shadow: 0px 30px 50px -50px rgba(0,0,0,0.19);
+}
+
+ .hlist li {
+ list-style-type: none;
+ display: inline-block;
+ padding: 9px;
+ }
+
+
+
+
+#divElementosCabecera {
+ display: none;
+}
+
+.divConMenuHambur {
+ display: none;
+ width: 70px;
+ height: 60px;
+ background-color: white;
+}
+
+
+.textoParAnda {
+ display: none;
+ width: 200px;
+ height: 80px;
+ font-size: 25px;
+ align-items: center;
+ color: white;
+}
+
+.inpUsuario {
+ /*
+ margin-top: 5px;
+ height: 20px;
+ width: 20px;
+
+ */
+ margin-right: 30px;
+}
+
+#selectAllselUs {
+ margin-top: 7px;
+ height: 16px;
+ width: 16px;
+ margin-right: 20px;
+}
+
+.inpDep {
+ margin-top: 7px;
+ min-height: 16px;
+ min-width: 16px;
+ margin-right: 20px;
+}
+
+.pUsuario {
+ line-height: 30px;
+ margin: 0;
+}
+
+.divUsuario {
+ margin-bottom: 15px;
+ padding-inline: 40px;
+}
+
+.fondoAzulOscuro {
+ background: var(--AzulOAAF);
+ color: white;
+ padding-block: 10px;
+}
+
+.divDep {
+ font-size: 20px;
+}
+
+/**************************************CONTROL HORARIO***********************************/
+#pagControlHorario2 {
+ position: absolute;
+ top: 0px;
+ left: 0;
+ z-index: -1;
+ height: 100vh;
+ width: 100%;
+ background-repeat: no-repeat;
+ background-size: 60%;
+ background-position-x: left;
+ opacity: 0.5;
+ background-position-y: bottom;
+}
+
+.menusControlHorario2 ul {
+ position: absolute !important;
+ top: 300px;
+ padding-left: 0;
+}
+
+.menusControlHorario2 a {
+ text-decoration: none;
+ color: white !important;
+ font-size: 25px;
+}
+
+.menusControlHorario2 p {
+ margin: 0px;
+ cursor: pointer;
+}
+
+.categoriasLiCH {
+ user-select: none;
+ font-family: 'Satoshi' !important;
+ transition: all 0.2s;
+ margin-bottom: 15px;
+ color: var(--AzulOAAF);
+}
+
+ .categoriasLiCH:hover {
+ border-bottom: 4px solid;
+ border-color: var(--AzulOAAF);
+ font-size: 30px
+ }
+
+.menuItemCH {
+ position: inherit;
+ border-top-right-radius: 10px;
+ border-bottom-right-radius: 10px;
+ padding-left: 80px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ margin-top: 15px;
+ margin-bottom: 15px;
+ min-width: 600px;
+ max-width: 850px;
+ min-height: 40px;
+ background-color: var(--AzulClaro);
+ transition: all 0.2s;
+}
+
+ .menuItemCH:hover {
+ transform: scale(110%);
+ transform-origin: 0% 100%;
+ background-color: var(--AzulOAAF);
+ transition: all 0.1s;
+ }
+
+/************************************** HOME ***********************************/
+
+.btnSeccion {
+ border-radius: 5px;
+ width: 100%;
+ max-width: 700px;
+ height: 320px;
+ position: relative;
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ transition: all 0.2s
+}
+
+ .btnSeccion img {
+ border-bottom-left-radius: 5px;
+ }
+
+ .btnSeccion:hover {
+ transform: scale(102%);
+ filter: grayscale(100%);
+ transition: all 0.2s
+ }
+
+.datosPersonales {
+ display: flex;
+ justify-content: right;
+}
+
+.nominas {
+ justify-content: right;
+ display: flex;
+}
+
+
+/************************************** NOMINAS ***********************************/
+.inptxt {
+ border-radius: 15px;
+ border-width: 1px;
+ padding-inline: 15px;
+ text-align: end;
+ font-family: 'Roboto';
+}
+
+.intAnyoNominas {
+ margin-bottom: 30px;
+}
+
+ .intAnyoNominas p {
+ font-family: "Roboto";
+ color: var(--AzulOAAF);
+ margin-right: 15px;
+ margin-bottom: 0px;
+ line-height: 38px !important;
+ }
+
+
+#mensajeError {
+ color: red;
+ text-align: center
+}
+
+.listadoNominas {
+ margin-top: 0rem !important;
+}
+
+ .listadoNominas ul li {
+ height: 50px;
+ width: 100% !important;
+ font-family: 'Roboto';
+ color: white;
+ background-color: var(--GrisClaroOAAF);
+ list-style: none !important;
+ border: solid;
+ border-width: 1px !important;
+ border-color: black;
+ cursor: pointer;
+ }
+
+ .listadoNominas ul li:hover {
+ opacity: 0.6;
+ }
+
+ .listadoNominas ul li p {
+ margin-bottom: 0px !important;
+ height: 20px;
+ margin-left: 20px;
+ line-height: normal;
+ }
+
+/************************************** INTRODUCIR PICADA ***********************************/
+
+.secPicada {
+ padding: 50px;
+ padding-top: 25px;
+ font-size: 20px;
+ margin-top: 50px;
+ width: 100%;
+}
+
+#fechaHoraPicada {
+ font-weight: bolder;
+ font-size: 20px;
+}
+
+#fechaActual p {
+ font-family: 'Roboto';
+ margin-bottom: 25px;
+}
+
+.incidencias {
+ height: 40px;
+ margin-bottom: 25px;
+}
+
+ .incidencias p {
+ font-size: 15px;
+ line-height: 35px;
+ margin-bottom: 0px;
+ }
+
+.nombreDiaSemana {
+ font-size: 16px;
+}
+
+.divListadoTeletrabajo {
+ height: 100%;
+ width: 85%;
+ background-color: var(--GrisNeutro);
+}
+
+.selectIn {
+ border-radius: 15px;
+ min-height: 30px;
+ font-family: 'Roboto';
+ width: calc(100% - 260px)
+}
+
+ .selectIn .dxeButton {
+ transition: all 0.2s;
+ background: var(--AzulOAAF);
+ border-radius: 0 !important;
+ border-bottom-right-radius: 15px !important;
+ border-top-right-radius: 15px !important;
+ }
+
+ .selectIn .dxeButton:hover {
+ opacity: 0.6;
+ }
+
+ .selectIn .dxic {
+ padding-inline: 10px !important;
+ border-radius: 15px;
+ background-color: white;
+ }
+
+ .selectIn .dxpcDropDown {
+ background: white;
+ font-family: 'Roboto';
+ }
+
+ .selectIn .dxeButton {
+ border-radius: 5px;
+ }
+
+ .selectIn p {
+ margin-bottom: 0px !important;
+ }
+
+#mensajePicada {
+ margin-top: 30px;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ margin-left: auto;
+ margin-right: auto;
+ font-size: 18px;
+ max-width: 400px;
+ text-align: center;
+ margin-top: 20px;
+ font-weight: bold;
+}
+
+
+#selIncidenciaNoReloj {
+ width: calc(100% - 185px);
+}
+/***************************************** teletrabajo******************************/
+
+.txtAreaIntTeletrabajo {
+ height: 230px;
+ width: 560px;
+ resize: none;
+}
+
+.fondoVentanaTeletrabajo {
+ background-image: url(../content/images/logoModal.png);
+ background-position: left;
+ background-position-y: bottom;
+ background-repeat: no-repeat;
+}
+
+/************************************** LISTADO PICADAS ***********************************/
+#mensaje {
+ color: red;
+ font-weight: bold;
+ margin-top: 1rem;
+ text-align: center;
+}
+
+#btnImprimir {
+ display: none;
+ /*background-color: var(--AzulClaro);*/
+ color: white !important;
+}
+
+.btnMostrar {
+ text-align: center !important;
+ background-color: var(--AzulClaro);
+ color: white !important;
+}
+
+#tablaPicadas {
+ /* width: 95%;
+ margin-left: auto;
+ margin-right: auto;*/
+}
+
+.tablaPicadas {
+ margin-left: auto;
+ margin-right: auto;
+ max-height: 540px;
+ /*overflow-y: scroll;*/
+ /*overflow-x: hidden;*/
+ position: relative;
+ border: 1px solid black;
+ border-collapse: collapse;
+ width: 95%;
+ background-color: #fafafa;
+ overflow-x:auto;
+}
+
+ .tablaPicadas table {
+ width: 100%;
+ }
+
+ .tablaPicadas td {
+ padding-left: 5px;
+ padding-right: 5px;
+ width: auto;
+ border: 1px solid black;
+ border-collapse: collapse;
+ background-color: white;
+ }
+
+ .tablaPicadas th {
+ position: sticky;
+ top: -1px;
+ padding-left: 5px;
+ padding-right: 5px;
+ background-color: var(--AzulOAAF);
+ color: white;
+ font-weight: bold;
+ /*border: 1px solid white;*/
+ border-collapse: collapse;
+ text-align: center;
+ }
+
+.table-striped > tbody > tr:nth-child(odd) > td,
+.table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: white;
+}
+
+
+.tablaPicadas2 {
+ margin-left: auto;
+ margin-right: auto;
+ max-height: 540px;
+ overflow-y: scroll;
+ /*overflow-x: hidden;*/
+ position: relative;
+ border: 1px solid black;
+ border-collapse: collapse;
+ width: 95%;
+ background-color: #fafafa;
+}
+
+ .tablaPicadas2 table {
+ width: 100%;
+ }
+
+ .tablaPicadas2 td {
+ padding-left: 5px;
+ padding-right: 5px;
+ width: auto;
+ border: 1px solid black;
+ border-collapse: collapse;
+ background-color: white;
+ }
+
+ .tablaPicadas2 th {
+ position: sticky;
+ top: 0px;
+ padding-left: 5px;
+ padding-right: 5px;
+ background-color: var(--AzulOAAF);
+ color: white;
+ font-weight: bold;
+ border: 1px solid white;
+ border-collapse: collapse;
+ text-align: center;
+ }
+
+/*#mostrarGeneral {
+ background-color: var(--AzulClaro);
+ display: none;
+ color: white;
+}
+#mostrarGeneralInc {
+ text-align: center !important;
+ margin-left:2.5%;
+ width: max-content;
+ background-color: var(--AzulClaro);
+ display: none;
+ color: white;
+}
+*/
+
+.btnPersona {
+ text-align: center !important;
+ background-color: var(--AzulOAAF);
+ color: white !important;
+}
+
+/************************************** INTRODUCIR SOLICITUDES ***********************************/
+
+.anchoComboBox {
+ min-width: calc(100% - 260px);
+}
+
+.observacionesSolici {
+ height: 80px;
+ font-size: 18px;
+ text-align: start;
+ padding-left: 0.5rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.4em;
+ padding-right: 0.4em;
+ vertical-align: top;
+ resize: none;
+ width: calc(100% - 260px);
+}
+
+/************************************** INTRODUCIR INCIDENCIAS ***********************************/
+
+.fechainiciosolo {
+ width: 360px;
+}
+
+.divInpHora {
+ min-width: 150px;
+}
+
+.incidenciasInt {
+ width: 100%;
+ display: flex;
+}
+
+ .incidenciasInt p {
+ /*margin-right: 15px;*/
+ margin-top: 0px;
+ margin-bottom: 0.5rem !important;
+ }
+
+.txtInputPrepend {
+ background: rgb(128, 128, 128) !important;
+ color: white;
+ font-size: 10px;
+ height: 30px;
+ width: 55px;
+ margin-left: 5px;
+ border: none;
+}
+
+.divInpHora {
+ min-width: 150px;
+}
+
+.inHora {
+ height: 30px;
+ margin-left: 0px;
+}
+
+#inpObservaciones {
+ height: 80px;
+ font-size: 12px;
+ text-align: start;
+ padding-left: 0.5rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.4em;
+ padding-right: 0.4em;
+ vertical-align: top;
+ width: calc(100% - 260px)
+}
+
+#mensajeIncidencia {
+ font-size: 20px;
+ margin-top: 20px !important;
+ width: 100%;
+ text-align: center;
+ color: red;
+ font-weight: bold;
+ margin-bottom: 0px;
+}
+
+#mensajeSolicitudes {
+ font-size: 20px;
+ margin-top: 20px !important;
+ width: 100%;
+ text-align: center;
+ color: red;
+ font-weight: bold;
+ margin-bottom: 0px;
+}
+/************************************** BOLSA HORAS ***********************************/
+#tablaBolsaHoras {
+ width: 95%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+ #tablaBolsaHoras .tablaPicadas td {
+ padding: 3px;
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+/************************************** DESGLOSE INCIDENCIA ***********************************/
+
+#DesgIncidencia #tablaIncidencia {
+ border-radius: 5px !important;
+}
+
+ #DesgIncidencia #tablaIncidencia th {
+ text-align: start;
+ padding: 10px;
+ width: 200px;
+ }
+
+ #DesgIncidencia #tablaIncidencia td {
+ padding: 10px;
+ }
+
+ #DesgIncidencia #tablaIncidencia td span {
+ color: white;
+ margin-left: -10px;
+ margin-right: 10px;
+ background-color: grey;
+ padding: 13px;
+ }
+
+.linkIncidencia {
+ color: #0e7fd6 !important;
+ text-align: end !important;
+ cursor: pointer;
+}
+
+#listEstadosInc {
+ margin-top: 40px;
+}
+
+.DesgIncAtras {
+ height: 50px;
+ width: 70px;
+ position: fixed;
+ top: 125px;
+ z-index: 10;
+ left: 160px;
+ transition: all 0.2s
+}
+
+
+.estado {
+ display: flex;
+}
+
+ .estado input {
+ margin-right: 5px;
+ }
+
+ .estado p {
+ line-height: 30px;
+ margin-bottom: 0px;
+ }
+
+#filtroEstados {
+ display: flex;
+ margin-inline: auto;
+ width: fit-content;
+ gap: 30px;
+ padding: 10px;
+ background-color: var(--AzulOAAF);
+ color: white;
+ padding-inline: 30px;
+ border-radius: 10px;
+}
+
+}
+/************************************** VAAPBC ***********************************/
+.tblVAAPBC td {
+ padding: 3px;
+ padding-inline: 5px
+}
+
+#mensajeVAAPBC {
+ text-align: center;
+ color: red;
+ font-size: 18px;
+}
+
+/************************************** ANTIGUOS ***********************************/
+
+#pagControlHorario {
+ position: absolute;
+ top: -165px;
+ left: 0;
+ z-index: -1;
+ height: 100vh;
+ width: 100%;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position-x: right;
+ background-position-y: bottom;
+ background-image: url('images/FondoControlHorario.png');
+}
+
+.menusControlHorario {
+ position: absolute;
+ top: 70px;
+ left: -30px;
+}
+
+ .menusControlHorario a {
+ text-decoration: none;
+ color: white !important;
+ font-size: 25px;
+ }
+
+ .menusControlHorario p {
+ cursor: pointer;
+ margin: 0px;
+ }
+/*
+#btnPicar {
+ background-color: white;
+ color: var(--AzulOAAF);
+ width: 100%;
+ font-size: 20px;
+}
+
+ #btnPicar:hover {
+ background-color: grey;
+ color: white;
+ }
+*/
+#btnIntIncidencia {
+ background-color: white;
+ color: var(--AzulOAAF);
+ width: 100%;
+ font-size: 20px;
+}
+
+ #btnIntIncidencia:hover {
+ background-color: grey;
+ color: white;
+ }
+
+/************************************** CALENDARIO ***********************************/
+
+.diaDeLaSemana {
+ padding-left: 5px !important;
+ border: 2px solid var(--GrisOscuro);
+ max-height: 20%;
+ width: 14.28%;
+ padding: 0px;
+ height: 50px;
+ cursor: pointer
+}
+
+/*.diaDeLaSemanaActivo:hover {
+ border: 1px solid var(--GrisMedio);
+ color: var(--GrisMedio)
+}
+*/
+.finSemana {
+ background-color: #f7f7f7;
+}
+
+.icoNavCalendario {
+ color: black !important;
+ font-size: 20px !important;
+}
+
+.numeroCalendario {
+ margin-right: 10px;
+ line-height: normal;
+ margin-top: 5px;
+ font-size: 23px;
+}
+
+
+
+.diaVacio {
+ border: 0px none;
+}
+
+#calendarioPicadas {
+ width: 400px;
+ position: absolute;
+ top: 300px;
+ left: calc(50% - 200px)
+}
+
+}
+
+/************************************** ANIMACIONES ***********************************/
+
+@keyframes spin {
+ from {
+ transform: rotate(0deg);
+ }
+
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+/************************************** PRINT ***********************************/
+
+@media print {
+ @page {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ body {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+
+ .myDivToPrint {
+ display: block;
+ background-color: white;
+ height: 100%;
+ width: 100%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ margin: 0;
+ padding: 15px;
+ font-size: 14px;
+ line-height: 18px;
+ -webkit-print-color-adjust: exact;
+ border-spacing: 0px !important;
+ }
+
+ .header {
+ display: none;
+ }
+
+ .footer {
+ display: none
+ }
+}
+
+/************************************** MOVIL ***********************************/
+
+@media (max-width: 1312px) {
+ .btnSeccion {
+ max-width: 100%;
+ height: 200px;
+ margin-inline: 0 !important;
+ }
+
+ .nominas {
+ margin-inline: 0;
+ margin-bottom: 0px;
+ }
+
+ .controlHorario {
+ margin-inline: 0;
+ }
+}
+
+@media (max-width: 991px) {
+ .estado p{
+ font-size:12px;
+ }
+ #fechaHoraPicada{
+ width:100%;
+ display:flex;
+ }
+ #txtobservacionesPI {
+ width: 100%
+ }
+ .ListaMenu li {
+ margin-block:15px
+ }
+ #tablasPersonalMob {
+ display: flex;
+ flex-direction: column
+ }
+ #divSituacion {
+ max-width:90%
+ }
+ #collapse1 #Div2 {
+ padding:0 !important;
+ }
+ #collapse2 #Div4 {
+ padding:0 !important;
+ }
+ #divSituacion{
+ overflow-y:auto
+ }
+ #tAct{
+ display:none;
+ }
+ #tAus{
+ display:none;
+ }
+ .tituloTabla {
+ font-size: 15px
+ }
+
+ #labelArchivo {
+ line-height: 0;
+ margin-bottom: 12px !important;
+ margin-top: 20px;
+ }
+
+ .inpArchivoDiv {
+ flex-direction: column;
+ width: auto;
+ height: 120px;
+ }
+
+ .divInpHora {
+ width: 100% !important
+ }
+
+ .colVaciaFooter {
+ display: none !important
+ }
+
+ .cajaModInc {
+ padding: 0px;
+ padding-block: 20px
+ }
+
+ #DesgIncidencia #tablaIncidencia td {
+ display: flex;
+ padding: 0;
+ }
+
+ #DesgIncidencia #tablaIncidencia td span {
+ width: 75px;
+ }
+
+ .tituDesgSol {
+ width: 100%
+ }
+
+ .tablaDesgSol {
+ width: 100%;
+ }
+
+ .barraArriba {
+ display: none;
+ }
+
+ #topMenu {
+ display: none;
+ }
+
+ .barraIzquierda {
+ display: none;
+ }
+
+ .colorFondoNavBar {
+ margin-top: 0px;
+ height: 60px;
+ background-color: var(--VerdeParlamento) !important;
+ }
+
+ #cajaSelecciones {
+ margin-inline: auto !important
+ }
+
+ #linkLogoParlamento {
+ display: none;
+ }
+
+ #usNav {
+ display: none;
+ }
+
+ #nombreUsVacio {
+ color: white !important
+ }
+
+ .textoParAnda {
+ display: flex !important;
+ }
+
+ .divConMenuHambur {
+ display: flex !important;
+ }
+
+ #divElementosCabecera {
+ display: flex !important;
+ }
+
+ .separacionHome {
+ margin-top: 0px !important;
+ }
+
+ .fondoOscuro {
+ position: fixed;
+ width: 100%;
+ left:0;
+ height: 100vh;
+ background-color: #000000bb
+ }
+
+ .dropdown-item:active {
+ background-color: transparent
+ }
+
+ .tituloMobile {
+ display: flex;
+ margin-left: 15px;
+ }
+
+ .migasDePan {
+ display: none
+ }
+
+ .CardSubgrupo {
+ white-space: break-spaces;
+ text-align: start;
+ font-size: 15px;
+ }
+
+ .dropdown-item {
+ margin-block: 10px;
+ white-space: pre-wrap
+ }
+ .navegadorMobile {
+ display: block;
+ width: 100%;
+ z-index:15;
+ }
+ .navegadorMobile a {
+ /*font-weight: bold;*/
+ text-decoration:none
+ }
+ #navigation {
+ display: none
+ }
+
+ .pag {
+ margin-top: 0;
+ padding-inline: 10px;
+ min-height: calc(100vh - 328px);
+ }
+
+ body {
+ /*padding-top: 80px*/
+ }
+ .padding-pag {
+ padding-inline:10px
+ }
+ .formatoCategoriasHome {
+ font-size: 30px;
+ text-align: center;
+ width: 100%;
+ padding: 0;
+ }
+
+ #navLateral {
+ display: none
+ }
+
+ .soloMovil {
+ display: unset
+ }
+ /* body {
+ padding-top:40px
+ }*/
+
+ .soloDesk {
+ display: none !important
+ }
+
+ .botonesListados {
+ margin-inline: auto;
+ justify-content: center;
+ }
+
+
+ .secPicada {
+ font-size: 15px;
+ margin-top: 20px;
+ padding:0;
+ }
+
+ .popupIncPendientes {
+ min-width: 400px;
+ }
+
+ .popupIncPendientes .btnAzul {
+ font-size: 13px
+ }
+
+ .popupIncPendientes .btnGris {
+ font-size: 13px;
+ }
+
+ .listadoControlHorario {
+ top: 190px;
+ left: 15px;
+ }
+
+ .listadoDatosAdministrativos {
+ top: 190px;
+ left: 15px;
+ }
+
+ .DesgIncAtras {
+ margin-left: 15px;
+ }
+
+ #mensajeGestPersonal {
+ display: none !important
+ }
+
+ .barraNavegacion {
+ flex-direction: column;
+ height: auto;
+ align-items: start;
+ padding-inline: 0 !important;
+ position: relative;
+ margin-left: 0;
+ padding-left: 0;
+ }
+
+ .titularOpcControlHorario {
+ margin-left: 15px;
+ margin-bottom: 25px;
+ }
+
+ #barraNavegacion {
+ background-color: white;
+ padding-inline: 0 !important;
+ }
+
+ #footer {
+ padding-inline: 0
+ }
+
+ .divListadoTeletrabajo {
+ width: 100%;
+ }
+
+ #areaAgenda {
+ width: 100%;
+ }
+
+ .tablaPicadas th {
+ min-width: 100px;
+ }
+
+ .seccionHomeDesk {
+ display: none;
+ }
+
+ .seccionHomeMobile {
+ display: flex;
+ }
+
+ #topMenuVacia {
+ width: 100%;
+ margin-left: 0;
+ padding-block: 10px;
+ }
+
+ .navbar-nav {
+ align-items: start;
+ }
+
+ .top-menu2 {
+ flex-direction: column;
+ margin-bottom: 15px;
+ width: 100%;
+ }
+
+ .top-menu2 li {
+ margin: 0px;
+ max-width: 100% !important;
+ padding-left: 30px;
+ }
+
+ #menucolapsable {
+ width: 100% !important;
+ }
+
+ #filtroEstados {
+ gap: 15px;
+ }
+
+ #optContHorario {
+ padding-left: 0;
+ position: relative;
+ width: 100%;
+ left: auto;
+ top: auto;
+ padding-top: 0;
+ }
+
+ #optContHorario li {
+ padding-left: 50px !important;
+ width: 100%;
+ }
+
+ #usNav {
+ margin-left: 30px;
+ margin-bottom: 15px;
+ }
+
+ #NavbarMenuComp {
+ margin-left: 15px;
+ }
+
+ #imgLogoMobileSelModo {
+ display: flex;
+ }
+
+ #imgLogoDeskSelModo {
+ display: none
+ }
+
+ #menucolapsable {
+ height: auto !important;
+ }
+
+ .btnSeccion {
+ max-width: 100%;
+ height: 80px;
+ margin-inline: 0 !important;
+ }
+
+ .nominas {
+ margin-inline: 0;
+ margin-bottom: 0px;
+ }
+ #btnAtrasGeneral {
+ top: 25px;
+ left: 225px;
+ }
+ .controlHorario {
+ margin-inline: 0;
+ }
+
+ .imgBarraVacia {
+ display: none
+ }
+
+ .btnSeccion img {
+ height: 60px;
+ }
+
+ .btnAzul {
+ cursor:pointer;
+ margin-top: 20px;
+ }
+
+ .btnGris {
+ cursor:pointer;
+ margin-top: 20px
+ }
+
+ #cajaSeleccionados {
+ display: none;
+ }
+
+ .menuItemCH {
+ min-width: 0;
+ max-width: 100%;
+ padding-right: 20px;
+ }
+
+ .home {
+ margin-inline: 0 !important;
+ padding-inline: 0 !important;
+ }
+
+ .row {
+ margin-inline: 0 !important;
+ }
+
+ #Home .home {
+ margin-top: 0 !important;
+ }
+
+ .intAnyoNominas input {
+ width: 70%;
+ }
+
+ .intAnyoNominas #inAnno {
+ margin-right: 0;
+ }
+
+ .incidenciasInt {
+ flex-direction: column;
+ }
+
+ #selIncidenciaNoReloj {
+ width: 100%;
+ }
+
+ #inpExpediente {
+ width: 100% !important;
+ }
+
+ #inpObservaciones {
+ width: 100% !important;
+ }
+
+ .pagina {
+ max-width: 100%;
+ overflow-x: auto;
+ }
+
+ .selectInHora {
+ flex-direction: column;
+ }
+
+ .input-group {
+ flex-wrap: nowrap;
+ margin-top: 5px;
+ }
+
+ .selectIn {
+ width: 100%;
+ }
+
+ .inFecha {
+ width: inherit;
+ }
+
+ .incidenciasInt p {
+ margin-bottom: 1rem !important;
+ }
+
+ .IntroducirFechas {
+ width: auto !important;
+ }
+
+ #selecctorInps {
+ display: block !important;
+ }
+
+ #selecctorInps input {
+ width: 100% !important;
+ }
+ .btnHome{
+ font-size:20px;
+ }
+ .DesgIncAtras{
+ left:20px;
+ z-index:0 !important
+ }
+ .CBUsuarios {
+ height: 30px;
+ width: 100%;
+ }
+
+ .divTablas {
+ max-width: 95%;
+ overflow: scroll;
+ margin-inline: auto;
+ }
+
+ .pUsuario {
+ max-width: calc(100% - 40px);
+ }
+
+ .burgerMenuActivo {
+ background-color: var(--AzulOAAF);
+ color: white;
+ }
+
+ .burgerMenuActivo span {
+ filter: invert(1)
+ }
+
+ #filtroEstados {
+ max-width: 100%;
+ flex-wrap: wrap;
+ }
+
+ .cajaTabla {
+ max-width: 100%;
+ overflow-x: scroll;
+ margin-bottom: 25px
+ }
+
+ #mensajeGestPersonal {
+ margin-left: 15px !important;
+ margin-top: 0px !important;
+ font-size: 30px !important;
+ }
+ .pag{
+ padding-top:150px !important;
+ }
+}
+
+
+@media (max-width: 450px) {
+ .textoContacto {
+ font-size: 13px
+ }
+
+ .popupIncPendientes {
+ min-width: 350px;
+ }
+}
+/*@media (max-width: 991px) {*/
+
+ /**************************************BARRA NAVEGACION***********************************/
+ /*.menusControlHorario2 ul {
+ top: 190px;
+ padding-left: 20px;
+ }
+
+ .menusControlHorario ul {
+ top: 190px;
+ padding-left: 20px;
+ }
+
+ #mensajeGestPersonal {
+ display: none !important;
+ }
+
+ #divDI {
+ margin-top: 0 !important;
+ }
+
+ #divCH {
+ margin-top: 0 !important;
+ }
+
+ .pagina {
+ padding-inline: 20px;
+ }
+
+ .DesgIncAtras {
+ left: 20px;
+ }
+
+ .padding-pag {
+ padding-inline: 20px;
+ }
+
+ .barraNavegacion {
+ flex-direction: column;
+ height: auto;
+ align-items: start;
+ padding-inline: 0;
+ position: relative;
+ margin-left: 0;
+ padding-left: 0;
+ }
+
+ #barraNavegacion {
+ padding-left: 0;
+ padding-top: 0;
+ }
+
+ #topMenuVacia {
+ width: 100%;
+ margin-left: 0;
+ padding-block: 10px;
+ }
+
+ .navbar-nav {
+ align-items: start;
+ }
+
+ .top-menu2 {
+ flex-direction: column;
+ margin-bottom: 15px;
+ width: 100%;
+ }
+
+ .top-menu2 li {
+ margin: 0px;
+ max-width: 100% !important;
+ padding-left: 30px;
+ }
+
+ #menucolapsable {
+ width: 100% !important;
+ }
+
+ #optContHorario {
+ padding-left: 0;
+ position: relative;
+ width: 100%;
+ left: auto;
+ top: auto;
+ padding-top: 0;
+ }
+
+ #optContHorario li {
+ padding-left: 50px !important;
+ width: 100%;
+ }
+
+ #usNav {
+ margin-left: 30px;
+ margin-bottom: 15px;
+ }
+
+ #NavbarMenuComp {
+ margin-left: 15px;
+ }
+
+ #menucolapsable {
+ height: auto !important;
+ }
+
+ .btnSeccion {
+ max-width: 100%;
+ height: 200px;
+ margin-inline: 0 !important;
+ }
+
+ .nominas {
+ margin-inline: 0;
+ margin-bottom: 0px;
+ }
+
+ .controlHorario {
+ margin-inline: 0;
+ }
+
+ .btnSeccion img {
+ height: 60px;
+ }
+
+ .btnAzul {
+ margin-top: 10px;
+ }
+
+ #cajaSeleccionados {
+ display: none;
+ }
+
+ .menuItemCH {
+ min-width: 0;
+ max-width: 100%;
+ padding-right: 20px;
+ }
+
+ .home {*/
+ /*margin-top: 50px;*/
+ /*}
+
+ #Home .home {
+ margin-top: 0 !important;
+ }
+
+ .intAnyoNominas input {
+ width: 70%;
+ }
+
+ .intAnyoNominas #inAnno {
+ margin-right: 0;
+ }
+
+ .incidenciasInt {
+ flex-direction: column;
+ }
+
+ #selIncidenciaNoReloj {
+ width: 100%;
+ }
+
+ #inpExpediente {
+ width: 100% !important;
+ }
+
+ #inpObservaciones {
+ width: 100% !important;
+ }
+
+ .selectInHora {
+ flex-direction: column;
+ }
+
+ .input-group {
+ flex-wrap: nowrap;
+ margin-top: 5px;
+ }
+
+ .inFecha {
+ width: inherit;
+ }
+
+ .incidenciasInt p {
+ margin-bottom: 1rem !important;
+ }
+
+ .IntroducirFechas {
+ width: auto !important;
+ }
+
+ #selecctorInps {
+ display: block !important;
+ }
+
+ #selecctorInps input {
+ width: 100% !important;
+ }
+
+ .CBUsuarios {
+ height: 30px;
+ width: 100%;
+ }
+
+ .pUsuario {
+ max-width: calc(100% - 40px);
+ }
+
+ .burgerMenuActivo {
+ background-color: var(--AzulOAAF);
+ color: white;
+ }
+
+ .burgerMenuActivo span {
+ filter: invert(1)
+ }
+
+ #filtroEstados {
+ max-width: 100%;
+ flex-wrap: wrap;
+ }
+
+ .cajaTabla {
+ max-width: 100%;
+ overflow-x: scroll;
+ margin-bottom: 25px
+ }
+
+ #barraNavegacionVacia {
+ padding-inline: 0px;
+ }
+ #Nav1{
+ padding-inline:0px;
+ }
+ .btnOAAFAzul {
+ margin-block: 20px;
+ }
+ .selectIn {
+ width:100%;
+ }
+ #filtroEstados{
+ gap:15px;
+ }
+ .btnHome {
+ margin-block: 5px;
+ font-size: 30px;
+ justify-content: center !important;
+ }
+}*/
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/all.min.css b/.codex-links/WebIntranet/Content/all.min.css
similarity index 98%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/all.min.css
rename to .codex-links/WebIntranet/Content/all.min.css
index be25496..728e630 100644
--- a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/all.min.css
+++ b/.codex-links/WebIntranet/Content/all.min.css
@@ -6,4 +6,4 @@
.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}
.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}
-.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(/Content/webfonts/fa-brands-400.woff2) format("woff2"),url(/Content/webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(/Content/webfonts/fa-regular-400.woff2) format("woff2"),url(/Content/webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/Content/webfonts/fa-solid-900.woff2) format("woff2"),url(/Content/webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(/Content/webfonts/fa-brands-400.woff2) format("woff2"),url(/Content/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(/Content/webfonts/fa-solid-900.woff2) format("woff2"),url(/Content/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(/Content/webfonts/fa-regular-400.woff2) format("woff2"),url(/Content/webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/Content/webfonts/fa-solid-900.woff2) format("woff2"),url(/Content/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/Content/webfonts/fa-brands-400.woff2) format("woff2"),url(/Content/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(/Content/webfonts/fa-regular-400.woff2) format("woff2"),url(/Content/webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(/Content/webfonts/fa-v4compatibility.woff2) format("woff2"),url(/Content/webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
\ No newline at end of file
+.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(~/Content/FUENTES/fa-brands-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(~/Content/FUENTES/fa-regular-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(~/Content/FUENTES/fa-solid-900.woff2) format("woff2"),url(~/Content/FUENTES/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(~/Content/FUENTES/fa-brands-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(~/Content/FUENTES/fa-solid-900.woff2) format("woff2"),url(~/Content/FUENTES/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(~/Content/FUENTES/fa-regular-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(~/Content/FUENTES/fa-solid-900.woff2) format("woff2"),url(~/Content/FUENTES/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(~/Content/FUENTES/fa-brands-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(~/Content/FUENTES/fa-regular-400.woff2) format("woff2"),url(~/Content/FUENTES/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(~/Content/FUENTES/fa-v4compatibility.woff2) format("woff2"),url(~/Content/FUENTES/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/bootstrap.min.css b/.codex-links/WebIntranet/Content/bootstrap.min.css
new file mode 100644
index 0000000..e490fd0
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/bootstrap.min.css
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::after{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/faviconOAAF.png b/.codex-links/WebIntranet/Content/faviconOAAF.png
new file mode 100644
index 0000000..cc4ed3d
Binary files /dev/null and b/.codex-links/WebIntranet/Content/faviconOAAF.png differ
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/imagenes/1oaaflogo.png b/.codex-links/WebIntranet/Content/images/1-oaaf-logo.png
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/imagenes/1oaaflogo.png
rename to .codex-links/WebIntranet/Content/images/1-oaaf-logo.png
diff --git a/.codex-links/WebIntranet/Content/images/2-oaaf-logo-negativo.png b/.codex-links/WebIntranet/Content/images/2-oaaf-logo-negativo.png
new file mode 100644
index 0000000..b54af2a
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/2-oaaf-logo-negativo.png differ
diff --git a/.codex-links/WebIntranet/Content/images/3-oaaf-logo-red-v.png b/.codex-links/WebIntranet/Content/images/3-oaaf-logo-red-v.png
new file mode 100644
index 0000000..ebc87cc
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/3-oaaf-logo-red-v.png differ
diff --git a/.codex-links/WebIntranet/Content/images/4-oaaf-logo-negativo-red-v.png b/.codex-links/WebIntranet/Content/images/4-oaaf-logo-negativo-red-v.png
new file mode 100644
index 0000000..b20bcdf
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/4-oaaf-logo-negativo-red-v.png differ
diff --git a/.codex-links/WebIntranet/Content/images/5-oaaf-logo-red-h.png b/.codex-links/WebIntranet/Content/images/5-oaaf-logo-red-h.png
new file mode 100644
index 0000000..2edaedd
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/5-oaaf-logo-red-h.png differ
diff --git a/.codex-links/WebIntranet/Content/images/6-oaaf-logo-negativo-red-h.png b/.codex-links/WebIntranet/Content/images/6-oaaf-logo-negativo-red-h.png
new file mode 100644
index 0000000..cb41386
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/6-oaaf-logo-negativo-red-h.png differ
diff --git a/.codex-links/WebIntranet/Content/images/Atras.svg b/.codex-links/WebIntranet/Content/images/Atras.svg
new file mode 100644
index 0000000..fe9e990
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/Atras.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/images/AtrasHover.svg b/.codex-links/WebIntranet/Content/images/AtrasHover.svg
new file mode 100644
index 0000000..1e8ae48
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/AtrasHover.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/images/ControlHorario.png b/.codex-links/WebIntranet/Content/images/ControlHorario.png
new file mode 100644
index 0000000..04dfde6
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/ControlHorario.png differ
diff --git a/.codex-links/WebIntranet/Content/images/ControlHorarioHover.jpg b/.codex-links/WebIntranet/Content/images/ControlHorarioHover.jpg
new file mode 100644
index 0000000..9cf4bbc
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/ControlHorarioHover.jpg differ
diff --git a/.codex-links/WebIntranet/Content/images/ControlHorarioImg.png b/.codex-links/WebIntranet/Content/images/ControlHorarioImg.png
new file mode 100644
index 0000000..8aee7bc
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/ControlHorarioImg.png differ
diff --git a/.codex-links/WebIntranet/Content/images/DatosPersonales.png b/.codex-links/WebIntranet/Content/images/DatosPersonales.png
new file mode 100644
index 0000000..6e44d34
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/DatosPersonales.png differ
diff --git a/.codex-links/WebIntranet/Content/images/DatosPersonalesHover.jpg b/.codex-links/WebIntranet/Content/images/DatosPersonalesHover.jpg
new file mode 100644
index 0000000..724433d
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/DatosPersonalesHover.jpg differ
diff --git a/.codex-links/WebIntranet/Content/images/DatosPersonalesImg.jpeg b/.codex-links/WebIntranet/Content/images/DatosPersonalesImg.jpeg
new file mode 100644
index 0000000..8ceb27a
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/DatosPersonalesImg.jpeg differ
diff --git a/.codex-links/WebIntranet/Content/images/FondoControlHorario.png b/.codex-links/WebIntranet/Content/images/FondoControlHorario.png
new file mode 100644
index 0000000..acf7837
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/FondoControlHorario.png differ
diff --git a/.codex-links/WebIntranet/Content/images/FondoLogIn.png b/.codex-links/WebIntranet/Content/images/FondoLogIn.png
new file mode 100644
index 0000000..899e9c2
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/FondoLogIn.png differ
diff --git a/.codex-links/WebIntranet/Content/images/GestionesPropias.png b/.codex-links/WebIntranet/Content/images/GestionesPropias.png
new file mode 100644
index 0000000..82b7c81
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/GestionesPropias.png differ
diff --git a/.codex-links/WebIntranet/Content/images/Nominas.png b/.codex-links/WebIntranet/Content/images/Nominas.png
new file mode 100644
index 0000000..38695ac
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/Nominas.png differ
diff --git a/.codex-links/WebIntranet/Content/images/NominasHover.jpg b/.codex-links/WebIntranet/Content/images/NominasHover.jpg
new file mode 100644
index 0000000..30d0826
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/NominasHover.jpg differ
diff --git a/.codex-links/WebIntranet/Content/images/NominasImg.jpeg b/.codex-links/WebIntranet/Content/images/NominasImg.jpeg
new file mode 100644
index 0000000..d747eb0
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/NominasImg.jpeg differ
diff --git a/.codex-links/WebIntranet/Content/images/OAAF Logo PNG.png b/.codex-links/WebIntranet/Content/images/OAAF Logo PNG.png
new file mode 100644
index 0000000..fb9dd41
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/OAAF Logo PNG.png differ
diff --git a/.codex-links/WebIntranet/Content/images/cambiarModo.svg b/.codex-links/WebIntranet/Content/images/cambiarModo.svg
new file mode 100644
index 0000000..e018d13
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/cambiarModo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/images/cambiarModoHover.svg b/.codex-links/WebIntranet/Content/images/cambiarModoHover.svg
new file mode 100644
index 0000000..5c2de58
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/cambiarModoHover.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/imagenes/cargaOAAF.gif b/.codex-links/WebIntranet/Content/images/cargaOAAF.gif
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/imagenes/cargaOAAF.gif
rename to .codex-links/WebIntranet/Content/images/cargaOAAF.gif
diff --git a/.codex-links/WebIntranet/Content/images/cargaOAAF2.gif b/.codex-links/WebIntranet/Content/images/cargaOAAF2.gif
new file mode 100644
index 0000000..964dc9f
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/cargaOAAF2.gif differ
diff --git a/.codex-links/WebIntranet/Content/images/faviconOAAF.png b/.codex-links/WebIntranet/Content/images/faviconOAAF.png
new file mode 100644
index 0000000..9869320
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/faviconOAAF.png differ
diff --git a/.codex-links/WebIntranet/Content/images/faviconParlamento.png b/.codex-links/WebIntranet/Content/images/faviconParlamento.png
new file mode 100644
index 0000000..6cc2bec
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/faviconParlamento.png differ
diff --git a/.codex-links/WebIntranet/Content/images/filtro.svg b/.codex-links/WebIntranet/Content/images/filtro.svg
new file mode 100644
index 0000000..23d3db3
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/filtro.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/images/fondo.jpg b/.codex-links/WebIntranet/Content/images/fondo.jpg
new file mode 100644
index 0000000..fab29a4
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/fondo.jpg differ
diff --git a/.codex-links/WebIntranet/Content/images/fondoBtn.png b/.codex-links/WebIntranet/Content/images/fondoBtn.png
new file mode 100644
index 0000000..5990289
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/fondoBtn.png differ
diff --git a/.codex-links/WebIntranet/Content/images/fondoBtn2.png b/.codex-links/WebIntranet/Content/images/fondoBtn2.png
new file mode 100644
index 0000000..ca9c285
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/fondoBtn2.png differ
diff --git a/.codex-links/WebIntranet/Content/images/fondoNav.png b/.codex-links/WebIntranet/Content/images/fondoNav.png
new file mode 100644
index 0000000..6178da7
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/fondoNav.png differ
diff --git a/.codex-links/WebIntranet/Content/images/fondoOAAF.png b/.codex-links/WebIntranet/Content/images/fondoOAAF.png
new file mode 100644
index 0000000..d0eabda
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/fondoOAAF.png differ
diff --git a/.codex-links/WebIntranet/Content/images/gestionarOtrasPersonas.png b/.codex-links/WebIntranet/Content/images/gestionarOtrasPersonas.png
new file mode 100644
index 0000000..7706a26
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/gestionarOtrasPersonas.png differ
diff --git a/.codex-links/WebIntranet/Content/images/iconoUser.png b/.codex-links/WebIntranet/Content/images/iconoUser.png
new file mode 100644
index 0000000..ea1f9ae
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/iconoUser.png differ
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/icon/list.svg b/.codex-links/WebIntranet/Content/images/list.svg
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Content/icon/list.svg
rename to .codex-links/WebIntranet/Content/images/list.svg
diff --git a/.codex-links/WebIntranet/Content/images/loading.png b/.codex-links/WebIntranet/Content/images/loading.png
new file mode 100644
index 0000000..876f06a
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/loading.png differ
diff --git a/.codex-links/WebIntranet/Content/images/logoModal.png b/.codex-links/WebIntranet/Content/images/logoModal.png
new file mode 100644
index 0000000..9646acb
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/logoModal.png differ
diff --git a/.codex-links/WebIntranet/Content/images/logoParlamento.png b/.codex-links/WebIntranet/Content/images/logoParlamento.png
new file mode 100644
index 0000000..8e620cb
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/logoParlamento.png differ
diff --git a/.codex-links/WebIntranet/Content/images/logoParlamentoMovil.svg b/.codex-links/WebIntranet/Content/images/logoParlamentoMovil.svg
new file mode 100644
index 0000000..443f8df
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/logoParlamentoMovil.svg
@@ -0,0 +1,33 @@
+
diff --git a/.codex-links/WebIntranet/Content/images/logout.png b/.codex-links/WebIntranet/Content/images/logout.png
new file mode 100644
index 0000000..e0d8810
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/logout.png differ
diff --git a/.codex-links/WebIntranet/Content/images/logoutHover.png b/.codex-links/WebIntranet/Content/images/logoutHover.png
new file mode 100644
index 0000000..f24bd25
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/logoutHover.png differ
diff --git a/.codex-links/WebIntranet/Content/images/print.svg b/.codex-links/WebIntranet/Content/images/print.svg
new file mode 100644
index 0000000..4f9cc2d
--- /dev/null
+++ b/.codex-links/WebIntranet/Content/images/print.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Content/images/userEdit.png b/.codex-links/WebIntranet/Content/images/userEdit.png
new file mode 100644
index 0000000..cd3893a
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/userEdit.png differ
diff --git a/.codex-links/WebIntranet/Content/images/users.png b/.codex-links/WebIntranet/Content/images/users.png
new file mode 100644
index 0000000..044a69a
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/users.png differ
diff --git a/.codex-links/WebIntranet/Content/images/usuarios.png b/.codex-links/WebIntranet/Content/images/usuarios.png
new file mode 100644
index 0000000..fc096a8
Binary files /dev/null and b/.codex-links/WebIntranet/Content/images/usuarios.png differ
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx
new file mode 100644
index 0000000..8c45c16
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="CarHor.aspx.vb" Async="true" Inherits="WebIntranet.CarHor" %>
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.designer.vb
new file mode 100644
index 0000000..b850435
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class CarHor
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.vb
new file mode 100644
index 0000000..6f5d2ff
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/CarHor.aspx.vb
@@ -0,0 +1,42 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class CarHor
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ 'If (Session("persona") Is Nothing) Then
+ ' ("Default.aspx", False)
+ 'Else
+
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/COMPLEMENTOSCARRERA/GruposEnumExtend/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of COMPLEMENTOSCARRERA))(client, url)
+ Dim htmlTabla = ""
+ If (puestosItems.Count > 0) Then
+ htmlTabla += "
" +
+ "
Fecha inicio
" +
+ "
Fecha fin
" +
+ "
Grupo
" +
+ "
Tramo
"
+ For Each itm As COMPLEMENTOSCARRERA In puestosItems
+ htmlTabla += "
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx
new file mode 100644
index 0000000..c91190f
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="Formacion.aspx.vb" Async="true" Inherits="WebIntranet.Formacion" %>
+
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.designer.vb
new file mode 100644
index 0000000..29b1a2f
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class Formacion
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.vb
new file mode 100644
index 0000000..85a87e6
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Formacion.aspx.vb
@@ -0,0 +1,56 @@
+Imports Newtonsoft.Json
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class Formacion
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ Dim vidaAdministrativaItems As New List(Of WebIntranet.ClasesDatosAdmin.FORMACION)
+ Dim TiposActos As New List(Of TIPOAPTOSADMINISTRATIVOS)
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim response = Await client.GetAsync("/api/FORMACION/formacionespersona/" + idPers.ToString)
+
+ If response.IsSuccessStatusCode Then
+ Dim resultContent = Await response.Content.ReadAsStringAsync()
+ vidaAdministrativaItems = If(JsonConvert.DeserializeObject(Of List(Of WebIntranet.ClasesDatosAdmin.FORMACION))(resultContent), New List(Of WebIntranet.ClasesDatosAdmin.FORMACION)())
+ vidaAdministrativaItems = vidaAdministrativaItems.ToList()
+ Else
+ Console.WriteLine($"Error al cargar Vida Administrativa: {response.StatusCode}")
+ End If
+ Dim htmlTabla = ""
+ If vidaAdministrativaItems.Count > 0 Then
+
+
+ htmlTabla += "
" +
+ "
Nombre curso
" +
+ "
Nombre
" +
+ "
Fecha expedición
" +
+ "
Duración
" +
+ "
Aprovechamiento
" +
+ "
Oficial
"
+ For Each itm As WebIntranet.ClasesDatosAdmin.FORMACION In vidaAdministrativaItems
+ '/fichero.aspx?id=" + linAd.IDLINEAVIDAADMIN.ToString() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & linAd.IDLINEAVIDAADMIN.ToString) + "&t=LINEAVIDAADMINISTRATIVA
+ Dim urlFich = "/fichero.aspx?id=" + itm.IDFORMACION.ToString() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & itm.IDFORMACION.ToString) + "&t=FORMACION"
+ 'Dim urlFich = "/Ficheros?tip=VerFrm&id=" + itm.ToString()
+ htmlTabla += "
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx
new file mode 100644
index 0000000..566f28c
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx
@@ -0,0 +1,33 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="GradoPersonal.aspx.vb" Async="true" Inherits="WebIntranet.GradoPersonal" %>
+
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.designer.vb
new file mode 100644
index 0000000..c1944e2
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class GradoPersonal
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.vb
new file mode 100644
index 0000000..78f44e1
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/GradoPersonal.aspx.vb
@@ -0,0 +1,32 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class GradoPersonal
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/CONSOLIDACION_GRADO/GetWithIncludes/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of CONSOLIDACION_GRADO))(client, url)
+ Dim htmlTabla = ""
+ htmlTabla += "
" +
+"
Nivel
" +
+"
Fecha efecto
" +
+"
Fecha resolución
"
+
+ For Each itm As CONSOLIDACION_GRADO In puestosItems
+ htmlTabla += "
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.designer.vb
new file mode 100644
index 0000000..44041dd
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class Idioma
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.vb
new file mode 100644
index 0000000..18e3397
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Idioma.aspx.vb
@@ -0,0 +1,43 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class Idioma
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+
+ 'If (Session("persona") Is Nothing) Then
+ ' ("Default.aspx", False)
+ 'Else
+
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/IDIOMAS/GetWithIncludes/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of IDIOMAS))(client, url)
+ Dim htmlTabla = ""
+ If (puestosItems.Count > 0) Then
+ htmlTabla += "
" +
+ "
Idioma
" +
+ "
Nivel
" +
+ "
Centro de expedición
" +
+ "
Año
"
+ For Each itm As IDIOMAS In puestosItems
+ htmlTabla += "
" +
+ "
" + itm.IDTIPOIDIOMANavigation?.DESCRIPCION + "
" +
+ "
" + itm.IDNIVELNavigation.DESCRIPCION + "
" +
+ "
" + itm.CENTROEXPEDICION + "
" +
+ "
" + itm.ANNO.ToString + "
"
+ Next
+ htmlTabla += "
"
+ Else
+ htmlTabla += "
No se han encontrado resultados
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+ 'End If
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx
new file mode 100644
index 0000000..0a29c19
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx
@@ -0,0 +1,33 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="Puestos.aspx.vb" Async="true" Inherits="WebIntranet.Puestos" %>
+
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.designer.vb
new file mode 100644
index 0000000..4fa851f
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class Puestos
+
+ '''
+ '''Control divTablaPuestos.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTablaPuestos As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.vb
new file mode 100644
index 0000000..34d92e0
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/Puestos.aspx.vb
@@ -0,0 +1,60 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class Puestos
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ 'If (Session("persona") Is Nothing) Then
+ ' Response.Redirect("~/Default.aspx", False)
+ 'Else
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/VIDA_ADMINISTRATIVA/puestospersona/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of PuestoPersona))(client, url)
+
+ Dim htmlTabla = ""
+ If (puestosItems.Count > 0) Then
+
+ htmlTabla += "
" +
+"
Puesto de trabajo
" +
+"
Nivel
" +
+"
Clase personal
" +
+"
Grupo
" +
+"
Fecha inicio
" +
+"
Fecha fin
" +
+"
Caracter Ocupación
" +
+"
Años
" +
+"
Meses
" +
+"
Días
"
+ For Each itm As PuestoPersona In puestosItems
+ htmlTabla += "
"
+ End If
+ divTablaPuestos.InnerHtml = htmlTabla
+ 'End If
+
+
+ End Sub
+
+
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx
new file mode 100644
index 0000000..3b22e3a
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx
@@ -0,0 +1,33 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="VidaAdministrativa.aspx.vb" Async="true" Inherits="WebIntranet.VidaAdministrativa" %>
+
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.designer.vb
new file mode 100644
index 0000000..af84f70
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class VidaAdministrativa
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.vb
new file mode 100644
index 0000000..f618ea0
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/VidaAdministrativa.aspx.vb
@@ -0,0 +1,94 @@
+Imports System.Linq.Expressions
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports Newtonsoft.Json
+Imports WebIntranet.ClasesDatosAdmin
+Imports Serialize.Linq.Serializers
+Imports Serialize.Linq.Expressions
+Imports Serialize.Linq.Interfaces
+Imports Serialize.Linq.Factories
+
+Public Class VidaAdministrativa
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ Dim vidaAdministrativaItems As New List(Of VIDA_ADMINISTRATIVA)
+ Dim TiposActos As New List(Of TIPOAPTOSADMINISTRATIVOS)
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim response = Await client.GetAsync("/api/VIDA_ADMINISTRATIVA/vidaspersona/" + idPers.ToString)
+
+ If response.IsSuccessStatusCode Then
+ Dim resultContent = Await response.Content.ReadAsStringAsync()
+ vidaAdministrativaItems = If(JsonConvert.DeserializeObject(Of List(Of VIDA_ADMINISTRATIVA))(resultContent), New List(Of VIDA_ADMINISTRATIVA)())
+ vidaAdministrativaItems = vidaAdministrativaItems.OrderByDescending(Function(x) x.FECHA).ThenBy(Function(x) x.NUM_REG).ThenBy(Function(x) x.IDMOTIVONavigation?.IDTIPOAPTOSNavigation?.DESCRIPCION).ToList()
+ Else
+ Console.WriteLine($"Error al cargar Vida Administrativa: {response.StatusCode}")
+ End If
+
+ Dim TiApAd = Await client.GetAsync("/api/TIPOAPTOSADMINISTRATIVOS")
+ Dim TiApAdContent = Await TiApAd.Content.ReadAsStringAsync()
+ If TiApAd.IsSuccessStatusCode Then
+ TiposActos = If(JsonConvert.DeserializeObject(Of List(Of TIPOAPTOSADMINISTRATIVOS))(TiApAdContent), New List(Of TIPOAPTOSADMINISTRATIVOS)())
+ End If
+ TiposActos = If(TiposActos?.OrderBy(Function(x) x.DESCRIPCION).ToList(), New List(Of TIPOAPTOSADMINISTRATIVOS)())
+ Dim htmlTabla = ""
+ If vidaAdministrativaItems.Count > 0 Then
+
+ htmlTabla += "
" +
+ "
Tiene documentos
" +
+ "
Actos administrativos
" +
+ "
Departamento
" +
+ "
Causa
" +
+ "
Observaciones
" +
+ "
Descripción
" +
+ "
Fecha efecto
" +
+ "
Fecha resolución
" +
+ "
Caracter ocupación
"
+ For Each itm As VIDA_ADMINISTRATIVA In vidaAdministrativaItems
+ Dim descActo = TiposActos.FirstOrDefault(Function(x) x.IDTIPO = itm.IDMOTIVONavigation.IDTIPOAPTOS).DESCRIPCION
+ Dim linkVidaAd = "/DatosAdministrativos/desgVidaAdministrativa.aspx?idVi=" + itm.IDVIDA.ToString().Trim() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & itm.IDVIDA)
+ htmlTabla += "
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+ End Sub
+
+ Private Function CustomTypeResolver(typeName As String) As FactorySettings
+ If typeName <> "Microsoft.VisualBasic.CompilerServices.Operators" Then
+ Return Nothing
+ End If
+ Return Nothing
+ End Function
+
+ 'Private Function genrarlink(idvida As Integer, idpersonas As Integer) As String
+
+ 'End Function
+
+End Class
+Public Class CustomTypeResolver
+
+ Public Function Resolve(typeName As String) As Type
+ If typeName = "Microsoft.VisualBasic.CompilerServices.Operators" Then
+ Return Nothing
+ End If
+ Return Type.GetType(typeName)
+ End Function
+End Class
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/desgVidaAdministrativa.aspx b/.codex-links/WebIntranet/DatosAdministrativos/desgVidaAdministrativa.aspx
new file mode 100644
index 0000000..68e45f2
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/desgVidaAdministrativa.aspx
@@ -0,0 +1,50 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="desgVidaAdministrativa.aspx.vb" Async="true" Inherits="WebIntranet.desgVidaAdministrativa" %>
+
+
"
+
+ divTablaLiViAd.InnerHtml = htmlTabla
+ End If
+
+ End Sub
+
+
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx
new file mode 100644
index 0000000..bc06e7d
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="docencia.aspx.vb" Inherits="WebIntranet.docencia" Async="true" %>
+
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.designer.vb
new file mode 100644
index 0000000..1883b1b
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class docencia
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.vb
new file mode 100644
index 0000000..d965744
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/docencia.aspx.vb
@@ -0,0 +1,54 @@
+Imports Newtonsoft.Json
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+Public Class docencia
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ Dim vidaAdministrativaItems As New List(Of WebIntranet.ClasesDatosAdmin.DOCENCIA)
+ Dim TiposActos As New List(Of TIPOAPTOSADMINISTRATIVOS)
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim response = Await client.GetAsync("/api/DOCENCIA/docenciaspersona/" + idPers.ToString)
+
+ If response.IsSuccessStatusCode Then
+ Dim resultContent = Await response.Content.ReadAsStringAsync()
+ vidaAdministrativaItems = If(JsonConvert.DeserializeObject(Of List(Of WebIntranet.ClasesDatosAdmin.DOCENCIA))(resultContent), New List(Of WebIntranet.ClasesDatosAdmin.DOCENCIA)())
+ vidaAdministrativaItems = vidaAdministrativaItems.ToList()
+ Else
+ Console.WriteLine($"Error al cargar Vida Administrativa: {response.StatusCode}")
+ End If
+ Dim htmlTabla = ""
+ If vidaAdministrativaItems.Count > 0 Then
+
+
+ htmlTabla += "
" +
+ "
Denominación
" +
+ "
Centro
" +
+ "
Fecha
" +
+ "
Duración
" +
+ "
Tipo de docencia
"
+ For Each itm As WebIntranet.ClasesDatosAdmin.DOCENCIA In vidaAdministrativaItems
+ '/fichero.aspx?id=" + linAd.IDLINEAVIDAADMIN.ToString() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & linAd.IDLINEAVIDAADMIN.ToString) + "&t=LINEAVIDAADMINISTRATIVA
+ Dim urlFich = "/fichero.aspx?id=" + itm.IDDOCENCIA.ToString() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & itm.IDDOCENCIA.ToString) + "&t=DOCENCIA"
+ 'Dim urlFich = "/Ficheros?tip=VerFrm&id=" + itm.ToString()
+ htmlTabla += "
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx
new file mode 100644
index 0000000..cbcf4f8
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="titulaciones.aspx.vb" Async="true" Inherits="WebIntranet.titulaciones" %>
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.designer.vb
new file mode 100644
index 0000000..a67de5f
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class titulaciones
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.vb
new file mode 100644
index 0000000..3a8cd5e
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/titulaciones.aspx.vb
@@ -0,0 +1,46 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports WebIntranet.ClasesDatosAdmin
+
+Public Class titulaciones
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ 'If (Session("persona") Is Nothing) Then
+ ' ("Default.aspx", False)
+ 'Else
+
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/TITULACIONES/GetWithIncludes/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of ClasesDatosAdmin.TITULACIONES))(client, url)
+ Dim htmlTabla = ""
+ If puestosItems.Count > 0 Then
+ htmlTabla += "
" +
+ "
Descripción
" +
+ "
Centro
" +
+ "
Fecha expedición
" +
+ "
Fecha incripción provisional
" +
+ "
Fecha incripción definitiva
"
+ For Each itm As ClasesDatosAdmin.TITULACIONES In puestosItems
+ Dim ruta = "/fichero.aspx?id=" + itm.IDTITULACION.ToString() + "&cl=" + tsl5.crypt.SHA1("M3Soft." & itm.IDTITULACION.ToString) + "&t=TITULACION"
+
+ htmlTabla += "
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx
new file mode 100644
index 0000000..c511c5e
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" Async="true" CodeBehind="trienios.aspx.vb" Inherits="WebIntranet.trienios" %>
+
+
+
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.designer.vb b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.designer.vb
new file mode 100644
index 0000000..88bdb96
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.designer.vb
@@ -0,0 +1,24 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class trienios
+
+ '''
+ '''Control divTabla.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divTabla As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.vb b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.vb
new file mode 100644
index 0000000..107de89
--- /dev/null
+++ b/.codex-links/WebIntranet/DatosAdministrativos/trienios.aspx.vb
@@ -0,0 +1,37 @@
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+
+Public Class trienios
+ Inherits System.Web.UI.Page
+
+ Protected Async Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+
+ Dim token As String = Session("token")
+ Dim client As New HttpClient()
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.BaseAddress = New Uri(ConfigurationManager.AppSettings("SwaggerVB"))
+ Dim idPers = Session("persona").Personas(0).idPersona
+ Dim url As String = "/api/TRIENIOS/GetWithIncludes/" & idPers
+ Dim puestosItems = Await UtilAntifraude.ObtenerObjeto(Of List(Of ClasesDatosAdmin.TRIENIOS))(client, url)
+ Dim htmlTabla = ""
+ If (puestosItems.Count > 0) Then
+ htmlTabla += "
" +
+ "
Grupo
" +
+ "
Trienios otras administraciones
" +
+ "
Trienios oficina
"
+
+ For Each itm As ClasesDatosAdmin.TRIENIOS In puestosItems
+ htmlTabla += "
" +
+ "
" + itm.IDGRUPONavigation.DESCRIPCION + "
" +
+ "
" + itm.TOA.ToString + "
" +
+ "
" + itm.TC.ToString + "
"
+
+ Next
+ htmlTabla += "
"
+ Else
+ htmlTabla += "
No se han encontrado resultados
"
+ End If
+ divTabla.InnerHtml = htmlTabla
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Default.aspx b/.codex-links/WebIntranet/Default.aspx
new file mode 100644
index 0000000..36ec186
--- /dev/null
+++ b/.codex-links/WebIntranet/Default.aspx
@@ -0,0 +1,154 @@
+<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="WebIntranet._Default" Async="true" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.codex-links/WebIntranet/Default.aspx.designer.vb b/.codex-links/WebIntranet/Default.aspx.designer.vb
new file mode 100644
index 0000000..006fdd1
--- /dev/null
+++ b/.codex-links/WebIntranet/Default.aspx.designer.vb
@@ -0,0 +1,78 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class _Default
+
+ '''
+ '''Control form1.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents form1 As Global.System.Web.UI.HtmlControls.HtmlForm
+
+ '''
+ '''Control mensajeError.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents mensajeError As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control Usuario.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents Usuario As Global.System.Web.UI.HtmlControls.HtmlInputText
+
+ '''
+ '''Control Contrasena.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents Contrasena As Global.System.Web.UI.HtmlControls.HtmlInputPassword
+
+ '''
+ '''Control btnAcceso.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents btnAcceso As Global.DevExpress.Web.Bootstrap.BootstrapButton
+
+ '''
+ '''Control divLoadingHome.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents divLoadingHome As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control loadingHome.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents loadingHome As Global.System.Web.UI.HtmlControls.HtmlImage
+End Class
diff --git a/.codex-links/WebIntranet/Default.aspx.vb b/.codex-links/WebIntranet/Default.aspx.vb
new file mode 100644
index 0000000..a84672a
--- /dev/null
+++ b/.codex-links/WebIntranet/Default.aspx.vb
@@ -0,0 +1,397 @@
+Imports System.Net
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports System.Text
+Imports System.Threading.Tasks
+Imports Models
+Imports Newtonsoft.Json.Linq
+
+Public Class _Default
+ Inherits System.Web.UI.Page
+
+ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ If Not IsPostBack Then
+ mensajeError.InnerText = Convert.ToString(Request.QueryString("certError"))
+ End If
+ End Sub
+
+ Private Async Sub btnAcceso_Click(sender As Object, e As EventArgs) Handles btnAcceso.Click
+ mensajeError.InnerText = ""
+
+ Dim resultIden As String = Await CredNet(Usuario.Value)
+ Dim RespIden As Models.ResultadoIdentificacion = Nothing
+
+ If resultIden <> "error" Then
+ Dim client = HttpClientFactory.Create()
+ client.BaseAddress = New Uri(UtilAntifraude.urlSwagger())
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", Convert.ToString(Session("token")))
+
+ Dim loginResponse = Await client.GetAsync("api/ResultadoIdentificacion/nif/" + resultIden + "/Origen/WEBINTRANET")
+ Dim responseContent = Await loginResponse.Content.ReadAsStringAsync()
+
+ RespIden = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoIdentificacion)(responseContent)
+ End If
+
+ If RespIden Is Nothing Then
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = "No se pudo identificar al usuario."
+ Return
+ End If
+
+ ProcesarResultadoIdentificacion(RespIden, Usuario.Value)
+ End Sub
+
+ Private Async Function CredNet(Nif As String) As Task(Of String)
+ Try
+ Dim contr As String = Contrasena.Value
+
+ Dim client = HttpClientFactory.Create()
+ client.BaseAddress = New Uri(UtilAntifraude.urlSwagger())
+
+ Dim loginPayload = "{""NombreUsuario"":""" + Nif + """,""Contraseña"":""" + contr + """, ""Origen"":""Intranet""}"
+ Dim loginContent As StringContent = New StringContent(loginPayload, Encoding.UTF8, "application/json")
+ Dim loginResponse = Await client.PostAsync("api/Auth/login", loginContent)
+ Dim responseContent = Await loginResponse.Content.ReadAsStringAsync()
+
+ If loginResponse.IsSuccessStatusCode Then
+ Dim parsedJson = JObject.Parse(responseContent)
+ Session("token") = If(parsedJson("token")?.ToString(), If(parsedJson("Token")?.ToString(), ""))
+
+ Dim us = parsedJson("user")
+ If us Is Nothing Then us = parsedJson("User")
+
+ If us IsNot Nothing Then
+ Return If(us("nif")?.ToString(),
+ If(us("NIF")?.ToString(),
+ If(us("dni")?.ToString(),
+ If(us("DNI")?.ToString(), ""))))
+ End If
+
+ Return "error"
+ Else
+ Return "error"
+ End If
+ Catch
+ Return "error"
+ End Try
+ End Function
+
+ Private Sub ProcesarResultadoIdentificacion(respIden As Models.ResultadoIdentificacion, usuarioOriginal As String)
+ If respIden Is Nothing Then
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = "No se pudo identificar al usuario."
+ Return
+ End If
+
+ Select Case respIden.resultado.ToString()
+ Case "0"
+ Dim Nombre As String = respIden.Personas(0).Nombre
+ Dim Nif As String = respIden.Personas(0).Dni
+
+ Session.Add("Nombre", Nombre)
+ Session.Add("usuario", Nif)
+ Session.Add("Persona", respIden)
+
+ CargarNotificaciones(respIden)
+
+ If Not String.IsNullOrWhiteSpace(usuarioOriginal) AndAlso usuarioOriginal.Length > 1 Then
+ If Not "0123456789".Contains(usuarioOriginal.Substring(1, 1)) Then
+ Session.Add("LDAP", usuarioOriginal)
+ End If
+ End If
+
+ If respIden.Personas.Count > 1 Then
+ Response.Redirect("selModo.aspx", False)
+ Context.ApplicationInstance.CompleteRequest()
+ Else
+ Session.Add("modo", "PROPIO")
+ Session.Add("usuariosSeleccionados", Nif.Split(",").ToList())
+ Response.Redirect("home.aspx", False)
+ Context.ApplicationInstance.CompleteRequest()
+ End If
+
+ Case "1"
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = "Usuario incorrecto"
+
+ Case "2"
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = "Contraseña incorrecta"
+
+ Case "3"
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = respIden.errores.ToString()
+
+ Case Else
+ divLoadingHome.Style.Item("display") = "none"
+ mensajeError.InnerText = "Error de identificación no controlado."
+ End Select
+ End Sub
+
+ Private Sub CargarNotificaciones(respIden As Models.ResultadoIdentificacion)
+ Dim listpersonas = respIden.Personas.ToList()
+ Dim numAsistenciasPendientes = 0
+ Dim listaPersonasIncidenciasPendientes As List(Of String) = New List(Of String)
+
+ If listpersonas.Count > 1 Then
+ Dim cont = 0
+
+ For Each persona As Models.Personal In listpersonas
+ If cont = 0 Then
+ cont += 1
+ Else
+ numAsistenciasPendientes += persona.NumeroInciPorAceptar
+ If persona.NumeroInciPorAceptar > 0 Then
+ listaPersonasIncidenciasPendientes.Add(persona.Dni)
+ End If
+ End If
+ Next
+
+ If numAsistenciasPendientes > 0 Then
+ Session.Add("nuIncidenciasPendientes", numAsistenciasPendientes)
+ Session.Add("listaPersonasIncPend", listaPersonasIncidenciasPendientes)
+ Session.Add("fechaIniIncidenciasPendientes", respIden.FeIniInciPorAceptar.ToString("yyyy-MM-dd"))
+ Session.Add("fechaFinIncidenciasPendientes", respIden.FeFinInciPorAceptar.ToString("yyyy-MM-dd"))
+ Session.Add("mostrarAviso", True)
+ End If
+ End If
+ End Sub
+
+
+ Public Shared Async Function cargarListado(usu As String, token As String) As Task(Of String)
+ Return Await cargarListadoInterno(HttpContext.Current, usu, token)
+ End Function
+
+
+ Public Shared Async Function cargarListadoCertificado(dni As String) As Task(Of String)
+ If String.IsNullOrWhiteSpace(dni) Then
+ Return "No se pudo obtener el DNI del certificado."
+ End If
+
+ Dim currentContext = HttpContext.Current
+ If currentContext Is Nothing Then
+ Return "No se pudo recuperar el contexto de sesión del acceso."
+ End If
+
+ If currentContext.Session Is Nothing Then
+ Return "No se pudo recuperar la sesión del acceso con certificado."
+ End If
+
+ Dim endpoint As String = ConfigurationManager.AppSettings("CertLoginEndpoint")
+ If String.IsNullOrWhiteSpace(endpoint) Then
+ endpoint = "api/Auth/login-cert-proxy"
+ End If
+
+ Dim payload = "{""Dni"":""" & EscapeJson(dni.Trim()) & """}"
+ Dim lastError As String = "No se pudo conectar con el servicio de autenticación."
+
+ For Each baseAddress In ObtenerSwaggerBaseAddresses()
+ Try
+ Dim client = HttpClientFactory.Create()
+ client.BaseAddress = baseAddress
+ client.Timeout = TimeSpan.FromSeconds(15)
+
+ Using loginContent As New StringContent(payload, Encoding.UTF8, "application/json")
+ Dim loginResponse = Await client.PostAsync(endpoint, loginContent)
+ Dim responseContent = Await loginResponse.Content.ReadAsStringAsync()
+
+ If Not loginResponse.IsSuccessStatusCode Then
+ If Not String.IsNullOrWhiteSpace(responseContent) Then
+ Return responseContent
+ End If
+
+ Return "Error en el acceso con certificado."
+ End If
+
+ Dim parsedJson = JObject.Parse(responseContent)
+ Dim token = If(parsedJson("token")?.ToString(), If(parsedJson("Token")?.ToString(), ""))
+
+ Dim us = parsedJson("user")
+ If us Is Nothing Then us = parsedJson("User")
+
+ Dim nif = ""
+ If us IsNot Nothing Then
+ nif = If(us("nif")?.ToString(),
+ If(us("NIF")?.ToString(),
+ If(us("dni")?.ToString(),
+ If(us("DNI")?.ToString(), ""))))
+ End If
+
+ If String.IsNullOrWhiteSpace(token) OrElse String.IsNullOrWhiteSpace(nif) Then
+ Return "Respuesta inválida del servicio de autenticación."
+ End If
+
+ Try
+ Return Await cargarListadoInterno(currentContext, nif, token)
+ Catch ex As Exception
+ Return "Error interno completando el acceso con certificado: " & ex.Message
+ End Try
+ End Using
+ Catch ex As Exception When TypeOf ex Is HttpRequestException OrElse
+ TypeOf ex Is TaskCanceledException OrElse
+ TypeOf ex Is InvalidOperationException OrElse
+ TypeOf ex Is UriFormatException
+ lastError = ex.Message
+ End Try
+ Next
+
+ Return "No se pudo conectar con el servicio de autenticación configurado: " & lastError
+ End Function
+
+ Private Shared Iterator Function ObtenerSwaggerBaseAddresses() As IEnumerable(Of Uri)
+ Dim seen As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
+
+ For Each candidate In ObtenerSwaggerBaseAddressCandidates()
+ Dim normalizedCandidate = candidate.Trim()
+ If normalizedCandidate = "" Then
+ Continue For
+ End If
+
+ Dim baseUri As Uri = Nothing
+ If Not Uri.TryCreate(normalizedCandidate, UriKind.Absolute, baseUri) Then
+ Continue For
+ End If
+
+ Dim key = baseUri.AbsoluteUri.TrimEnd("/"c)
+ If seen.Add(key) Then
+ Yield baseUri
+ End If
+ Next
+ End Function
+
+ Private Shared Iterator Function ObtenerSwaggerBaseAddressCandidates() As IEnumerable(Of String)
+ Dim configuredUrl = UtilAntifraude.urlSwagger()
+ If Not String.IsNullOrWhiteSpace(configuredUrl) Then
+ Yield configuredUrl
+
+ Dim configuredUri As Uri = Nothing
+ If Uri.TryCreate(configuredUrl, UriKind.Absolute, configuredUri) AndAlso
+ String.Equals(configuredUri.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase) AndAlso
+ EsHostLocal(configuredUri.Host) Then
+
+ Dim httpBuilder As New UriBuilder(configuredUri) With {
+ .Scheme = Uri.UriSchemeHttp,
+ .Port = configuredUri.Port
+ }
+
+ Yield httpBuilder.Uri.AbsoluteUri
+ End If
+ End If
+
+ Dim explicitFallback = ConfigurationManager.AppSettings("SwaggerVBFallback")
+ If Not String.IsNullOrWhiteSpace(explicitFallback) Then
+ Yield explicitFallback
+ End If
+ End Function
+
+ Private Shared Function EsHostLocal(host As String) As Boolean
+ Return String.Equals(host, "localhost", StringComparison.OrdinalIgnoreCase) OrElse
+ String.Equals(host, "127.0.0.1", StringComparison.OrdinalIgnoreCase) OrElse
+ String.Equals(host, "::1", StringComparison.OrdinalIgnoreCase)
+ End Function
+
+ Private Shared Function EscapeJson(valor As String) As String
+ If valor Is Nothing Then Return ""
+ Return valor.Replace("\", "\\").Replace("""", "\""").Replace(vbCrLf, "\n").Replace(vbLf, "\n").Replace(vbCr, "\n")
+ End Function
+
+ Private Shared Async Function cargarListadoInterno(context As HttpContext, usu As String, token As String) As Task(Of String)
+ If context Is Nothing Then
+ Return "No se pudo recuperar la sesión del usuario."
+ End If
+
+ Dim session = context.Session
+ If session Is Nothing Then
+ Return "No se pudo recuperar la sesión del usuario."
+ End If
+
+ session("token") = token
+
+ Dim client = HttpClientFactory.Create()
+ client.BaseAddress = New Uri(UtilAntifraude.urlSwagger())
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+
+ Dim loginResponse = Await client.GetAsync("api/ResultadoIdentificacion/nif/" + usu + "/Origen/WEBINTRANET")
+ Dim responseContent = Await loginResponse.Content.ReadAsStringAsync()
+ Dim respIden = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Models.ResultadoIdentificacion)(responseContent)
+
+ If respIden Is Nothing Then
+ Return "No se pudo identificar al usuario."
+ End If
+
+ If respIden.Personas Is Nothing OrElse respIden.Personas.Count = 0 Then
+ Return "La identificación no devolvió ninguna persona asociada."
+ End If
+
+ Dim resultado = Convert.ToString(respIden.resultado)
+
+ Select Case resultado
+ Case "0"
+ Dim nombre = respIden.Personas(0).Nombre
+ Dim nif = respIden.Personas(0).Dni
+
+ session("Nombre") = nombre
+ session("usuario") = nif
+ session("Persona") = respIden
+
+ Dim listpersonas = respIden.Personas.ToList()
+ Dim numAsistenciasPendientes = 0
+ Dim listaPersonasIncidenciasPendientes As List(Of String) = New List(Of String)
+
+ If listpersonas.Count > 1 Then
+ Dim cont = 0
+ For Each persona As Models.Personal In listpersonas
+ If cont = 0 Then
+ cont += 1
+ Else
+ numAsistenciasPendientes += persona.NumeroInciPorAceptar
+ If persona.NumeroInciPorAceptar > 0 Then
+ listaPersonasIncidenciasPendientes.Add(persona.Dni)
+ End If
+ End If
+ Next
+
+ If numAsistenciasPendientes > 0 Then
+ session("nuIncidenciasPendientes") = numAsistenciasPendientes
+ session("listaPersonasIncPend") = listaPersonasIncidenciasPendientes
+ session("fechaIniIncidenciasPendientes") = respIden.FeIniInciPorAceptar.ToString("yyyy-MM-dd")
+ session("fechaFinIncidenciasPendientes") = respIden.FeFinInciPorAceptar.ToString("yyyy-MM-dd")
+ session("mostrarAviso") = True
+ End If
+ End If
+
+ If Not String.IsNullOrWhiteSpace(usu) AndAlso usu.Length > 1 Then
+ If Not "0123456789".Contains(usu.Substring(1, 1)) Then
+ session("LDAP") = usu
+ End If
+ End If
+
+ If respIden.Personas.Count > 1 Then
+ Return "selModo.aspx"
+ End If
+
+ session("modo") = "PROPIO"
+ session("usuariosSeleccionados") = nif.Split(",").ToList()
+ Return "home.aspx"
+
+ Case "1"
+ Return "Usuario incorrecto"
+
+ Case "2"
+ Return "Contraseña incorrecta"
+
+ Case "3"
+ Return Convert.ToString(respIden.errores)
+
+ Case Else
+ Return "Error de identificación no controlado"
+ End Select
+ End Function
+
+End Class
+
+Public Class NominaTrabajador
+ Public Property idNominaTrabajador As String
+ Public Property Descripcion As String
+ Public Property MesNomina As Integer
+End Class
diff --git a/.codex-links/WebIntranet/Global.asax b/.codex-links/WebIntranet/Global.asax
new file mode 100644
index 0000000..f9b9e19
--- /dev/null
+++ b/.codex-links/WebIntranet/Global.asax
@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.vb" Inherits="WebIntranet.Global_asax" Language="VB" %>
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Global.asax.vb b/.codex-links/WebIntranet/Global.asax.vb
new file mode 100644
index 0000000..05ebb47
--- /dev/null
+++ b/.codex-links/WebIntranet/Global.asax.vb
@@ -0,0 +1,45 @@
+Imports System.Web.SessionState
+Imports DevExpress.Web
+
+Public Class Global_asax
+ Inherits System.Web.HttpApplication
+ Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
+ AddHandler DevExpress.Web.ASPxWebControl.CallbackError, AddressOf Application_Error
+ End Sub
+
+ Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires when the session is started
+ End Sub
+
+ Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires at the beginning of each request
+ End Sub
+
+ Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires upon attempting to authenticate the use
+ End Sub
+
+ Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires when an error occurs
+ End Sub
+
+ Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires when the session ends
+ End Sub
+
+ Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
+ ' Fires when the application ends
+ End Sub
+
+ Private Sub Global_asax_AcquireRequestState(sender As Object, e As EventArgs) Handles Me.AcquireRequestState
+ 'If HttpContext.Current.Session IsNot Nothing Then
+ ' Dim url = HttpContext.Current.Request.Url.AbsoluteUri
+ ' Dim usu = If(HttpContext.Current.Session Is Nothing OrElse HttpContext.Current.Session("usuario") Is Nothing, "", HttpContext.Current.Session("usuario"))
+ ' If (url.ToLower.EndsWith("default.aspx") = False AndAlso url.ToLower.EndsWith("sesionnovalida.aspx") = False) AndAlso usu = "" Then
+ ' Server.ClearError()
+ ' Response.Clear()
+ ' Response.Redirect("/sesionNoValida.aspx", True)
+ ' End If
+ 'End If
+ End Sub
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/ILLink/ILLink.Descriptors.LibraryBuild.xml b/.codex-links/WebIntranet/ILLink/ILLink.Descriptors.LibraryBuild.xml
new file mode 100644
index 0000000..a42d7f0
--- /dev/null
+++ b/.codex-links/WebIntranet/ILLink/ILLink.Descriptors.LibraryBuild.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/.codex-links/WebIntranet/LoginCertBridge.aspx b/.codex-links/WebIntranet/LoginCertBridge.aspx
new file mode 100644
index 0000000..dfcfe80
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertBridge.aspx
@@ -0,0 +1,10 @@
+<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="LoginCertBridge.aspx.vb" Inherits="WebIntranet.LoginCertBridge" Async="true" %>
+
+
+
+
+ Login Cert Bridge
+
+
+
+
diff --git a/.codex-links/WebIntranet/LoginCertBridge.aspx.designer.vb b/.codex-links/WebIntranet/LoginCertBridge.aspx.designer.vb
new file mode 100644
index 0000000..87a0f4c
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertBridge.aspx.designer.vb
@@ -0,0 +1,15 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class LoginCertBridge
+End Class
diff --git a/.codex-links/WebIntranet/LoginCertBridge.aspx.vb b/.codex-links/WebIntranet/LoginCertBridge.aspx.vb
new file mode 100644
index 0000000..e37c1d0
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertBridge.aspx.vb
@@ -0,0 +1,254 @@
+Imports System.Net
+Imports System.Net.Http
+Imports System.Text
+Imports System.Threading.Tasks
+Imports System.Web
+Imports System.Web.Caching
+Imports Newtonsoft.Json
+
+Public Class LoginCertBridge
+ Inherits System.Web.UI.Page
+
+ Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
+ RegisterAsyncTask(New PageAsyncTask(AddressOf Procesar))
+ End Sub
+
+ Private Async Function Procesar() As Threading.Tasks.Task
+ Dim iframe As Boolean = String.Equals(Convert.ToString(Request.QueryString("iframe")), "true", StringComparison.OrdinalIgnoreCase)
+ Dim parentOrigin As String = Convert.ToString(Request.QueryString("parentOrigin"))
+ Dim returnUrl As String = Convert.ToString(Request.QueryString("returnUrl"))
+ Dim state As String = Convert.ToString(Request.QueryString("state"))
+ Dim options = Models.CertificateLoginBridgeOptions.LoadFromConfiguration()
+
+ Try
+ If Not Models.CertificateLoginBridgeHelper.IsCertificateHostRequest(Request, options.PublicUrl) Then
+ ResponderError("Not Found", 404, iframe, parentOrigin)
+ Return
+ End If
+
+ If iframe AndAlso Not Models.CertificateLoginBridgeHelper.IsAllowedParentOrigin(parentOrigin, options.AllowedParentOrigins) Then
+ ResponderError("El origen padre no está permitido.", 400, iframe, parentOrigin)
+ Return
+ End If
+
+ Dim cert = Models.CertificateLoginBridgeHelper.ReadCertificate(
+ Request,
+ options.ForwardedCertificateHeader,
+ options.AdditionalForwardedCertificateHeaders)
+
+ If cert Is Nothing Then
+ ResponderError("Certificado no proporcionado.", 401, iframe, parentOrigin)
+ Return
+ End If
+
+ Dim dni As String = Models.CertificateLoginBridgeHelper.ObtenerDni(cert)
+ If String.IsNullOrWhiteSpace(dni) Then
+ ResponderError("No se pudo obtener un DNI válido del certificado.", 401, iframe, parentOrigin)
+ Return
+ End If
+
+ If Not String.IsNullOrWhiteSpace(returnUrl) Then
+ If Not Models.CertificateLoginBridgeHelper.IsAllowedParentOrigin(returnUrl, options.AllowedParentOrigins) Then
+ ResponderError("La URL de retorno no esta permitida.", 400, iframe, parentOrigin)
+ Return
+ End If
+
+ If String.IsNullOrWhiteSpace(state) Then
+ ResponderError("No se recibio el estado del acceso con certificado.", 400, iframe, parentOrigin)
+ Return
+ End If
+
+ HttpRuntime.Cache.Insert(
+ GetCacheKey(state),
+ dni,
+ Nothing,
+ DateTime.UtcNow.AddMinutes(2),
+ Cache.NoSlidingExpiration)
+
+ Response.Redirect(BuildReturnUrl(returnUrl, state), False)
+ Context.ApplicationInstance.CompleteRequest()
+ Return
+ End If
+
+ If iframe Then
+ Me.Response.StatusCode = 200
+ Me.Response.TrySkipIisCustomErrors = True
+ Me.Response.ContentType = "text/html; charset=utf-8"
+ Me.Response.Write(Models.CertificateLoginBridgeHelper.BuildIframeDniHtml(dni, parentOrigin))
+ Me.Response.Flush()
+ Context.ApplicationInstance.CompleteRequest()
+ Return
+ End If
+
+ Dim endpoint As String = ConfigurationManager.AppSettings("CertLoginEndpoint")
+ If String.IsNullOrWhiteSpace(endpoint) Then
+ endpoint = "api/Auth/login-cert-proxy"
+ End If
+
+ Dim payload As String = "{""Dni"":""" & EscapeJson(dni) & """}"
+ Dim swaggerResult = Await EjecutarLoginCertificadoAsync(endpoint, payload)
+ Dim responseContent = swaggerResult.ResponseContent
+
+ If Not swaggerResult.IsSuccessStatusCode Then
+ ResponderError(
+ "Swagger devolvió " & CInt(swaggerResult.StatusCode).ToString() & ": " & responseContent,
+ CInt(swaggerResult.StatusCode),
+ iframe,
+ parentOrigin)
+ Return
+ End If
+
+ Dim loginResponse = JsonConvert.DeserializeObject(Of Models.CertificateProxyLoginResponse)(responseContent)
+ If loginResponse Is Nothing OrElse
+ String.IsNullOrWhiteSpace(loginResponse.Token) OrElse
+ loginResponse.User Is Nothing Then
+ ResponderError("Respuesta inválida del servicio de autenticación.", 502, iframe, parentOrigin)
+ Return
+ End If
+
+ Me.Response.StatusCode = 200
+ Me.Response.TrySkipIisCustomErrors = True
+
+ If iframe Then
+ Me.Response.ContentType = "text/html; charset=utf-8"
+ Me.Response.Write(Models.CertificateLoginBridgeHelper.BuildIframeLoginHtml(loginResponse, parentOrigin))
+ Else
+ Me.Response.ContentType = "application/json; charset=utf-8"
+ Me.Response.Write(responseContent)
+ End If
+
+ Me.Response.Flush()
+ Context.ApplicationInstance.CompleteRequest()
+ Catch ex As Exception
+ ResponderError("Error interno: " & ex.Message, 500, iframe, parentOrigin)
+ End Try
+ End Function
+
+ Private Sub ResponderError(mensaje As String, statusCode As Integer, iframe As Boolean, parentOrigin As String)
+ Me.Response.TrySkipIisCustomErrors = True
+
+ If iframe Then
+ Me.Response.StatusCode = 200
+ Me.Response.Headers("X-Cert-Bridge-StatusCode") = statusCode.ToString()
+ Me.Response.ContentType = "text/html; charset=utf-8"
+ Me.Response.Write(Models.CertificateLoginBridgeHelper.BuildIframeErrorHtml(mensaje, parentOrigin))
+ Me.Response.Flush()
+ Context.ApplicationInstance.CompleteRequest()
+ Return
+ End If
+
+ Me.Response.StatusCode = statusCode
+ Me.Response.ContentType = "text/plain; charset=utf-8"
+ Me.Response.Write(mensaje)
+ Me.Response.Flush()
+ Context.ApplicationInstance.CompleteRequest()
+ End Sub
+
+ Private Async Function EjecutarLoginCertificadoAsync(endpoint As String, payload As String) As Task(Of SwaggerProxyResult)
+ Dim lastException As Exception = Nothing
+
+ For Each baseAddress In ObtenerSwaggerBaseAddresses()
+ Try
+ Dim client = HttpClientFactory.Create()
+ client.BaseAddress = baseAddress
+ client.Timeout = TimeSpan.FromSeconds(20)
+
+ Using content As New StringContent(payload, Encoding.UTF8, "application/json")
+ Dim httpResponse = Await client.PostAsync(endpoint, content).ConfigureAwait(False)
+ Dim responseContent = Await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(False)
+
+ Return New SwaggerProxyResult With {
+ .StatusCode = httpResponse.StatusCode,
+ .ResponseContent = responseContent
+ }
+ End Using
+ Catch ex As Exception When TypeOf ex Is HttpRequestException OrElse TypeOf ex Is TaskCanceledException OrElse TypeOf ex Is InvalidOperationException
+ lastException = ex
+ End Try
+ Next
+
+ Throw New Exception(
+ "No se pudo conectar con el servicio de autenticación configurado (" & UtilAntifraude.urlSwagger() & ").",
+ lastException)
+ End Function
+
+ Private Iterator Function ObtenerSwaggerBaseAddresses() As IEnumerable(Of Uri)
+ Dim seen As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
+
+ For Each candidate In ObtenerSwaggerBaseAddressCandidates()
+ Dim normalizedCandidate = candidate.Trim()
+ If normalizedCandidate = "" Then
+ Continue For
+ End If
+
+ Dim baseUri As Uri = Nothing
+ If Not Uri.TryCreate(normalizedCandidate, UriKind.Absolute, baseUri) Then
+ Continue For
+ End If
+
+ Dim key = baseUri.AbsoluteUri.TrimEnd("/"c)
+ If seen.Add(key) Then
+ Yield baseUri
+ End If
+ Next
+ End Function
+
+ Private Iterator Function ObtenerSwaggerBaseAddressCandidates() As IEnumerable(Of String)
+ Dim configuredUrl = UtilAntifraude.urlSwagger()
+ If Not String.IsNullOrWhiteSpace(configuredUrl) Then
+ Yield configuredUrl
+
+ Dim configuredUri As Uri = Nothing
+ If Uri.TryCreate(configuredUrl, UriKind.Absolute, configuredUri) AndAlso
+ String.Equals(configuredUri.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase) AndAlso
+ EsHostLocal(configuredUri.Host) Then
+
+ Dim httpBuilder As New UriBuilder(configuredUri) With {
+ .Scheme = Uri.UriSchemeHttp,
+ .Port = configuredUri.Port
+ }
+
+ Yield httpBuilder.Uri.AbsoluteUri
+ End If
+ End If
+
+ Dim explicitFallback = ConfigurationManager.AppSettings("SwaggerVBFallback")
+ If Not String.IsNullOrWhiteSpace(explicitFallback) Then
+ Yield explicitFallback
+ End If
+ End Function
+
+ Private Function EsHostLocal(host As String) As Boolean
+ Return String.Equals(host, "localhost", StringComparison.OrdinalIgnoreCase) OrElse
+ String.Equals(host, "127.0.0.1", StringComparison.OrdinalIgnoreCase) OrElse
+ String.Equals(host, "::1", StringComparison.OrdinalIgnoreCase)
+ End Function
+
+ Private Function EscapeJson(valor As String) As String
+ If valor Is Nothing Then Return ""
+ Return valor.Replace("\", "\\").Replace("""", "\""").Replace(vbCrLf, "\n").Replace(vbLf, "\n").Replace(vbCr, "\n")
+ End Function
+
+ Private Function BuildReturnUrl(returnUrl As String, state As String) As String
+ Dim builder As New UriBuilder(returnUrl)
+ Dim query = HttpUtility.ParseQueryString(builder.Query)
+ query("state") = state.Trim()
+ builder.Query = query.ToString()
+ Return builder.Uri.AbsoluteUri
+ End Function
+
+ Private Function GetCacheKey(state As String) As String
+ Return "CertLoginState:" & state.Trim()
+ End Function
+
+ Private NotInheritable Class SwaggerProxyResult
+ Public Property StatusCode As HttpStatusCode
+ Public Property ResponseContent As String = String.Empty
+
+ Public ReadOnly Property IsSuccessStatusCode As Boolean
+ Get
+ Return CInt(StatusCode) >= 200 AndAlso CInt(StatusCode) <= 299
+ End Get
+ End Property
+ End Class
+End Class
diff --git a/.codex-links/WebIntranet/LoginCertCallback.aspx b/.codex-links/WebIntranet/LoginCertCallback.aspx
new file mode 100644
index 0000000..c660501
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertCallback.aspx
@@ -0,0 +1,10 @@
+<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="LoginCertCallback.aspx.vb" Inherits="WebIntranet.LoginCertCallback" Async="true" %>
+
+
+
+
+ Acceso con certificado
+
+
+
+
diff --git a/.codex-links/WebIntranet/LoginCertCallback.aspx.designer.vb b/.codex-links/WebIntranet/LoginCertCallback.aspx.designer.vb
new file mode 100644
index 0000000..918cde4
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertCallback.aspx.designer.vb
@@ -0,0 +1,5 @@
+Option Strict On
+Option Explicit On
+
+Partial Public Class LoginCertCallback
+End Class
diff --git a/.codex-links/WebIntranet/LoginCertCallback.aspx.vb b/.codex-links/WebIntranet/LoginCertCallback.aspx.vb
new file mode 100644
index 0000000..282bb2a
--- /dev/null
+++ b/.codex-links/WebIntranet/LoginCertCallback.aspx.vb
@@ -0,0 +1,50 @@
+Imports System.Web
+Imports System.Threading.Tasks
+
+Public Class LoginCertCallback
+ Inherits System.Web.UI.Page
+
+ Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
+ RegisterAsyncTask(New PageAsyncTask(AddressOf Procesar))
+ End Sub
+
+ Private Async Function Procesar() As Task
+ Dim state = Convert.ToString(Request.QueryString("state"))
+ If String.IsNullOrWhiteSpace(state) Then
+ RedirigirConError("No se recibió el estado del acceso con certificado.")
+ Return
+ End If
+
+ Dim cacheKey = GetCacheKey(state)
+ Dim dni = TryCast(HttpRuntime.Cache(cacheKey), String)
+ If Not String.IsNullOrWhiteSpace(dni) Then
+ HttpRuntime.Cache.Remove(cacheKey)
+ End If
+
+ If String.IsNullOrWhiteSpace(dni) Then
+ RedirigirConError("No se pudo recuperar el DNI del acceso con certificado.")
+ Return
+ End If
+
+ Dim result = Await _Default.cargarListadoCertificado(dni)
+ If String.Equals(result, "home.aspx", StringComparison.OrdinalIgnoreCase) OrElse
+ String.Equals(result, "selModo.aspx", StringComparison.OrdinalIgnoreCase) Then
+
+ Response.Redirect(result, False)
+ Context.ApplicationInstance.CompleteRequest()
+ Return
+ End If
+
+ RedirigirConError(result)
+ End Function
+
+ Private Sub RedirigirConError(message As String)
+ Dim safeMessage = If(String.IsNullOrWhiteSpace(message), "No se pudo completar el acceso con certificado.", message)
+ Response.Redirect("Default.aspx?certError=" & HttpUtility.UrlEncode(safeMessage), False)
+ Context.ApplicationInstance.CompleteRequest()
+ End Sub
+
+ Private Shared Function GetCacheKey(state As String) As String
+ Return "CertLoginState:" & state.Trim()
+ End Function
+End Class
diff --git a/.codex-links/WebIntranet/Menu.aspx b/.codex-links/WebIntranet/Menu.aspx
new file mode 100644
index 0000000..71940bd
--- /dev/null
+++ b/.codex-links/WebIntranet/Menu.aspx
@@ -0,0 +1,15 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="Menu.aspx.vb" Inherits="WebIntranet.Menu" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.codex-links/WebIntranet/Menu.aspx.designer.vb b/.codex-links/WebIntranet/Menu.aspx.designer.vb
new file mode 100644
index 0000000..c4fde89
--- /dev/null
+++ b/.codex-links/WebIntranet/Menu.aspx.designer.vb
@@ -0,0 +1,51 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class Menu
+
+ '''
+ '''Control navLateral.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents navLateral As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control tituloMob.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents tituloMob As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control migasDePan.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents migasDePan As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control listMenu.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents listMenu As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/Menu.aspx.vb b/.codex-links/WebIntranet/Menu.aspx.vb
new file mode 100644
index 0000000..5c22a89
--- /dev/null
+++ b/.codex-links/WebIntranet/Menu.aspx.vb
@@ -0,0 +1,186 @@
+Imports System.Net
+Imports System.Net.Security
+Imports WebIntranet.Models
+
+Public Class Menu
+ Inherits System.Web.UI.Page
+ Public sessionUsuario As String
+ Public usuariosSeleccionados As List(Of String)
+ Public idGrupo As Integer
+ Public listaGruposInci As List(Of grupos)
+ Public listaGruposSoli As List(Of grupos)
+ Public listaGruposGene As List(Of grupos)
+ Public idSubgrupo As String
+ Public subgrupos As List(Of subGrupos)
+ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ If Session("usuario") = "" Then
+ Response.Redirect("default.aspx")
+ End If
+ sessionUsuario = Session("usuario")
+ idGrupo = Request.QueryString("g")
+ Dim tipo = Request.QueryString("t")
+ idSubgrupo = Request.QueryString("sg")
+
+ ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
+ Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/GruposIncidenciasControlHorario"
+ Dim credenciales3 As New Net.CredentialCache()
+ Dim clienteHTTP3 As New Net.WebClient()
+ clienteHTTP3.Encoding = System.Text.Encoding.UTF8
+ clienteHTTP3.Credentials = credenciales3
+ Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
+ Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
+ Dim settings As New Newtonsoft.Json.JsonSerializerSettings()
+ settings.CheckAdditionalContent = True
+ Dim Datos As List(Of Models.grupos) =
+ deserializador3.Deserialize(Of List(Of Models.grupos))(respuesta3)
+
+ listaGruposInci = Datos.Where(Function(x) x.NumIncidencias <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList
+ listaGruposSoli = Datos.Where(Function(x) x.NumSolicitudes <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Descripcion).ToList
+ listaGruposGene = Datos.OrderBy(Function(x) x.orden AndAlso (x.NumIncidencias <> 0 OrElse x.NumSolicitudes <> 0)).ThenBy(Function(x) x.Descripcion).ToList
+
+
+ ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
+ Dim url2 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/SubGruposIncidenciasControlHorario?idGrupo=" + idGrupo.ToString
+ Dim credenciales2 As New Net.CredentialCache()
+ Dim clienteHTTP2 As New Net.WebClient()
+ clienteHTTP2.Encoding = System.Text.Encoding.UTF8
+ clienteHTTP2.Credentials = credenciales2
+ Dim respuesta2 As String = clienteHTTP3.DownloadString(url2)
+ Dim deserializador2 As New System.Web.Script.Serialization.JavaScriptSerializer()
+ Dim settings2 As New Newtonsoft.Json.JsonSerializerSettings()
+ settings.CheckAdditionalContent = True
+ Dim Datos2 As ResultadoSubGruposIncidenciasControlHorario =
+ deserializador2.Deserialize(Of ResultadoSubGruposIncidenciasControlHorario)(respuesta2)
+ subgrupos = Datos2.listaSubgrupos
+ subgrupos = If(tipo = "p", subgrupos.Where(Function(x) x.numSol <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.descripcion).ToList, subgrupos.Where(Function(x) x.numCom <> 0).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.descripcion).ToList)
+ cargarBarraLateral(tipo)
+ cargarMenu(tipo)
+ End Sub
+ Public Sub cargarBarraLateral(tipo As String)
+ Dim lista
+ If tipo = "p" Then
+ lista = listaGruposSoli
+ ElseIf tipo = "i" Then
+ lista = listaGruposInci
+ ElseIf tipo Is Nothing OrElse tipo = "" Then
+ lista = listaGruposGene
+ End If
+ Dim html = ""
+ html += "
"
+ For Each grupo As grupos In lista
+ If grupo.idGrupo = idGrupo Then
+ html += "
"
+ navLateral.InnerHtml = html
+ End Sub
+ Public Sub cargarMenu(tipo As String)
+ Dim usuario As String = "tecnosis"
+ Dim contraseña As String = "patata2022"
+ Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/IncidenciasControlHorario"
+ ' Dim url3 As String = "http://192.168.41.14:81/api/IncidenciasControlHorario"
+ Dim credenciales3 As New Net.CredentialCache()
+ credenciales3.Add(New Uri(url3), "Basic", New Net.NetworkCredential(usuario, contraseña))
+ Dim clienteHTTP3 As New Net.WebClient()
+ clienteHTTP3.Encoding = System.Text.Encoding.UTF8
+ clienteHTTP3.Credentials = credenciales3
+ Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
+ Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
+ deserializador3.MaxJsonLength = Integer.MaxValue
+ Dim listaPicada As List(Of Incidencia) =
+ deserializador3.Deserialize(Of List(Of Incidencia))(respuesta3)
+ Dim ListIncidenciasNoReloj = listaPicada.Where(Function(x) x.EsInciReloj = False).OrderBy(Function(x) x.Descripcion).ToList
+ Dim lista As List(Of Incidencia)
+ Dim htmlMigas = ""
+ 'Dim htmlTituloMob = ""
+ Dim descrip
+ Dim sec
+ Dim titulo
+ If tipo = "p" Then
+ sec = "Permisos"
+ descrip = listaGruposSoli.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion
+ lista = ListIncidenciasNoReloj.Where(Function(x) x.RequiereAprobacion = True AndAlso x.idGrupo IsNot "" AndAlso x.idGrupo = idGrupo AndAlso x.visibleWeb = True).OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre).ToList
+ htmlMigas += "
"
+ titulo = listaGruposGene.FirstOrDefault(Function(x) x.idGrupo = idGrupo).Descripcion
+ End If
+ Dim htmlSubgrupos = ""
+ If subgrupos.Count > 0 Then
+ For Each subgrp As subGrupos In subgrupos
+ Dim listainciSubgrupo = lista.Where(Function(x) x.idSubgrupo IsNot "" AndAlso x.idSubgrupo = subgrp.idSubGrupo)
+ If listainciSubgrupo.All(Function(x) x.visibleWeb <> False) = True Then
+ htmlSubgrupos += "
"
+ End If
+ Next
+ End If
+ Dim html = ""
+
+ 'Dim listaSinSG = lista.Where(Function(x) x.idSubgrupo = "")
+ ''SERGIO:El agu me dijo que tenian que salir ordenados por campo orden
+ Dim listaSinSG = lista.Where(Function(x) x.idSubgrupo = "").OrderBy(Function(x) x.orden)
+ If listaSinSG.Count > 0 Then
+ html += "
" +
+ "
" +
+ "
" +
+ "" +
+ "" +
+ "
" +
+ "
" +
+ "
" +
+ "
" +
+ "
"
+ For Each item As Incidencia In listaSinSG.OrderBy(Function(x) x.orden).ThenBy(Function(x) x.Nombre)
+ html += "
"
+ End If
+ migasDePan.InnerHtml = htmlMigas
+ 'tituloMenu.InnerText = titulo
+
+ listMenu.InnerHtml = "
" + html + htmlSubgrupos + "
"
+ tituloMob.InnerText = titulo
+ End Sub
+End Class
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Models/CertificateLoginBridgeHelper.vb b/.codex-links/WebIntranet/Models/CertificateLoginBridgeHelper.vb
new file mode 100644
index 0000000..a6a8cfe
--- /dev/null
+++ b/.codex-links/WebIntranet/Models/CertificateLoginBridgeHelper.vb
@@ -0,0 +1,490 @@
+Imports System.Security.Cryptography.X509Certificates
+Imports System.Text.RegularExpressions
+Imports Newtonsoft.Json
+
+Namespace Models
+ Public Class CertificateLoginBridgeOptions
+ Public Property PublicUrl As String = String.Empty
+ Public Property ForwardedCertificateHeader As String = "X-ARR-ClientCert"
+ Public Property AdditionalForwardedCertificateHeaders As List(Of String) = New List(Of String)()
+ Public Property AllowedParentOrigins As List(Of String) = New List(Of String)()
+
+ Public Shared Function LoadFromConfiguration() As CertificateLoginBridgeOptions
+ Dim publicUrl = FirstNonEmpty(
+ ConfigurationManager.AppSettings("CertificateLoginPublicUrl"),
+ ConfigurationManager.AppSettings("UrlCertLogin"))
+
+ Dim forwardedCertificateHeader = FirstNonEmpty(
+ ConfigurationManager.AppSettings("CertificateForwardedHeader"),
+ ConfigurationManager.AppSettings("CertHeaderName"),
+ "X-ARR-ClientCert")
+
+ Dim additionalHeadersSetting = FirstNonEmpty(
+ ConfigurationManager.AppSettings("CertificateAdditionalForwardedHeaders"),
+ ConfigurationManager.AppSettings("AdditionalCertHeaders"))
+
+ Dim allowedOriginsSetting = FirstNonEmpty(
+ ConfigurationManager.AppSettings("CertificateAllowedParentOrigins"),
+ ConfigurationManager.AppSettings("AllowedParentOrigins"))
+
+ Return New CertificateLoginBridgeOptions With {
+ .PublicUrl = publicUrl,
+ .ForwardedCertificateHeader = forwardedCertificateHeader,
+ .AdditionalForwardedCertificateHeaders = SplitSetting(additionalHeadersSetting),
+ .AllowedParentOrigins = SplitSetting(allowedOriginsSetting)
+ }
+ End Function
+
+ Private Shared Function SplitSetting(value As String) As List(Of String)
+ If String.IsNullOrWhiteSpace(value) Then
+ Return New List(Of String)()
+ End If
+
+ Return value.Split(New Char() {";"c, "|"c}, StringSplitOptions.RemoveEmptyEntries).
+ Select(Function(item) item.Trim()).
+ Where(Function(item) item <> String.Empty).
+ ToList()
+ End Function
+
+ Private Shared Function FirstNonEmpty(ParamArray values() As String) As String
+ For Each value In values
+ If Not String.IsNullOrWhiteSpace(value) Then
+ Return value.Trim()
+ End If
+ Next
+
+ Return String.Empty
+ End Function
+ End Class
+
+ Public Class CertificateProxyLoginResponse
+ Public Property Token As String = String.Empty
+ Public Property User As CertificateProxyUser
+ End Class
+
+ Public Class CertificateProxyUser
+ Public Property NIF As String = String.Empty
+ Public Property NOMBRE As String = String.Empty
+ Public Property APELLIDOS As String = String.Empty
+ Public Property ADMINISTRARPTYREGISTRO As Boolean?
+ End Class
+
+ Public Module CertificateLoginBridgeHelper
+ Private ReadOnly DefaultCertificateHeaders As String() = {
+ "X-ARR-ClientCert",
+ "X-Client-Cert",
+ "X-Client-Cert-Der-Base64",
+ "X-Client-Certificate",
+ "X-Client-Certificate-Der-Base64",
+ "X-SSL-CERT",
+ "X-SSL-Client-Cert",
+ "X-SSL-Client-Cert-Base64",
+ "X-Tls-Client-Cert",
+ "X-Tls-Client-Cert-Der-Base64",
+ "X-Forwarded-Tls-Client-Cert",
+ "Ssl-Client-Cert"
+ }
+
+ Private ReadOnly DefaultCertificateServerVariables As String() = {
+ "SSL_CLIENT_CERT",
+ "HTTP_SSL_CLIENT_CERT",
+ "HTTP_X_SSL_CLIENT_CERT",
+ "HTTP_X_CLIENT_CERT",
+ "HTTP_X_CLIENT_CERTIFICATE",
+ "HTTP_X_ARR_CLIENTCERT",
+ "CERT_CERTIFICATE"
+ }
+
+ Public Function IsCertificateHostRequest(request As HttpRequest, publicUrl As String) As Boolean
+ If request Is Nothing OrElse String.IsNullOrWhiteSpace(publicUrl) Then
+ Return False
+ End If
+
+ Dim configuredUri As Uri = Nothing
+ If Not Uri.TryCreate(publicUrl, UriKind.Absolute, configuredUri) Then
+ Return False
+ End If
+
+ Dim forwardedHostRaw = GetFirstHeaderValue(request, "X-Forwarded-Host")
+ Dim forwardedProtoRaw = GetFirstHeaderValue(request, "X-Forwarded-Proto")
+ Dim forwardedPortRaw = GetFirstHeaderValue(request, "X-Forwarded-Port")
+ Dim hasForwardedInfo =
+ Not String.IsNullOrWhiteSpace(forwardedHostRaw) OrElse
+ Not String.IsNullOrWhiteSpace(forwardedProtoRaw) OrElse
+ Not String.IsNullOrWhiteSpace(forwardedPortRaw)
+
+ Dim requestHost = ExtractHost(If(hasForwardedInfo, forwardedHostRaw, Nothing))
+ If String.IsNullOrWhiteSpace(requestHost) AndAlso request.Url IsNot Nothing Then
+ requestHost = request.Url.Host
+ End If
+
+ If Not String.Equals(requestHost, configuredUri.Host, StringComparison.OrdinalIgnoreCase) Then
+ Return False
+ End If
+
+ If Not hasForwardedInfo Then
+ Return True
+ End If
+
+ Dim requestScheme = FirstToken(forwardedProtoRaw)
+ If String.IsNullOrWhiteSpace(requestScheme) Then
+ requestScheme = configuredUri.Scheme
+ End If
+
+ Dim requestPort = ParseNullableInt(forwardedPortRaw)
+ If Not requestPort.HasValue Then
+ requestPort = ExtractPort(forwardedHostRaw)
+ End If
+ If Not requestPort.HasValue Then
+ requestPort = GetDefaultPort(requestScheme)
+ End If
+
+ Dim configuredPort = If(configuredUri.IsDefaultPort, GetDefaultPort(configuredUri.Scheme), configuredUri.Port)
+ Return String.Equals(requestScheme, configuredUri.Scheme, StringComparison.OrdinalIgnoreCase) AndAlso
+ requestPort.Value = configuredPort
+ End Function
+
+ Public Function IsAllowedParentOrigin(parentOrigin As String, allowedParentOrigins As IEnumerable(Of String)) As Boolean
+ Dim normalizedParentOrigin = NormalizeOrigin(parentOrigin)
+ If String.IsNullOrWhiteSpace(normalizedParentOrigin) Then
+ Return False
+ End If
+
+ Return allowedParentOrigins.
+ Where(Function(origin) Not String.IsNullOrWhiteSpace(origin)).
+ Select(Function(origin) NormalizeOrigin(origin)).
+ Any(Function(origin) String.Equals(origin, normalizedParentOrigin, StringComparison.OrdinalIgnoreCase))
+ End Function
+
+ Public Function ReadCertificate(
+ request As HttpRequest,
+ forwardedCertificateHeader As String,
+ additionalForwardedCertificateHeaders As IEnumerable(Of String)) As X509Certificate2
+
+ Dim directCertificate = ReadDirectCertificate(request)
+ If directCertificate IsNot Nothing Then
+ Return directCertificate
+ End If
+
+ Dim headerCandidates As New List(Of String)()
+ AddHeaderCandidate(headerCandidates, forwardedCertificateHeader)
+
+ If additionalForwardedCertificateHeaders IsNot Nothing Then
+ For Each headerName In additionalForwardedCertificateHeaders
+ AddHeaderCandidate(headerCandidates, headerName)
+ Next
+ End If
+
+ For Each headerName In DefaultCertificateHeaders
+ AddHeaderCandidate(headerCandidates, headerName)
+ Next
+
+ For Each headerName In headerCandidates.Distinct(StringComparer.OrdinalIgnoreCase)
+ Dim rawHeader = request.Headers(headerName)
+ If String.IsNullOrWhiteSpace(rawHeader) Then
+ Continue For
+ End If
+
+ Dim certificate = TryCreateCertificate(rawHeader)
+ If certificate IsNot Nothing Then
+ Return certificate
+ End If
+ Next
+
+ For Each serverVariableName In DefaultCertificateServerVariables
+ Dim rawValue = request.ServerVariables(serverVariableName)
+ If String.IsNullOrWhiteSpace(rawValue) Then
+ Continue For
+ End If
+
+ Dim certificate = TryCreateCertificate(rawValue)
+ If certificate IsNot Nothing Then
+ Return certificate
+ End If
+ Next
+
+ Return Nothing
+ End Function
+
+ Public Function ObtenerDni(certificado As X509Certificate2) As String
+ Try
+ If certificado Is Nothing Then
+ Return String.Empty
+ End If
+
+ Dim candidateValues As New List(Of String) From {
+ ExtractDistinguishedNameValue(certificado.Subject, "OID.2.5.4.97"),
+ ExtractDistinguishedNameValue(certificado.Subject, "2.5.4.97"),
+ ExtractDistinguishedNameValue(certificado.Subject, "SERIALNUMBER"),
+ ExtractDistinguishedNameValue(certificado.Subject, "OID.2.5.4.5"),
+ ExtractDistinguishedNameValue(certificado.Subject, "2.5.4.5"),
+ certificado.GetNameInfo(X509NameType.SimpleName, False)
+ }
+
+ For Each candidateValue In candidateValues
+ Dim nif = NormalizarIdentificadorFiscal(candidateValue)
+ If nif <> String.Empty Then
+ Return nif
+ End If
+ Next
+
+ Return NormalizarIdentificadorFiscal(certificado.Subject)
+ Catch
+ Return String.Empty
+ End Try
+ End Function
+
+ Public Function BuildIframeDniHtml(dni As String, parentOrigin As String) As String
+ Dim payloadJson = JsonConvert.SerializeObject(New With {
+ .dni = dni
+ })
+ Dim targetOriginJson = JsonConvert.SerializeObject(NormalizeOrigin(parentOrigin))
+
+ Return BuildIframePostMessageHtml(
+ payloadJson,
+ targetOriginJson,
+ "Validando acceso con certificado...")
+ End Function
+
+ Public Function BuildIframeLoginHtml(response As CertificateProxyLoginResponse, parentOrigin As String) As String
+ Dim payloadJson = JsonConvert.SerializeObject(New With {
+ .token = response.Token,
+ .user = response.User
+ })
+ Dim targetOriginJson = JsonConvert.SerializeObject(NormalizeOrigin(parentOrigin))
+
+ Return BuildIframePostMessageHtml(
+ payloadJson,
+ targetOriginJson,
+ "Validando acceso con certificado...")
+ End Function
+
+ Public Function BuildIframeErrorHtml(message As String, parentOrigin As String) As String
+ Dim payloadJson = JsonConvert.SerializeObject(New With {
+ .error = message
+ })
+ Dim targetOriginJson = JsonConvert.SerializeObject(NormalizeOrigin(parentOrigin))
+ Dim safeMessage = If(String.IsNullOrWhiteSpace(message), "No se pudo completar el acceso con certificado.", message)
+
+ Return BuildIframePostMessageHtml(
+ payloadJson,
+ targetOriginJson,
+ safeMessage)
+ End Function
+
+ Private Function BuildIframePostMessageHtml(
+ payloadJson As String,
+ targetOriginJson As String,
+ visibleMessage As String) As String
+
+ Dim visibleMessageJson = JsonConvert.SerializeObject(visibleMessage)
+
+ Return "" &
+ "" &
+ "Autenticacion Certificado" &
+ "" &
+ "" &
+ "" &
+ "" &
+ ""
+ End Function
+
+ Private Function ReadDirectCertificate(request As HttpRequest) As X509Certificate2
+ Try
+ If request Is Nothing OrElse request.ClientCertificate Is Nothing OrElse Not request.ClientCertificate.IsPresent Then
+ Return Nothing
+ End If
+
+ Dim rawCertificate = request.ClientCertificate.Certificate
+ If rawCertificate Is Nothing OrElse rawCertificate.Length = 0 Then
+ Return Nothing
+ End If
+
+ Return New X509Certificate2(rawCertificate)
+ Catch
+ Return Nothing
+ End Try
+ End Function
+
+ Private Function TryCreateCertificate(rawHeader As String) As X509Certificate2
+ Dim normalizedValue = Uri.UnescapeDataString(rawHeader).Trim()
+ If normalizedValue = String.Empty Then
+ Return Nothing
+ End If
+
+ If normalizedValue.IndexOf("BEGIN CERTIFICATE", StringComparison.OrdinalIgnoreCase) >= 0 Then
+ Try
+ Dim pemPayload = Regex.Replace(
+ normalizedValue,
+ "-+BEGIN CERTIFICATE-+|-+END CERTIFICATE-+|\s+",
+ String.Empty,
+ RegexOptions.IgnoreCase)
+
+ If pemPayload <> String.Empty Then
+ Return New X509Certificate2(Convert.FromBase64String(pemPayload))
+ End If
+ Catch
+ End Try
+ End If
+
+ Dim compactValue = Regex.Replace(normalizedValue, "\s+", String.Empty)
+ If compactValue.Length > 0 AndAlso compactValue.Length Mod 2 = 0 AndAlso Regex.IsMatch(compactValue, "^[0-9a-fA-F]+$") Then
+ Try
+ Return New X509Certificate2(HexStringToBytes(compactValue))
+ Catch
+ End Try
+ End If
+
+ Try
+ Return New X509Certificate2(Convert.FromBase64String(compactValue))
+ Catch
+ Return Nothing
+ End Try
+ End Function
+
+ Private Function NormalizarIdentificadorFiscal(value As String) As String
+ If String.IsNullOrWhiteSpace(value) Then
+ Return String.Empty
+ End If
+
+ Dim normalizedValue = value.Trim().Trim(""""c).ToUpperInvariant()
+ If normalizedValue.StartsWith("IDCES-", StringComparison.OrdinalIgnoreCase) OrElse
+ normalizedValue.StartsWith("VATES-", StringComparison.OrdinalIgnoreCase) Then
+ normalizedValue = normalizedValue.Split("-"c).Last().Trim()
+ End If
+
+ Dim match = Regex.Match(normalizedValue, "\b[0-9XYZ]\d{7}[A-Z]\b", RegexOptions.IgnoreCase)
+ If match.Success Then
+ Return match.Value.ToUpperInvariant()
+ End If
+
+ Return String.Empty
+ End Function
+
+ Private Function ExtractDistinguishedNameValue(subject As String, attributeName As String) As String
+ If String.IsNullOrWhiteSpace(subject) OrElse String.IsNullOrWhiteSpace(attributeName) Then
+ Return String.Empty
+ End If
+
+ Dim pattern = "(?:^|,\s*)" & Regex.Escape(attributeName) & "\s*=\s*(""[^""]+""|[^,]+)"
+ Dim match = Regex.Match(subject, pattern, RegexOptions.IgnoreCase)
+ If Not match.Success Then
+ Return String.Empty
+ End If
+
+ Return match.Groups(1).Value.Trim().Trim(""""c)
+ End Function
+
+ Private Function HexStringToBytes(value As String) As Byte()
+ Dim bytes((value.Length \ 2) - 1) As Byte
+ For i = 0 To bytes.Length - 1
+ bytes(i) = Convert.ToByte(value.Substring(i * 2, 2), 16)
+ Next
+
+ Return bytes
+ End Function
+
+ Private Function NormalizeOrigin(value As String) As String
+ Dim uri As Uri = Nothing
+ If Not Uri.TryCreate(value, UriKind.Absolute, uri) Then
+ Return String.Empty
+ End If
+
+ Return uri.GetLeftPart(UriPartial.Authority).TrimEnd("/"c)
+ End Function
+
+ Private Function ExtractHost(value As String) As String
+ Dim token = FirstToken(value)
+ If String.IsNullOrWhiteSpace(token) Then
+ Return String.Empty
+ End If
+
+ Dim uri As Uri = Nothing
+ If Uri.TryCreate("http://" & token, UriKind.Absolute, uri) Then
+ Return uri.Host
+ End If
+
+ Return token
+ End Function
+
+ Private Function ExtractPort(value As String) As Integer?
+ Dim token = FirstToken(value)
+ If String.IsNullOrWhiteSpace(token) Then
+ Return Nothing
+ End If
+
+ Dim uri As Uri = Nothing
+ If Uri.TryCreate("http://" & token, UriKind.Absolute, uri) AndAlso Not uri.IsDefaultPort Then
+ Return uri.Port
+ End If
+
+ Return Nothing
+ End Function
+
+ Private Function ParseNullableInt(value As String) As Integer?
+ Dim parsedValue As Integer
+ If Integer.TryParse(FirstToken(value), parsedValue) Then
+ Return parsedValue
+ End If
+
+ Return Nothing
+ End Function
+
+ Private Function FirstToken(value As String) As String
+ If String.IsNullOrWhiteSpace(value) Then
+ Return String.Empty
+ End If
+
+ Return value.Split(","c)(0).Trim()
+ End Function
+
+ Private Function GetFirstHeaderValue(request As HttpRequest, headerName As String) As String
+ If request Is Nothing OrElse String.IsNullOrWhiteSpace(headerName) Then
+ Return String.Empty
+ End If
+
+ Return request.Headers(headerName)
+ End Function
+
+ Private Function GetDefaultPort(scheme As String) As Integer
+ If String.Equals(scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) Then
+ Return 80
+ End If
+
+ Return 443
+ End Function
+
+ Private Sub AddHeaderCandidate(headerCandidates As ICollection(Of String), headerName As String)
+ If Not String.IsNullOrWhiteSpace(headerName) Then
+ headerCandidates.Add(headerName.Trim())
+ End If
+ End Sub
+ End Module
+End Namespace
+
+
diff --git a/.codex-links/WebIntranet/Models/ClasesDatosAdmin.vb b/.codex-links/WebIntranet/Models/ClasesDatosAdmin.vb
new file mode 100644
index 0000000..755c95b
--- /dev/null
+++ b/.codex-links/WebIntranet/Models/ClasesDatosAdmin.vb
@@ -0,0 +1,772 @@
+Namespace ClasesDatosAdmin
+ Public Class PuestoPersona
+
+ Public Property Puesto As String
+ Public Property Nivel As String
+ Public Property Adscripcion As String
+ Public Property Grupo As String
+ Public Property FechaToPo As DateTime
+ Public Property MotivoToPo As String
+ Public Property CaracterOcu As String
+ Public Property FechaCese As DateTime
+ Public Property MotivoCese As String
+ Public Property AnosSer As Integer
+ Public Property MesesSer As Integer
+ Public Property DiasSer As Integer
+ Public Property unidadAdministrativa As String
+ Public Property servicioAdscrito As String
+ End Class
+ Partial Public Class DOCENCIA
+ Public Property IDDOCENCIA As Integer
+ Public Property DENOMINACION As String
+ Public Property CENTRO As String
+ Public Property TIPO As String
+ Public Property FECHAEXPEDICION As DateTime?
+ Public Property DURACION As Decimal?
+ Public Property IDTIPODOCENCIA As Integer?
+ Public Property IDPERSONA As Integer?
+ Public Property RUTA As String
+ Public Overridable Property IDPERSONANavigation As PERSONAS
+ Public Overridable Property IDTIPODOCENCIANavigation As ENUMERACIONES
+ End Class
+
+
+ Partial Public Class FORMACION
+ Public Property IDFORMACION As Integer
+ Public Property NUM_REGISTRO As String
+ Public Property NOMBRE_CURSO As String
+ Public Property CENTRO As String
+ Public Property FECHA_EXPEDICION As Date?
+ Public Property DURACION As Double?
+ Public Property IDPERSONA As Integer?
+ Public Property FECHA_INSCRIPCION_PROVISIONAL As Date?
+ Public Property FECHA_INSCRIPCION_DEFINITIVA As Date?
+ Public Property APROVECHAMIENTO As Boolean
+ Public Property APTOCPH As Boolean
+ Public Property OFICIAL As Boolean
+ Public Property RUTA As String
+ Public Property NIF As String
+ Public Property IDCURSO As Integer?
+ Public Property NOTA As Decimal?
+ Public Property OBSERVACIONES As String
+ Public Overridable Property IDPERSONANavigation As PERSONAS
+ End Class
+
+ Partial Public Class COMPLEMENTOSCARRERA
+ Public Property IDCOMCARR As Integer
+ Public Property IDPERSONA As Integer?
+ Public Property FECHAINICIO As Date?
+ Public Property IDGRUPO As Integer?
+ Public Property CANTIDAD As Decimal?
+ Public Property IDTRAMO As Integer?
+ Public Property FECHAFIN As Date?
+ Public Overridable Property IDGRUPONavigation As GRUPO
+ Public Overridable Property IDPERSONANavigation As PERSONAS
+ Public Overridable Property IDTRAMONavigation As ENUMERACIONES
+ End Class
+ Partial Public Class TITULACIONES
+ Public Property IDTITULACION As Integer
+ Public Property IDPERSONA As Integer?
+ Public Property NUM_REGISTRO As String
+ Public Property DESCRIPCION As String
+ Public Property CENTRO As String
+ Public Property FECHA_EXPEDICION As Date?
+ Public Property FECHA_INSCRIPCION_PROVISIONAL As Date?
+ Public Property FECHA_INSCRIPCION_DEFINITIVA As Date?
+ Public Property RUTA As String
+ Public Overridable Property IDPERSONANavigation As PERSONAS
+ End Class
+ Partial Public Class TRIENIOS
+ Public Property IDTRIENIO As Integer
+ Public Property IDPERSONAL As Integer?
+ Public Property GRUPO As String
+ Public Property TOA As Integer?
+ Public Property TC As Integer?
+ Public Property IDGRUPO As Integer?
+ Public Overridable Property IDGRUPONavigation As GRUPO
+ Public Overridable Property IDPERSONALNavigation As PERSONAS
+ End Class
+
+ Partial Public Class VIDA_ADMINISTRATIVA
+ Public Property IDVIDA As Integer
+ Public Property IDPERSONAL As Integer?
+ Public Property NUM_REG As Integer?
+ Public Property IDMOTIVO As Integer?
+ Public Property FECHA As Date?
+ Public Property NRP As String
+ Public Property IDPUESTO As Integer?
+ Public Property DENOMINACION_OLD As String
+ Public Property NIVEL_OLD As Integer?
+ Public Property OCUPACION_OLD As Integer?
+ Public Property GRUPOT As Integer?
+ Public Property NTRIENIO As Integer?
+ Public Property NIVELC As Integer?
+ Public Property TITULO As String
+ Public Property CENTRO As String
+ Public Property FECHAT As Date?
+ Public Property OBSERVACIONES As String
+ Public Property FECHARESOLUCION As Date?
+ Public Property IDTRAMOCARRERAHORIZONTAL As Integer?
+ Public Property IDTIPOPERSONAL As Integer?
+ Public Property IDSERVICIOADSCRITO As Integer?
+ Public Property IDSUBUNIDADADMINISTRATIVA As Integer?
+ Public Property IDUNIDADADMINISTRATIVA As Integer?
+ Public Property TIENELINEAS As Boolean
+ Public Overridable Property GRUPOTNavigation As GRUPO
+ Public Overridable Property IDMOTIVONavigation As MOTIVOS_ADMINISTRATIVOS
+ 'Public Overridable Property IDPERSONALNavigation As PERSONAS?
+ Public Overridable Property IDPUESTONavigation As PUESTOS
+ Public Overridable Property IDSERVICIOADSCRITONavigation As SERVICIOS
+ Public Overridable Property IDSUBUNIDADADMINISTRATIVANavigation As SUBUNIDADADMINISTRATIVA
+ Public Overridable Property IDTIPOPERSONALNavigation As TIPOS_PERSONAL
+ Public Overridable Property IDTRAMOCARRERAHORIZONTALNavigation As ENUMERACIONES
+ Public Overridable Property IDUNIDADADMINISTRATIVANavigation As UNIDADADMINISTRATIVA
+ Public Overridable Property LINEASVIDAADMINISTRATIVA As ICollection(Of LINEASVIDAADMINISTRATIVA) = New List(Of LINEASVIDAADMINISTRATIVA)()
+ Public Overridable Property NIVELCNavigation As NIVEL
+ Public Overridable Property NIVEL_OLDNavigation As NIVEL
+ Public Overridable Property OCUPACION_OLDNavigation As OCUPACION
+ End Class
+ Partial Public Class LINEASVIDAADMINISTRATIVA
+ Public Property IDLINEAVIDAADMIN As Integer
+ Public Property IDVIDAADMIN As Integer?
+ Public Property DESCRIPCION As String
+ Public Property FECHASUBIDA As Date?
+ Public Property IDLINEAANTERIOR As Integer?
+ Public Property IDTIPO As Integer?
+ Public Property RUTA As String
+ Public Property SOBREESCRITO As Boolean
+ Public Overridable Property IDLINEAANTERIORNavigation As LINEASVIDAADMINISTRATIVA
+ Public Overridable Property IDTIPONavigation As ENUMERACIONES
+ Public Overridable Property IDVIDAADMINNavigation As VIDA_ADMINISTRATIVA
+ Public Overridable Property InverseIDLINEAANTERIORNavigation As ICollection(Of LINEASVIDAADMINISTRATIVA) = New List(Of LINEASVIDAADMINISTRATIVA)()
+ End Class
+
+ Partial Public Class OCUPACION
+ Public Property IDOCUPACION As Integer
+ Public Property OCUPACION1 As String
+ Public Property DESCRIPCION As String
+ Public Property OCU_RES As String
+ Public Property ACTIVO As Boolean
+ Public Property DESCRIPCION_ANEXO As String
+ Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+
+ Partial Public Class SUBUNIDADADMINISTRATIVA
+ Public Property IDSUBUNIDADADMINISTRATIVA As Integer
+ Public Property IDUNIDADADMINISTRATIVA As Integer?
+ Public Property NOMBRE As String
+ Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ Public Overridable Property RPT_DESCRIP As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+
+ Partial Public Class GRUPO
+ Public Property IDGRUPO As Integer
+ Public Property GRUPO1 As String
+ Public Property DESCRIPCION As String
+ Public Property ACTIVO As Boolean
+ Public Property IMPORTE_G As Integer?
+ Public Property IMPORTE_TRI_TOA As Integer?
+ Public Property IMPORTE_TRI_TC As Integer?
+ Public Property IMPORTE_TRI_TCE As Integer?
+ Public Property IMPORTE_G_EXTRAS As Integer?
+ Public Property IMPORTE_TRI_TOAE As Integer?
+ 'Public Overridable Property COMPLEMENTOSCARRERA As ICollection(Of COMPLEMENTOSCARRERA) = New List(Of COMPLEMENTOSCARRERA)()
+ 'Public Overridable Property CUERPO As ICollection(Of CUERPO) = New List(Of CUERPO)()
+ 'Public Overridable Property RPT_DESCRIPGRUPO1Navigation As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ 'Public Overridable Property RPT_DESCRIPGRUPO2Navigation As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ 'Public Overridable Property TRIENIOS As ICollection(Of TRIENIOS) = New List(Of TRIENIOS)()
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class MOTIVOS_ADMINISTRATIVOS
+ Public Property IDMOTIVO As Integer
+ Public Property MOTIVO As String
+ Public Property DESCRIPCION As String
+ Public Property ACTIVO As String
+ Public Property TIPO As String
+ Public Property IDTIPOAPTOS As Integer?
+ Public Property ACTIVOB As Boolean
+ 'Public Overridable Property ACTOSADMINPREP As ICollection(Of ACTOSADMINPREP) = New List(Of ACTOSADMINPREP)()
+ Public Overridable Property IDTIPOAPTOSNavigation As TIPOAPTOSADMINISTRATIVOS
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class UNIDADADMINISTRATIVA
+ Public Property IDUNIDADADMINISTRATIVA As Integer
+ Public Property CLAVE_DEPARTAMENTO As String
+ Public Property LITERAL_DEPARTAMENTO As String
+ Public Property ACTIVO_DEPARTAMENTO As Boolean
+ Public Property ORDEN As Decimal?
+ Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ Public Overridable Property RPT_DESCRIP As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+
+ Partial Public Class PUESTOS
+ Public Property IDPUESTO As Integer
+ Public Property IDRPT As Integer?
+ Public Property IDRPTDES As Integer?
+ Public Property CODIGO As String
+ Public Property ESTADO As String
+ Public Property DOTACION As String
+ Public Property IDPERSONAL As Integer?
+ Public Property IDOCUPACION As Integer?
+ Public Property TITULAR As Integer?
+ Public Property IDDOTACION As Integer
+ Public Property ORDEN As Integer?
+ Public Property IDSERVICIOADSCRITO As Integer?
+ Public Property IDSUBUNIDADADMINISTRATIVA As Integer?
+ Public Property IDUNIDADADMINISTRATIVA As Integer?
+ Public Property DESPUESCOM As String
+ 'Public Overridable Property IDOCUPACIONNavigation As OCUPACION?
+ 'Public Overridable Property IDPERSONALNavigation As PERSONAS?
+ Public Overridable Property IDRPTDESNavigation As RPT_DESCRIP
+ 'Public Overridable Property IDRPTNavigation As RPT?
+ 'Public Overridable Property IDSERVICIOADSCRITONavigation As SERVICIOS?
+ 'Public Overridable Property IDSUBUNIDADADMINISTRATIVANavigation As SUBUNIDADADMINISTRATIVA?
+ 'Public Overridable Property IDUNIDADADMINISTRATIVANavigation As UNIDADADMINISTRATIVA?
+ 'Public Overridable Property TITULARNavigation As PERSONAS?
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class RPT_DESCRIP
+ Public Property IDRPTDES As Integer
+ Public Property IDRPT As Integer?
+ Public Property DENOMINACION As String
+ Public Property ADSCRIPCION As Integer?
+ Public Property GRUPO1 As Integer?
+ Public Property CUERPO1 As Integer?
+ Public Property IDNIVEL_RPT As Integer?
+ Public Property PROVISION As Integer?
+ Public Property CARACTERISTICAS As String
+ Public Property REQUISITOS As String
+ Public Property PLAZAS As Integer?
+ Public Property CODIGO As String
+ Public Property ESPECIFICO As Decimal?
+ Public Property GRUPO2 As Integer?
+ Public Property CUERPO2 As Integer?
+ Public Property EXPERIENCIA As String
+ Public Property TITULO_ESPECIF As String
+ Public Property IDUNIDADADMINISTRATIVA As Integer?
+ Public Property ORDEN As Integer?
+ Public Property GRUPOC As String
+ Public Property VIRTUAL As Boolean
+ Public Property OBSERVACIONES As String
+ Public Property IDSUBUNIDADADMINISTRATIVA As Integer?
+ Public Property IDTIPOVIRTUAL As Integer?
+ Public Property DEPARTAMENTO As String
+ Public Property VIRTUALAC As Boolean
+ Public Property VIRTUALAC2 As Boolean
+ Public Property VIRTUALOTRO As Boolean
+ Public Property IDDEPARTAMENTO As Integer?
+ 'Public Overridable Property ADSCRIPCIONNavigation As ADSCRIPCION?
+ 'Public Overridable Property CUERPO1Navigation As CUERPO?
+ 'Public Overridable Property CUERPO2Navigation As CUERPO?
+ 'Public Overridable Property GRUPO1Navigation As GRUPO
+ 'Public Overridable Property GRUPO2Navigation As GRUPO
+ Public Overridable Property IDDEPARTAMENTONavigation As ENUMERACIONES
+ 'Public Overridable Property IDNIVEL_RPTNavigation As NIVEL?
+ 'Public Overridable Property IDRPTNavigation As RPT?
+ 'Public Overridable Property IDSUBUNIDADADMINISTRATIVANavigation As SUBUNIDADADMINISTRATIVA?
+ 'Public Overridable Property IDTIPOVIRTUALNavigation As ENUMERACIONES?
+ 'Public Overridable Property IDUNIDADADMINISTRATIVANavigation As UNIDADADMINISTRATIVA?
+ 'Public Overridable Property PROVISIONNavigation As PROVISION?
+ 'Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ End Class
+ Partial Public Class TIPOAPTOSADMINISTRATIVOS
+ Public Property IDTIPO As Integer
+ Public Property DESCRIPCION As String
+ Public Property ACTIVO As Boolean
+ Public Property CORREO As String
+ 'Public Overridable Property MOTIVOS_ADMINISTRATIVOS As ICollection(Of MOTIVOS_ADMINISTRATIVOS) = New List(Of MOTIVOS_ADMINISTRATIVOS)()
+ End Class
+ Partial Public Class ENUMERACIONES
+ Public Property IDENUMERACION As Integer
+ Public Property IDGRUPOENUMERACION As Integer
+ Public Property CODIGO As String
+ Public Property DESCRIPCION As String
+ Public Property VALORALFABETICO1 As String
+ Public Property VALORALFABETICO2 As String
+ Public Property VALORNUMERICO1 As Decimal?
+ Public Property VALORNUMERICO2 As Decimal?
+ Public Property ORDEN As Integer?
+ Public Property OCULTO As Boolean
+ Public Property VALORALFABETICO3 As String
+ Public Property VALORALFABETICO4 As String
+ Public Property VALORALFABETICOLARGO As String
+ Public Property VALORNUMERICO3 As Decimal?
+ Public Property VALORNUMERICO4 As Decimal?
+ 'Public Overridable Property ASCENDIENTES As ICollection(Of ASCENDIENTES) = New List(Of ASCENDIENTES)()
+ 'Public Overridable Property ASCENDIENTESHISTORICOIRPF As ICollection(Of ASCENDIENTESHISTORICOIRPF) = New List(Of ASCENDIENTESHISTORICOIRPF)()
+ 'Public Overridable Property ASISTENCIAS As ICollection(Of ASISTENCIAS) = New List(Of ASISTENCIAS)()
+ 'Public Overridable Property COMPLEMENTOSCARRERA As ICollection(Of COMPLEMENTOSCARRERA) = New List(Of COMPLEMENTOSCARRERA)()
+ 'Public Overridable Property CUENTASCOTIZACIONPATRONAL As ICollection(Of CUENTASCOTIZACIONPATRONAL) = New List(Of CUENTASCOTIZACIONPATRONAL)()
+ 'Public Overridable Property CURSOS As ICollection(Of CURSOS) = New List(Of CURSOS)()
+ 'Public Overridable Property DEVENGOSIDCLAVENavigation As ICollection(Of DEVENGOS) = New List(Of DEVENGOS)()
+ 'Public Overridable Property DEVENGOSIDCONTRATOORELACIONNavigation As ICollection(Of DEVENGOS) = New List(Of DEVENGOS)()
+ 'Public Overridable Property DEVENGOSIDDISCAPACIDADNavigation As ICollection(Of DEVENGOS) = New List(Of DEVENGOS)()
+ 'Public Overridable Property DEVENGOSIDSITUACIONFAMILIARNavigation As ICollection(Of DEVENGOS) = New List(Of DEVENGOS)()
+ 'Public Overridable Property DEVENGOSIDSUBCLAVENavigation As ICollection(Of DEVENGOS) = New List(Of DEVENGOS)()
+ 'Public Overridable Property ENFERMEDADES As ICollection(Of ENFERMEDADES) = New List(Of ENFERMEDADES)()
+ 'Public Overridable Property ENLACES As ICollection(Of ENLACES) = New List(Of ENLACES)()
+ 'Public Overridable Property EXCEPCIONESPERMISOS As ICollection(Of EXCEPCIONESPERMISOS) = New List(Of EXCEPCIONESPERMISOS)()
+ 'Public Overridable Property EXPEDIENTESPERSONAS As ICollection(Of EXPEDIENTESPERSONAS) = New List(Of EXPEDIENTESPERSONAS)()
+ 'Public Overridable Property FAMILIAIDDISCAPACIDADNavigation As ICollection(Of FAMILIA) = New List(Of FAMILIA)()
+ 'Public Overridable Property FAMILIAIDPARENTESCONavigation As ICollection(Of FAMILIA) = New List(Of FAMILIA)()
+ 'Public Overridable Property FICHEROS As ICollection(Of FICHEROS) = New List(Of FICHEROS)(
+ 'Public Overridable Property FORMACIONIMPARTIDA As ICollection(Of FORMACIONIMPARTIDA) = New List(Of FORMACIONIMPARTIDA)()
+ 'Public Overridable Property HIJOS As ICollection(Of HIJOS) = New List(Of HIJOS)()
+ 'Public Overridable Property HIJOSHISTORICOIRPF As ICollection(Of HIJOSHISTORICOIRPF) = New List(Of HIJOSHISTORICOIRPF)()
+ 'Public Overridable Property HISTORICOIRPF As ICollection(Of HISTORICOIRPF) = New List(Of HISTORICOIRPF)()
+ 'Public Overridable Property HORARIOSPERSONASIDTARDEOBLIGATORIANavigation As ICollection(Of HORARIOSPERSONAS) = New List(Of HORARIOSPERSONAS)()
+ 'Public Overridable Property HORARIOSPERSONASIDTURNONavigation As ICollection(Of HORARIOSPERSONAS) = New List(Of HORARIOSPERSONAS)()
+ 'Public Overridable Property HORASMES As ICollection(Of HORASMES) = New List(Of HORASMES)()
+ 'Public Overridable Property IDGRUPOENUMERACIONNavigation As GRUPOSENUMERACIONES?
+ 'Public Overridable Property IDIOMASIDNIVELNavigation As ICollection(Of IDIOMAS) = New List(Of IDIOMAS)()
+ 'Public Overridable Property IDIOMASIDTIPOIDIOMANavigation As ICollection(Of IDIOMAS) = New List(Of IDIOMAS)()
+ 'Public Overridable Property INCIDENCIASCONTROLHORARIOIDADJUNTONavigation As ICollection(Of INCIDENCIASCONTROLHORARIO) = New List(Of INCIDENCIASCONTROLHORARIO)()
+ 'Public Overridable Property INCIDENCIASCONTROLHORARIOIDGRUPONavigation As ICollection(Of INCIDENCIASCONTROLHORARIO) = New List(Of INCIDENCIASCONTROLHORARIO)()
+ 'Public Overridable Property INCIDENCIASCONTROLHORARIOIDTIPONavigation As ICollection(Of INCIDENCIASCONTROLHORARIO) = New List(Of INCIDENCIASCONTROLHORARIO)()
+ 'Public Overridable Property LINEASVIDAADMINISTRATIVA As ICollection(Of LINEASVIDAADMINISTRATIVA) = New List(Of LINEASVIDAADMINISTRATIVA)()
+ 'Public Overridable Property NOMINASIDSITUACIONNOMINANavigation As ICollection(Of Nominas) = New List(Of Nominas)()
+ 'Public Overridable Property NOMINASIDTIPONavigation As ICollection(Of Nominas) = New List(Of Nominas)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDGRUPOFUNCIONARIONavigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDMUTUA2Navigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDMUTUANavigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDSINDICATO1Navigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDSINDICATO2Navigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERAIDTIPOPERSONANavigation As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property PERIODOSSILTRAIDESTADONavigation As ICollection(Of PERIODOSSILTRA) = New List(Of PERIODOSSILTRA)()
+ 'Public Overridable Property PERIODOSSILTRAIDTIPOLIQUIDACIONNavigation As ICollection(Of PERIODOSSILTRA) = New List(Of PERIODOSSILTRA)()
+ 'Public Overridable Property PERIODOSSILTRAIDTIPOPERIODOTRAMONavigation As ICollection(Of PERIODOSSILTRA) = New List(Of PERIODOSSILTRA)()
+ 'Public Overridable Property PERSONASIDCAUSAALTAPARNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDCAUSABAJAPARNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDCAUSADEBAJANavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDDEPARTAMENTONavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDDISCAPACIDADNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDESCALANavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDESPECIALIDADNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDGRUPOFUNCIONARIONavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDMUTUA2Navigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDMUTUANavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDOCUPACIONNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDSEXONavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDSITUACIONENRPTNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDSITUACIONFAMILIARNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDSITUACIONLABORALNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDTIPOEMPLEADORPTNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PERSONASIDTIPONavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property PLANTILLASIDGRUPONavigation As ICollection(Of PLANTILLAS) = New List(Of PLANTILLAS)()
+ 'Public Overridable Property PLANTILLASIDTIPONavigation As ICollection(Of PLANTILLAS) = New List(Of PLANTILLAS)()
+ 'Public Overridable Property PROCESOSIDSUBTIPONavigation As ICollection(Of PROCESOS) = New List(Of PROCESOS)()
+ 'Public Overridable Property PROCESOSIDTIPONavigation As ICollection(Of PROCESOS) = New List(Of PROCESOS)()
+ 'Public Overridable Property PUESTOSTRABAJOIDGRUPOFUNCIONARIONavigation As ICollection(Of PUESTOSTRABAJO) = New List(Of PUESTOSTRABAJO)()
+ 'Public Overridable Property PUESTOSTRABAJOIDTIPONavigation As ICollection(Of PUESTOSTRABAJO) = New List(Of PUESTOSTRABAJO)()
+ 'Public Overridable Property ROLESDEPARTAMENTOSCH As ICollection(Of ROLESDEPARTAMENTOSCH) = New List(Of ROLESDEPARTAMENTOSCH)()
+ 'Public Overridable Property RPT As ICollection(Of RPT) = New List(Of RPT)()
+ 'Public Overridable Property RPT_DESCRIPIDDEPARTAMENTONavigation As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ 'Public Overridable Property RPT_DESCRIPIDTIPOVIRTUALNavigation As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ 'Public Overridable Property SALAS As ICollection(Of SALAS) = New List(Of SALAS)()
+ 'Public Overridable Property SESIONESIDTIPONavigation As ICollection(Of SESIONES) = New List(Of SESIONES)()
+ 'Public Overridable Property SESIONESIDTURNONavigation As ICollection(Of SESIONES) = New List(Of SESIONES)()
+ 'Public Overridable Property SITUACIONACTUALIRPFIDCONTRATOORELACIONNavigation As ICollection(Of SITUACIONACTUALIRPF) = New List(Of SITUACIONACTUALIRPF)()
+ 'Public Overridable Property SITUACIONACTUALIRPFIDDISCAPACIDADNavigation As ICollection(Of SITUACIONACTUALIRPF) = New List(Of SITUACIONACTUALIRPF)()
+ 'Public Overridable Property SITUACIONACTUALIRPFIDSITUACIONFAMILIARNavigation As ICollection(Of SITUACIONACTUALIRPF) = New List(Of SITUACIONACTUALIRPF)()
+ 'Public Overridable Property SITUACIONACTUALIRPFIDSITUACIONLABORALNavigation As ICollection(Of SITUACIONACTUALIRPF) = New List(Of SITUACIONACTUALIRPF)()
+ 'Public Overridable Property TIPOSPUESTOSTRABAJOIDGRUPOFUNCIONARIONavigation As ICollection(Of TIPOSPUESTOSTRABAJO) = New List(Of TIPOSPUESTOSTRABAJO)()
+ 'Public Overridable Property TIPOSPUESTOSTRABAJOIDTIPOPERSONANavigation As ICollection(Of TIPOSPUESTOSTRABAJO) = New List(Of TIPOSPUESTOSTRABAJO)()
+ 'Public Overridable Property TIPOSSESIONES As ICollection(Of TIPOSSESIONES) = New List(Of TIPOSSESIONES)()
+ 'Public Overridable Property TIPOSTRAMOSIDREGIMENAPLICACIONNavigation As ICollection(Of TIPOSTRAMOS) = New List(Of TIPOSTRAMOS)()
+ 'Public Overridable Property TIPOSTRAMOSIDTIPOTRAMOFICHEROXMLNavigation As ICollection(Of TIPOSTRAMOS) = New List(Of TIPOSTRAMOS)()
+ 'Public Overridable Property TURNOSTEMPORALES As ICollection(Of TURNOSTEMPORALES) = New List(Of TURNOSTEMPORALES)()
+ 'Public Overridable Property VALIDACIONDOCUMENTOS As ICollection(Of VALIDACIONDOCUMENTOS) = New List(Of VALIDACIONDOCUMENTOS)()
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class TIPOS_PERSONAL
+ Public Property IDTIPO As Integer
+ Public Property TIPO_PERSONAL As String
+ Public Property DESCRIPCION As String
+ 'Public Overridable Property PERSONAS As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class IDIOMAS
+ Public Property IDIDIOMA As Integer
+ Public Property IDTIPOIDIOMA As Integer?
+ Public Property IDNIVEL As Integer?
+ Public Property CENTROEXPEDICION As String
+ Public Property ANNO As Integer?
+ Public Property IDPERSONA As Integer?
+ Public Overridable Property IDNIVELNavigation As ENUMERACIONES
+ Public Overridable Property IDPERSONANavigation As PERSONAS
+ Public Overridable Property IDTIPOIDIOMANavigation As ENUMERACIONES
+ End Class
+
+ Partial Public Class SERVICIOS
+ Public Property IDSERVICIO As Integer
+ Public Property DESCRIPCION As String
+ Public Property ORDEN As Integer
+ Public Property ACTIVO As Boolean
+ 'Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ 'Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class NIVEL
+ Public Property IDNIVEL As Integer
+ Public Property NIVEL1 As String
+ Public Property DESCRIPCION As String
+ Public Property ACTIVO As Boolean
+ Public Property IMPORTE_N As Integer?
+ Public Property ALTO_CARGO As Boolean
+ Public Overridable Property COMPLEMENTONIVEL As ICollection(Of COMPLEMENTONIVEL) = New List(Of COMPLEMENTONIVEL)()
+ Public Overridable Property CONSOLIDACION_GRADO As ICollection(Of CONSOLIDACION_GRADO) = New List(Of CONSOLIDACION_GRADO)()
+ Public Overridable Property PERSONASIDGRADOPERSONALCONSOLIDADONavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ Public Overridable Property PERSONASIDNIVELRPTNavigation As ICollection(Of PERSONAS) = New List(Of PERSONAS)()
+ Public Overridable Property RPT_DESCRIP As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ Public Overridable Property VIDA_ADMINISTRATIVANIVELCNavigation As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ Public Overridable Property VIDA_ADMINISTRATIVANIVEL_OLDNavigation As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class COMPLEMENTONIVEL
+ Public Property IDCOMPLEMENTONIVEL As Integer
+ Public Property IMPORTEANUAL As Decimal?
+ Public Property IMPORTEMENSUAL As Decimal?
+ Public Property IDNIVEL As Integer?
+ Public Property IDRPT As Integer?
+ Public Overridable Property IDNIVELNavigation As NIVEL
+ Public Overridable Property IDRPTNavigation As RPT
+ End Class
+ Partial Public Class RPT
+ Public Property IDRPT As Integer
+ Public Property DESCRIPCION As String
+ Public Property EJERCICIO As Integer?
+ Public Property F_PLENO As Date?
+ Public Property F_PARLAMENTO As Date?
+ Public Property IDSITUACION As Integer?
+ Public Property FECHAINICIO As Date?
+ Public Property FECHAFIN As Date?
+ Public Property NOTAS As String
+ Public Overridable Property COMPLEMENTONIVEL As ICollection(Of COMPLEMENTONIVEL) = New List(Of COMPLEMENTONIVEL)()
+ Public Overridable Property IDSITUACIONNavigation As ENUMERACIONES
+ Public Overridable Property PUESTOS As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ Public Overridable Property RETRIBUCIONBASICA As ICollection(Of RETRIBUCIONBASICA) = New List(Of RETRIBUCIONBASICA)()
+ Public Overridable Property RPT_DESCRIP As ICollection(Of RPT_DESCRIP) = New List(Of RPT_DESCRIP)()
+ End Class
+ Partial Public Class CONSOLIDACION_GRADO
+ Public Property IDCUMPGRADO As Integer
+ Public Property IDPERSONAL As Integer?
+ Public Property NIVEL As Integer?
+ Public Property FECHA_EFECTO As Date?
+ Public Property FECHA_RESOLUCION As Date?
+ Public Property FECHA_COMUNICACION As Date?
+ Public Property IDNIVEL As Integer?
+ Public Overridable Property IDNIVELNavigation As NIVEL
+ Public Overridable Property IDPERSONALNavigation As PERSONAS
+ End Class
+ Partial Public Class PERSONAS
+ Public Property IDPERSONA As Integer
+ Public Property NIF As String
+ Public Property APELLIDOS As String
+ Public Property NOMBRE As String
+ Public Property DOMICILIO As String
+ Public Property CODIGOPOSTAL As String
+ Public Property CEUTAMELILLA As Boolean
+ Public Property CORREOELECTRONICO As String
+ Public Property CUENTABANCARIA As String
+ Public Property IDMUTUA As Integer?
+ Public Property NUMEROAFILIACIONMUTUA As String
+ Public Property FECHANACIMIENTO As Date?
+ Public Property FORMACIONACADEMICA As String
+ Public Property TELEFONO1 As String
+ Public Property TELEFONO2 As String
+ Public Property LUGARNACIMIENTO As String
+ Public Property INGRADMNAUTO As Date?
+ Public Property INGRESOADMINISTRACIONESTADO As Date?
+ Public Property INGRESOADMINISTRACIONLOCAL As Date?
+ Public Property IDSITUACIONFAMILIAR As Integer?
+ Public Property IDSITUACIONLABORAL As Integer?
+ Public Property IDPUESTOTRABAJOOPOSICION As Integer?
+ Public Property CODIGOMUNICIPIO As String
+ Public Property PLURIEMPLEO As Decimal
+ Public Property NUMEROPLURIEMPLEO As String
+ Public Property TRIENIOSADMINISTRACIONA1 As Integer
+ Public Property TRIENIOSADMINISTRACIONA2 As Integer
+ Public Property TRIENIOSADMINISTRACIONC1 As Integer
+ Public Property TRIENIOSADMINISTRACIONC2 As Integer
+ Public Property TRIENIOSADMINISTRACIONE As Integer
+ Public Property TRIENIOSPARLAMENTOA1 As Integer
+ Public Property TRIENIOSPARLAMENTOA2 As Integer
+ Public Property TRIENIOSPARLAMENTOC1 As Integer
+ Public Property TRIENIOSPARLAMENTOC2 As Integer
+ Public Property TRIENIOSPARLAMENTOE As Integer
+ Public Property IMPORTETRIENIOADMINISTRACION As Decimal
+ Public Property FECHACUMPLIMIENTOTRIENIO As Date?
+ Public Property IDSINDICATO1 As Integer?
+ Public Property IDSINDICATO2 As Integer?
+ Public Property CUOTASINDICAL1 As Decimal?
+ Public Property CUOTASINDICAL2 As Decimal?
+ Public Property NUMEROTARJETA As Decimal?
+ Public Property IDTIPO As Integer?
+ Public Property RETENCIONAAPLICAR As Decimal?
+ Public Property NIVEL As String
+ Public Property CODIGO As String
+ Public Property SEGUROACCIDENTE As Decimal
+ Public Property BASESSJUN2010 As Decimal
+ Public Property SEXENIOS As Decimal
+ Public Property DIASENFERMEDAD60 As Decimal
+ Public Property IMPORTEENFERMEDAD60 As Decimal
+ Public Property DIASENFERMEDAD75 As Decimal
+ Public Property IMPORTEENFERMEDAD75 As Decimal
+ Public Property IMPORTEDECUCCIONGRUPO As Decimal
+ Public Property IMPTRIADMPAGAEXTRA As Decimal
+ Public Property TRATAMIENTO As String
+ Public Property IDDISCAPACIDAD As Integer?
+ Public Property PENSIONISTAS As Boolean
+ Public Property IDSITUACIONACTUALIRPF As Integer?
+ Public Property MOVILIDADREDUCIDA As Boolean
+ Public Property AÑOCAMBIORESIDENCIA As Integer
+ Public Property IDFICHEROFOTO As Integer?
+ Public Property NUMEROSEXENIO As Integer
+ Public Property NUMEROQUINQUENIO As Integer
+ Public Property QUINQUENIO As Decimal
+ Public Property FECHAALTA As Date?
+ Public Property FECHABAJA As Date?
+ Public Property BASEANTERIORALABAJA As Decimal?
+ Public Property BASEMESANTERIOR As Decimal?
+ Public Property NOCOTIZADESEMPLEO As Boolean
+ Public Property PUESTOTRABAJOENTARJETA As String
+ Public Property IDSEXO As Integer?
+ Public Property IDCONTRATO As Integer?
+ Public Property IDCUENTACOTIZACIONPATRONAL As Integer?
+ Public Property FECHAALTADIETAS As Date?
+ Public Property FECHABAJADIETAS As Date?
+ Public Property PROFESION As String
+ Public Property EMPRESA As String
+ Public Property CARGOULTIMOPUESTO As String
+ Public Property KILOMETROS As Decimal?
+ Public Property PEAJESAUTOPISTA As Decimal?
+ Public Property PERTENECEAMESA As Boolean
+ Public Property RENUNCIADIETA As Boolean
+ Public Property RENUNCIACESANTIA As Boolean
+ Public Property ESTANCIAYMANUTENCION As Decimal?
+ Public Property CODIGOANTIGUODIPUTADO As String
+ Public Property CUENTABANCARIADIPUTADO As String
+ Public Property CUENTABANCARIAPARTIDO As String
+ Public Property IMPORTEPARTIDO As Decimal?
+ Public Property RENUNCIAKMS As Boolean
+ Public Property IDDEPARTAMENTO As Integer?
+ Public Property FECHABAJASEGURIDADSOCIAL As Date?
+ Public Property IDCAUSADEBAJA As Integer?
+ Public Property PREMIOJUBILACIONMENSUAL As Decimal?
+ Public Property IDOCUPACION As Integer?
+ Public Property IMPORTEULTIMANOMINA As Decimal?
+ Public Property QUINQUENIOEXTRA As Decimal
+ Public Property IDMUTUA2 As Integer?
+ Public Property NUMEROAFILIACIONMUTUA2 As String
+ Public Property TRIENIOSADMINISTRACIONB As Integer
+ Public Property TRIENIOSPARLAMENTOB As Integer
+ Public Property IDGRUPOFUNCIONARIO As Integer?
+ Public Property FECHACUMPLIMIENTOCARRERA As Date?
+ Public Property COMPLEMENTOCARRERAA1 As Integer?
+ Public Property COMPLEMENTOCARRERAB As Integer?
+ Public Property COMPLEMENTOCARRERAC1 As Integer?
+ Public Property COMPLEMENTOCARRERAC2 As Integer?
+ Public Property COMPLEMENTOCARRERAE As Integer?
+ Public Property COMPLEMENTOCARRERAA2 As Integer?
+ Public Property DOMICILIONOTIFICACIONES As String
+ Public Property TELEFONO1NOTIFICACIONES As String
+ Public Property CORREONOTIFICACIONES As String
+ Public Property CODIGOPOSTALNOTIFICACIONES As String
+ Public Property TELEFONO2NOTIFICACIONES As String
+ Public Property CODIGOMUNICIPIONOTIFICACION As String
+ Public Property TRIENIOSADMINISTRACIONA1A As Integer?
+ Public Property TRIENIOSADMINISTRACIONA2A As Integer?
+ Public Property TRIENIOSADMINISTRACIONC1A As Integer?
+ Public Property TRIENIOSADMINISTRACIONC2A As Integer?
+ Public Property TRIENIOSADMINISTRACIONEA As Integer?
+ Public Property IMPORTETRIENIOADMINISTRACIONA As Decimal?
+ Public Property IMPTRIADMPAGAEXTRAA As Decimal?
+ Public Property TRIENIOSADMINISTRACIONBA As Integer?
+ Public Property EXTERNO As Integer?
+ Public Property FECHAALTACONTROLHORARIO As Date?
+ Public Property FECHAALTAPAR As Date?
+ Public Property FECHABAJAPAR As Date?
+ Public Property FECHACONSOLIDACIONGRADO As Date?
+ Public Property FECHACUMPLIMIENTOPROXTRIENIO As Date?
+ Public Property FECHAPOSIBLEJUBILACION As Date?
+ Public Property FECHATARJETA As Date?
+ Public Property FECHATITULACION As Date?
+ Public Property IDADSCRIPCIONRPT As Integer?
+ Public Property IDCAUSAALTAPAR As Integer?
+ Public Property IDCAUSABAJAPAR As Integer?
+ Public Property IDCUERPORPT As Integer?
+ Public Property IDGRADOPERSONALCONSOLIDADO As Integer?
+ Public Property IDNIVELRPT As Integer?
+ Public Property IDSITUACIONADMINISTRATIVARPT As Integer?
+ Public Property IDSITUACIONENRPT As Integer?
+ Public Property IDTIPOEMPLEADORPT As Integer?
+ Public Property NRP As String
+ Public Property NRP_OLD As String
+ Public Property TITULACIONOFICIAL As String
+ Public Property SUPERVISORDETODO As Boolean
+ Public Property SUPERVISORDEPARTAMENTO As Boolean
+ Public Property DELEGADO As Boolean
+ Public Property ADMINISTRADORCONTROLHORARIO As Boolean
+ Public Property ADMINISTRADORTOTAL As Boolean
+ Public Property ADMINISTRARPTYREGISTRO As Boolean
+ Public Property DELEGADOINFORMES As Boolean
+ Public Property IDESCALA As Integer?
+ Public Property IDESPECIALIDAD As Integer?
+ Public Property MAXHENEGATIVASPERMITIDAS_D As Decimal?
+ Public Property NUMEROREINTENTOSFALLIDOS As Integer?
+ Public Property PERMITESALDONEGATIVOHE As Boolean
+ 'Public Overridable Property ACTOSADMINPREP As ICollection(Of ACTOSADMINPREP) = New List(Of ACTOSADMINPREP)()
+ 'Public Overridable Property ASCENDIENTES As ICollection(Of ASCENDIENTES) = New List(Of ASCENDIENTES)()
+ 'Public Overridable Property ASIGNACIONTEMPORALCOBRADA As ICollection(Of ASIGNACIONTEMPORALCOBRADA) = New List(Of ASIGNACIONTEMPORALCOBRADA)()
+ 'Public Overridable Property ASISTENCIAS As ICollection(Of ASISTENCIAS) = New List(Of ASISTENCIAS)()
+ 'Public Overridable Property ASISTENCIASSESIONES As ICollection(Of ASISTENCIASSESIONES) = New List(Of ASISTENCIASSESIONES)()
+ 'Public Overridable Property CODIGOMUNICIPIONOTIFICACIONNavigation As MUNICIPIOS?
+ 'Public Overridable Property CODIGOMUNICIPIONavigation As MUNICIPIOS?
+ 'Public Overridable Property COMPLEMENTOSCARRERA As ICollection(Of COMPLEMENTOSCARRERA) = New List(Of COMPLEMENTOSCARRERA)()
+ 'Public Overridable Property CONSOLIDACION_GRADO As ICollection(Of CONSOLIDACION_GRADO) = New List(Of CONSOLIDACION_GRADO)()
+ 'Public Overridable Property CORREOS As ICollection(Of CORREOS) = New List(Of CORREOS)()
+ 'Public Overridable Property DEDUCCIONESRETENCIONESJUDICI As ICollection(Of DEDUCCIONESRETENCIONESJUDICI) = New List(Of DEDUCCIONESRETENCIONESJUDICI)()
+ 'Public Overridable Property DIASACOMPENSARPERSONAS As ICollection(Of DIASACOMPENSARPERSONAS) = New List(Of DIASACOMPENSARPERSONAS)()
+ 'Public Overridable Property DIFERENCIAPAGODELEGADO As ICollection(Of DIFERENCIAPAGODELEGADO) = New List(Of DIFERENCIAPAGODELEGADO)()
+ 'Public Overridable Property DIFERENCIATRIENIOS As ICollection(Of DIFERENCIATRIENIOS) = New List(Of DIFERENCIATRIENIOS)()
+ 'Public Overridable Property DIPUTADOS As ICollection(Of DIPUTADOS) = New List(Of DIPUTADOS)()
+ 'Public Overridable Property ENFERMEDADES As ICollection(Of ENFERMEDADES) = New List(Of ENFERMEDADES)()
+ 'Public Overridable Property EXCEPCIONESPERMISOSIDPERSONANavigation As ICollection(Of EXCEPCIONESPERMISOS) = New List(Of EXCEPCIONESPERMISOS)()
+ 'Public Overridable Property EXCEPCIONESPERMISOSIDPERSONAPERMISONavigation As ICollection(Of EXCEPCIONESPERMISOS) = New List(Of EXCEPCIONESPERMISOS)()
+ 'Public Overridable Property EXPEDIENTESPERSONAS As ICollection(Of EXPEDIENTESPERSONAS) = New List(Of EXPEDIENTESPERSONAS)()
+ 'Public Overridable Property FAMILIA As ICollection(Of FAMILIA) = New List(Of FAMILIA)()
+ 'Public Overridable Property FORMACION As ICollection(Of FORMACION) = New List(Of FORMACION)()
+ 'Public Overridable Property HIJOS As ICollection(Of HIJOS) = New List(Of HIJOS)()
+ 'Public Overridable Property HISTORICOIRPF As ICollection(Of HISTORICOIRPF) = New List(Of HISTORICOIRPF)()
+ 'Public Overridable Property HORARIOSPERSONAS As ICollection(Of HORARIOSPERSONAS) = New List(Of HORARIOSPERSONAS)()
+ 'Public Overridable Property HORASEXTRAS As ICollection(Of HORASEXTRAS) = New List(Of HORASEXTRAS)()
+ 'Public Overridable Property HORASMES As ICollection(Of HORASMES) = New List(Of HORASMES)()
+ 'Public Overridable Property HUELGAS As ICollection(Of HUELGAS) = New List(Of HUELGAS)()
+ Public Overridable Property IDADSCRIPCIONRPTNavigation As TIPOS_PERSONAL
+ Public Overridable Property IDCAUSAALTAPARNavigation As ENUMERACIONES
+ Public Overridable Property IDCAUSABAJAPARNavigation As ENUMERACIONES
+ Public Overridable Property IDCAUSADEBAJANavigation As ENUMERACIONES
+ 'Public Overridable Property IDCONTRATONavigation As CONTRATOS?
+ 'Public Overridable Property IDCUENTACOTIZACIONPATRONALNavigation As CUENTASCOTIZACIONPATRONAL?
+ 'Public Overridable Property IDCUERPORPTNavigation As CUERPO?
+ Public Overridable Property IDDEPARTAMENTONavigation As ENUMERACIONES
+ Public Overridable Property IDDISCAPACIDADNavigation As ENUMERACIONES
+ Public Overridable Property IDESCALANavigation As ENUMERACIONES
+ Public Overridable Property IDESPECIALIDADNavigation As ENUMERACIONES
+ 'Public Overridable Property IDFICHEROFOTONavigation As FICHEROS?
+ Public Overridable Property IDGRADOPERSONALCONSOLIDADONavigation As NIVEL
+ Public Overridable Property IDGRUPOFUNCIONARIONavigation As ENUMERACIONES
+
+ 'Public Overridable Property IDIOMAS As ICollection(Of IDIOMAS) = New List(Of IDIOMAS)()
+ Public Overridable Property IDMUTUA2Navigation As ENUMERACIONES
+ Public Overridable Property IDMUTUANavigation As ENUMERACIONES
+ Public Overridable Property IDNIVELRPTNavigation As NIVEL
+ Public Overridable Property IDOCUPACIONNavigation As ENUMERACIONES
+ 'Public Overridable Property IDPUESTOTRABAJOOPOSICIONNavigation As TIPOSPUESTOSTRABAJO?
+ Public Overridable Property IDSEXONavigation As ENUMERACIONES
+ 'Public Overridable Property IDSITUACIONACTUALIRPFNavigation As SITUACIONACTUALIRPF?
+ 'Public Overridable Property IDSITUACIONADMINISTRATIVARPTNavigation As SITUACION
+ Public Overridable Property IDSITUACIONENRPTNavigation As ENUMERACIONES
+ Public Overridable Property IDSITUACIONFAMILIARNavigation As ENUMERACIONES
+ Public Overridable Property IDSITUACIONLABORALNavigation As ENUMERACIONES
+ Public Overridable Property IDTIPOEMPLEADORPTNavigation As ENUMERACIONES
+ Public Overridable Property IDTIPONavigation As ENUMERACIONES
+
+ 'Public Overridable Property INCIDENCIAS As ICollection(Of INCIDENCIAS) = New List(Of INCIDENCIAS)()
+ 'Public Overridable Property MAPEOSUSUARIOS As ICollection(Of MAPEOSUSUARIOS) = New List(Of MAPEOSUSUARIOS)()
+ 'Public Overridable Property MATERNIDADES As ICollection(Of MATERNIDADES) = New List(Of MATERNIDADES)()
+ 'Public Overridable Property NOMINATRABAJADORCABECERA As ICollection(Of NOMINATRABAJADORCABECERA) = New List(Of NOMINATRABAJADORCABECERA)()
+ 'Public Overridable Property OTRASRETRIBUCIONES As ICollection(Of OTRASRETRIBUCIONES) = New List(Of OTRASRETRIBUCIONES)()
+ 'Public Overridable Property PERMISOSSINRETRIBUCION As ICollection(Of PERMISOSSINRETRIBUCION) = New List(Of PERMISOSSINRETRIBUCION)()
+ 'Public Overridable Property PERSONASLEGISLATURAS As ICollection(Of PERSONASLEGISLATURAS) = New List(Of PERSONASLEGISLATURAS)()
+ 'Public Overridable Property PICADAS As ICollection(Of PICADAS) = New List(Of PICADAS)()
+ 'Public Overridable Property PRESTAMOS As ICollection(Of PRESTAMOS) = New List(Of PRESTAMOS)()
+ 'Public Overridable Property PRODUCTIVIDAD As ICollection(Of PRODUCTIVIDAD) = New List(Of PRODUCTIVIDAD)()
+ Public Overridable Property PUESTOSIDPERSONALNavigation As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ Public Overridable Property PUESTOSTITULARNavigation As ICollection(Of PUESTOS) = New List(Of PUESTOS)()
+ 'Public Overridable Property PUESTOSTRABAJO As ICollection(Of PUESTOSTRABAJO) = New List(Of PUESTOSTRABAJO)()
+ 'Public Overridable Property REDUCCIONDEJORNADA As ICollection(Of REDUCCIONDEJORNADA) = New List(Of REDUCCIONDEJORNADA)()
+ 'Public Overridable Property RETENCIONJUDICIAL As ICollection(Of RETENCIONJUDICIAL) = New List(Of RETENCIONJUDICIAL)()
+ 'Public Overridable Property TARJETAS As ICollection(Of TARJETAS) = New List(Of TARJETAS)()
+ 'Public Overridable Property TIPOSDOCACTOSADMINPREP As ICollection(Of TIPOSDOCACTOSADMINPREP) = New List(Of TIPOSDOCACTOSADMINPREP)()
+ 'Public Overridable Property TIPOSSESIONES As ICollection(Of TIPOSSESIONES) = New List(Of TIPOSSESIONES)()
+ 'Public Overridable Property TITULACIONES As ICollection(Of TITULACIONES) = New List(Of TITULACIONES)()
+ 'Public Overridable Property TRABAJADORTIEMPOPARCIAL As ICollection(Of TRABAJADORTIEMPOPARCIAL) = New List(Of TRABAJADORTIEMPOPARCIAL)()
+ 'Public Overridable Property TRIENIOS As ICollection(Of TRIENIOS) = New List(Of TRIENIOS)()
+ 'Public Overridable Property VEHICULOS As ICollection(Of VEHICULOS) = New List(Of VEHICULOS)()
+ Public Overridable Property VIDA_ADMINISTRATIVA As ICollection(Of VIDA_ADMINISTRATIVA) = New List(Of VIDA_ADMINISTRATIVA)()
+ End Class
+ Partial Public Class RETRIBUCIONBASICA
+ Public Property IDRETRIBUCION As Integer
+ Public Property COMCARRA1T1 As Decimal
+ Public Property COMCARRA2T1 As Decimal
+ Public Property COMCARRBT1 As Decimal
+ Public Property COMCARRC1T1 As Decimal
+ Public Property COMCARRC2T1 As Decimal
+ Public Property COMCARRET1 As Decimal
+ Public Property SUELDOA1 As Decimal
+ Public Property SUELDOA1X As Decimal
+ Public Property SUELDOA2 As Decimal
+ Public Property SUELDOA2X As Decimal
+ Public Property SUELDOB As Decimal
+ Public Property SUELDOBX As Decimal
+ Public Property SUELDOC1 As Decimal
+ Public Property SUELDOC1X As Decimal
+ Public Property SUELDOC2 As Decimal
+ Public Property SUELDOC2X As Decimal
+ Public Property SUELDOE As Decimal
+ Public Property SUELDOEX As Decimal
+ Public Property TRIADMA1 As Decimal
+ Public Property TRIADMA1X As Decimal
+ Public Property TRIADMA2 As Decimal
+ Public Property TRIADMA2X As Decimal
+ Public Property TRIADMB As Decimal
+ Public Property TRIADMBX As Decimal
+ Public Property TRIADMC1 As Decimal
+ Public Property TRIADMC1X As Decimal
+ Public Property TRIADMC2 As Decimal
+ Public Property TRIADMC2X As Decimal
+ Public Property TRIADME As Decimal
+ Public Property TRIADMEX As Decimal
+ Public Property TRICAMA1 As Decimal
+ Public Property TRICAMA1X As Decimal
+ Public Property TRICAMA2 As Decimal
+ Public Property TRICAMA2X As Decimal
+ Public Property TRICAMB As Decimal
+ Public Property TRICAMBX As Decimal
+ Public Property TRICAMC1 As Decimal
+ Public Property TRICAMC1X As Decimal
+ Public Property TRICAMC2 As Decimal
+ Public Property TRICAMC2X As Decimal
+ Public Property TRICAME As Decimal
+ Public Property TRICAMEX As Decimal
+ Public Property IDRPT As Integer?
+ Public Property COMCARRA1T2 As Decimal
+ Public Property COMCARRA2T2 As Decimal
+ Public Property COMCARRBT2 As Decimal
+ Public Property COMCARRC1T2 As Decimal
+ Public Property COMCARRC2T2 As Decimal
+ Public Property COMCARRET2 As Decimal
+ Public Property COMCARRA1T3 As Decimal
+ Public Property COMCARRA2T3 As Decimal
+ Public Property COMCARRBT3 As Decimal
+ Public Property COMCARRC1T3 As Decimal
+ Public Property COMCARRC2T3 As Decimal
+ Public Property COMCARRET3 As Decimal
+ Public Property COMCARRA1T4 As Decimal
+ Public Property COMCARRA2T4 As Decimal
+ Public Property COMCARRBT4 As Decimal
+ Public Property COMCARRC1T4 As Decimal
+ Public Property COMCARRC2T4 As Decimal
+ Public Property COMCARRET4 As Decimal
+ Public Property COMCARRA1T5 As Decimal
+ Public Property COMCARRA2T5 As Decimal
+ Public Property COMCARRBT5 As Decimal
+ Public Property COMCARRC1T5 As Decimal
+ Public Property COMCARRC2T5 As Decimal
+ Public Property COMCARRET5 As Decimal
+ Public Overridable Property IDRPTNavigation As RPT
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Models/UtilAntifraude.vb b/.codex-links/WebIntranet/Models/UtilAntifraude.vb
new file mode 100644
index 0000000..3be6a01
--- /dev/null
+++ b/.codex-links/WebIntranet/Models/UtilAntifraude.vb
@@ -0,0 +1,40 @@
+Imports Microsoft.Extensions.Configuration
+Imports Microsoft.IdentityModel.Clients.ActiveDirectory
+Imports Newtonsoft.Json
+Imports System.Net.Http
+Imports System.Net.Http.Headers
+Imports System.Threading.Tasks
+
+Public Class UtilAntifraude
+
+ Private Shared Property Conf As IConfiguration
+ Public Shared Function CheckCred() As Boolean
+ If HttpContext.Current.Session("persona") IsNot Nothing Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+ Public Shared Async Function ObtenerObjeto(Of T)(ByVal cliente As HttpClient, ByVal uri As String) As Task(Of T)
+ Dim response = Await cliente.GetAsync(uri)
+
+ If response.IsSuccessStatusCode Then
+ Dim resultContent = Await response.Content.ReadAsStringAsync()
+ Return JsonConvert.DeserializeObject(Of T)(resultContent)
+ Else
+ Return Nothing
+ End If
+ End Function
+ Public Shared Function ObtenerCliente(ByVal token As String, ByVal clientFactory As IHttpClientFactory) As HttpClient
+ Dim client = clientFactory.CreateClient()
+ client.BaseAddress = New Uri(urlSwagger())
+ client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", token)
+ client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
+ Return client
+ End Function
+ Public Shared Function urlSwagger() As String
+ 'Conf = New ConfigurationBuilder().AddJsonFile("appsettings.json").Build()
+ Dim swagger As String = ConfigurationManager.AppSettings("SwaggerVB")
+ Return swagger
+ End Function
+End Class
diff --git a/.codex-links/WebIntranet/My Project/Application.Designer.vb b/.codex-links/WebIntranet/My Project/Application.Designer.vb
new file mode 100644
index 0000000..24aaa49
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+' Versión de runtime:4.0.30319.42000
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/.codex-links/WebIntranet/My Project/Application.myapp b/.codex-links/WebIntranet/My Project/Application.myapp
new file mode 100644
index 0000000..758895d
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/.codex-links/WebIntranet/My Project/AssemblyInfo.vb b/.codex-links/WebIntranet/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..af46354
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/AssemblyInfo.vb
@@ -0,0 +1,34 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' General Information about an assembly is controlled through the following
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+' Review the values of the assembly attributes
+
+
+
+
+
+
+
+
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+
+
+' Version information for an assembly consists of the following four values:
+'
+' Major Version
+' Minor Version
+' Build Number
+' Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers
+' by using the '*' as shown below:
+'
+
+
+
diff --git a/.codex-links/WebIntranet/My Project/Resources.Designer.vb b/.codex-links/WebIntranet/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..ca347fb
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Resources.Designer.vb
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+' Versión de runtime:4.0.30319.42000
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ 'StronglyTypedResourceBuilder generó automáticamente esta clase
+ 'a través de una herramienta como ResGen o Visual Studio.
+ 'Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen
+ 'con la opción /str o recompile su proyecto de VS.
+ '''
+ ''' Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("WebIntranet.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las
+ ''' búsquedas de recursos mediante esta clase de recurso fuertemente tipado.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/.codex-links/WebIntranet/My Project/Resources.resx b/.codex-links/WebIntranet/My Project/Resources.resx
new file mode 100644
index 0000000..91e8e80
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/My Project/Settings.Designer.vb b/.codex-links/WebIntranet/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..c2be83a
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+' Versión de runtime:4.0.30319.42000
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Funcionalidad para autoguardar My.Settings"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.WebIntranet.My.MySettings
+ Get
+ Return Global.WebIntranet.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/.codex-links/WebIntranet/My Project/Settings.settings b/.codex-links/WebIntranet/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.codex-links/WebIntranet/My Project/licenses.licx b/.codex-links/WebIntranet/My Project/licenses.licx
new file mode 100644
index 0000000..78484e1
--- /dev/null
+++ b/.codex-links/WebIntranet/My Project/licenses.licx
@@ -0,0 +1 @@
+DevExpress.Web.ASPxComboBox, DevExpress.Web.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/.codex-links/WebIntranet/Nominas.aspx b/.codex-links/WebIntranet/Nominas.aspx
new file mode 100644
index 0000000..7164561
--- /dev/null
+++ b/.codex-links/WebIntranet/Nominas.aspx
@@ -0,0 +1,101 @@
+<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.master" CodeBehind="Nominas.aspx.vb" Inherits="WebIntranet.Nominas" %>
+
+
+
+
+
diff --git a/.codex-links/WebIntranet/Nominas.aspx.designer.vb b/.codex-links/WebIntranet/Nominas.aspx.designer.vb
new file mode 100644
index 0000000..cdab021
--- /dev/null
+++ b/.codex-links/WebIntranet/Nominas.aspx.designer.vb
@@ -0,0 +1,42 @@
+'------------------------------------------------------------------------------
+'
+' Este código fue generado por una herramienta.
+'
+' Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si
+' se vuelve a generar el código.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Partial Public Class Nominas
+
+ '''
+ '''Control inAnno.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents inAnno As Global.System.Web.UI.HtmlControls.HtmlInputText
+
+ '''
+ '''Control lisNominasTrabajador.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents lisNominasTrabajador As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+
+ '''
+ '''Control iframepdf.
+ '''
+ '''
+ '''Campo generado automáticamente.
+ '''Para modificarlo, mueva la declaración del campo del archivo del diseñador al archivo de código subyacente.
+ '''
+ Protected WithEvents iframepdf As Global.System.Web.UI.HtmlControls.HtmlGenericControl
+End Class
diff --git a/.codex-links/WebIntranet/Nominas.aspx.vb b/.codex-links/WebIntranet/Nominas.aspx.vb
new file mode 100644
index 0000000..9aac94f
--- /dev/null
+++ b/.codex-links/WebIntranet/Nominas.aspx.vb
@@ -0,0 +1,85 @@
+Imports System.Net
+Imports System.Net.Security
+
+Public Class Nominas
+ Inherits System.Web.UI.Page
+
+ Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
+ If Session("usuario") = "" Then
+ Response.Redirect("default.aspx")
+ End If
+
+ End Sub
+
+ Private Sub BuscarNominas_Click(sender As Object, e As EventArgs)
+ Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
+ Dim Anno = inAnno.Value ' pedir año
+ 'Dim Nif = Session("usuario") ' se obtiene de la identificacion
+ Dim nominas = NominasPersona(Anno) ' datos para el combo de nominas
+ Dim htmlLista = ""
+
+ For Each nomina As NominaTrabajador In nominas
+ htmlLista += "
" + nomina.Descripcion + "
"
+ Next
+ htmlLista += ""
+
+ lisNominasTrabajador.InnerHtml = htmlLista
+
+ End Sub
+
+
+ Private Function NominasPersona(anno As String) As List(Of NominaTrabajador)
+ Dim usuario As String = "tecnosis"
+ Dim contraseña As String = "patata2022"
+ Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
+
+ ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
+ Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/NominasTrabajadorAnno?Nif=" + sessionUsuario + "&Anno=" + anno
+ Dim clienteHTTP3 As New Net.WebClient()
+ clienteHTTP3.Encoding = System.Text.Encoding.UTF8
+ Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
+ Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
+ deserializador3.MaxJsonLength = Integer.MaxValue
+ Dim listaNominas As List(Of NominaTrabajador) =
+ deserializador3.Deserialize(Of List(Of NominaTrabajador))(respuesta3)
+ Return listaNominas
+
+ End Function
+
+
+ Public Shared Function ObtenerPdf(idNomina As String) As String
+ Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
+ Dim nif = sessionUsuario
+ ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(Function() True)
+ Dim url3 As String = ConfigurationManager.AppSettings("RutaRes").ToString + "/api/NominaPdf?Nif=" + nif + "&Idnomina=" + idNomina
+ Dim credenciales3 As New Net.CredentialCache()
+ Dim clienteHTTP3 As New Net.WebClient()
+ clienteHTTP3.Encoding = System.Text.Encoding.UTF8
+ clienteHTTP3.Credentials = credenciales3
+ Dim respuesta3 As String = clienteHTTP3.DownloadString(url3)
+ Dim deserializador3 As New System.Web.Script.Serialization.JavaScriptSerializer()
+ deserializador3.MaxJsonLength = 50000000
+ Dim sRespuesta3 As String = deserializador3.Deserialize(Of String)(respuesta3)
+
+ Return "[{""nombre"":""" + nif + "_" + idNomina + ".pdf"",""base64String"":""" + sRespuesta3 + """}]"
+
+ End Function
+
+ Protected Sub Unnamed_ServerClick(sender As Object, e As EventArgs)
+ Dim sessionUsuario As String = HttpContext.Current.Session("usuario")
+ Dim Anno = inAnno.Value ' pedir año
+ 'Dim Nif = Session("usuario") ' se obtiene de la identificacion
+ Dim nominas = NominasPersona(Anno) ' datos para el combo de nominas
+ Dim htmlLista = ""
+
+ For Each nomina As NominaTrabajador In nominas
+ htmlLista += "
" + nomina.Descripcion + "
"
+ Next
+ htmlLista += ""
+ If htmlLista = "" Then
+ htmlLista += "
Este año no contiene nóminas
"
+ End If
+ lisNominasTrabajador.InnerHtml = htmlLista
+
+ End Sub
+End Class
diff --git a/.codex-links/WebIntranet/ParcheaPublicacion.cmd b/.codex-links/WebIntranet/ParcheaPublicacion.cmd
new file mode 100644
index 0000000..bec7965
--- /dev/null
+++ b/.codex-links/WebIntranet/ParcheaPublicacion.cmd
@@ -0,0 +1,3 @@
+"C:\Program Files\7-zip\7z.exe" d c:\tecnosis.publicados\WebIntranet.zip Content\C_C\tecnosis.tfs\Clientes\COAS\WebIntranet\obj\Release\Package\PackageTmp\bin\DevExpress.Data.v23.2.dll
+"C:\Program Files\7-zip\7z.exe" a c:\tecnosis.publicados\WebIntranet.zip "C:\tecnosis.tfs\Controles\Binarios\DevExpress 23.2\Bin\Framework\DevExpress.Data.v23.2.dll"
+"C:\Program Files\7-zip\7z.exe" rn c:\tecnosis.publicados\WebIntranet.zip DevExpress.Data.v23.2.dll Content\C_C\tecnosis.tfs\Clientes\COAS\WebIntranet\obj\Release\Package\PackageTmp\bin\DevExpress.Data.v23.2.dll
diff --git a/.codex-links/WebIntranet/ResListPicaEntreFechas.vb b/.codex-links/WebIntranet/ResListPicaEntreFechas.vb
new file mode 100644
index 0000000..6899e1d
--- /dev/null
+++ b/.codex-links/WebIntranet/ResListPicaEntreFechas.vb
@@ -0,0 +1,6 @@
+Public Class ResListPicaEntreFechas
+ Property resultado As Integer
+ Property Mensaje As String
+
+ Property algo As String
+End Class
diff --git a/Antifraude.Net/GestionaDenunciasAN/wwwroot/Scripts/all.min.js b/.codex-links/WebIntranet/Scripts/all.min.js
similarity index 100%
rename from Antifraude.Net/GestionaDenunciasAN/wwwroot/Scripts/all.min.js
rename to .codex-links/WebIntranet/Scripts/all.min.js
diff --git a/.codex-links/WebIntranet/Scripts/bootstrap.min.js b/.codex-links/WebIntranet/Scripts/bootstrap.min.js
new file mode 100644
index 0000000..eac9842
--- /dev/null
+++ b/.codex-links/WebIntranet/Scripts/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/.codex-links/WebIntranet/Scripts/jquery.min.js b/.codex-links/WebIntranet/Scripts/jquery.min.js
new file mode 100644
index 0000000..a1c07fd
--- /dev/null
+++ b/.codex-links/WebIntranet/Scripts/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"