X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/7724f05143783f6d634f85d82c9eb77ccc7c01ee..dd35acb3d4ee1ee95b88fe565596a7d760bc74ca:/diagramas/clases.dia
diff --git a/diagramas/clases.dia b/diagramas/clases.dia
index 3c2c8a9..3c6719d 100644
--- a/diagramas/clases.dia
+++ b/diagramas/clases.dia
@@ -28,7 +28,7 @@
-
+
@@ -71,19 +71,19 @@
-
+
-
+
-
+
-
+
-
+
#Promotor#
@@ -163,54 +163,7 @@
-
-
-
- #cap#
-
-
- #Cap#
-
-
- ##
-
-
- #CAP al que pertenece.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #disponibilidad#
-
-
- #Horario#
-
-
- ##
-
-
- #Horario en que está disponible para atender Solicitantes (un objeto? como lo representamos? texto libre?)#
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -219,19 +172,19 @@
-
+
-
+
-
+
-
+
#Persona#
@@ -385,52 +338,6 @@
#apellido#
-
- ##
-
-
- ##
-
-
- #Apellido completo.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #telefono#
-
-
- #Telefono#
-
-
- ##
-
-
- #Número de teléfono (con código de paÃs? provincia? es una clase?).#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #calle#
-
#string#
@@ -438,30 +345,7 @@
##
- #Calle del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #numero#
-
-
- #int#
-
-
- ##
-
-
- #Número del domicilio de la persona.#
+ #Apellido completo.#
@@ -475,7 +359,7 @@
- #deapartamento#
+ #eMail#
#string#
@@ -484,53 +368,7 @@
##
- #Piso y departamento del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #codigoPostal#
-
-
- #string(8)#
-
-
- ##
-
-
- #Código postal del domicilio de la persona.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #provincia#
-
-
- #enum([provincias])#
-
-
- ##
-
-
- #Provincia donde se encuentra el domicilio de la persona.#
+ #Dirección de correo electrónico de la persona.#
@@ -544,16 +382,16 @@
- #eMail#
+ #fechaNacimiento#
- #string#
+ #Fecha#
##
- #Dirección de correo electrónico de la persona.#
+ #Fecha de nacimiento#
@@ -567,16 +405,16 @@
- #fechaNacimiento#
+ #sexo#
- #Fecha#
+ #enum(M,F)#
##
- #Fecha de nacimiento (es una clase??? Para mà sÃ)#
+ #Género de la persona#
@@ -597,19 +435,19 @@
-
+
-
+
-
+
-
+
#Afiliado#
@@ -633,7 +471,7 @@
-
+
@@ -692,7 +530,7 @@
- #nroAfiliado#
+ #codigo#
#int#
@@ -701,7 +539,7 @@
##
- #Identificador único de afiliado (con alguna codificación? int?).#
+ #Identificador único de afiliado.#
@@ -738,16 +576,16 @@
- #plan#
+ #fechaBaja#
- #Plan#
+ #Fecha#
##
- #Plan de la obra social al que está adherido.#
+ #Fecha en la que el afiliado solicita la baja#
@@ -761,16 +599,16 @@
- #titular#
+ #moroso#
- #Afiliado#
+ #int#
##
- #Titular del grupo familiar (si pertenece a un grupo familiar). Si no pertenece a un grupo familiar o el afiliado es el titular, es NULL.#
+ #Indica cuantos meses adeuda.#
@@ -782,54 +620,99 @@
-
+
+
+
- #activo#
-
-
- #bool#
+ #existe#
-
+
##
-
- #True si está en actividad (afiliado). (No convendrÃa poner Plan = NULL en caso de no estar más afiliado?)#
+
+ #bool#
+
+ #Devuelve True si el afiliado existe y carga el resto de los datos correspondientes. Si no existe devuelve False. Si existe más de uno, se pueden obtener con getNext().#
+
+
+
+
+
+
+
+
-
+
- #moroso#
+ #getNext#
+
+
+ ##
#bool#
-
- ##
+
+
- #True si está activo pero es moroso (debe más de 3 meses).#
+ #Si encontró uno nuevo, devuelve True y lo carga. Si no devuelve False y queda intacto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
+ ##
+
+
+ #bool#
+
+ #Guarda los datos del afiliado en la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
-
@@ -837,19 +720,19 @@
-
+
-
+
-
+
-
+
-
+
#Prestacion#
@@ -930,6 +813,29 @@
+
+
+ #codigo#
+
+
+ #int#
+
+
+ ##
+
+
+ #Código de la prestación según el codificador#
+
+
+
+
+
+
+
+
+
+
+
#nombre#
@@ -955,16 +861,16 @@
- #codigo#
+ #fechaBaja#
- #int#
+ #Fecha#
##
- #Identificador único de la prestación (esto está por el codificador? o porque nos pintó a nosotros?)#
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
@@ -985,19 +891,19 @@
-
+
-
+
-
+
-
+
-
+
#Plan#
@@ -1006,7 +912,7 @@
##
- ##
+ #Plan para los Afiliados de la obra social#
@@ -1015,13 +921,13 @@
-
+
-
+
@@ -1083,13 +989,13 @@
#codigo#
- ##
+ #int#
##
- ##
+ #Código de plan.#
@@ -1103,16 +1009,16 @@
- #precio#
+ #categorÃa#
- ##
+ #float#
##
- ##
+ #CategorÃa del plan. Cuanto más grande es la categorÃa, mejor es el plan#
@@ -1129,13 +1035,13 @@
#descripcion#
- ##
+ #string#
##
- ##
+ #Una breve descripción del plan.#
@@ -1149,16 +1055,16 @@
- #fecha_de_inicio#
+ #permanenciaMinima#
- ##
+ #float#
##
- ##
+ #Permanencia mÃnima (en meses) que debe cumplir en el plan antes de pasarse a otro.#
@@ -1172,29 +1078,90 @@
- #permanencia_minima#
+ #fechaBaja#
- ##
+ #Fecha#
##
+ #Fecha en la que el afiliado solicita la baja#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #borrar#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Cambia fechaBaja a la fecha actual del sistema#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
##
+
+ #bool#
+
+
+ #Registra en la BD todo el esquema del plan#
+
+
+
+
+
+
+
+
-
@@ -1202,19 +1169,19 @@
-
+
-
+
-
+
-
+
-
+
#Prestador#
@@ -1297,53 +1264,7 @@
- #direccion#
-
-
- #Direccion#
-
-
- ##
-
-
- #Domicilio (de nuevo, representación???)#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #zona#
-
-
- #Zona#
-
-
- ##
-
-
- #Zona en la que se encuentra ubicado.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #codigo#
+ #cuit#
#int#
@@ -1352,7 +1273,7 @@
##
- #Identificador único (para nosotros? o por codificador o algo?).#
+ #Número de CUIT.#
@@ -1389,16 +1310,16 @@
- #cuit#
+ #fechaBaja#
- #int#
+ #Fecha#
##
- #Número de CUIT (lo necesitamos!?!?!).#
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
@@ -1419,19 +1340,19 @@
-
+
-
+
-
+
-
+
-
+
#Cap#
@@ -1514,16 +1435,16 @@
- #telefono#
+ #codigo#
- #int#
+ #string#
##
- #Teléfono de contacto (de nuevo, formato???).#
+ #Código único para identificar al Cap (se usa para referirse al Cap en listados, etc)#
@@ -1546,30 +1467,7 @@
##
- #Nombre del responsable (gerente) del CAP (lo usamos para algo!?!?!?!!).#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #direccion#
-
-
- #Direccion#
-
-
- ##
-
-
- #Domicilio fÃsico del CAP (como lo representamos?!?! Objeto? texto libre?)#
+ #Nombre del responsable (gerente) del CAP#
@@ -1586,13 +1484,13 @@
#horario#
- #Horario#
+ #string#
##
- #Horario de atención (representación!?!?!?).#
+ #Horario de atención (texto libre)#
@@ -1613,19 +1511,19 @@
-
+
-
+
-
+
-
+
-
+
#Autorizacion#
@@ -1649,7 +1547,7 @@
-
+
@@ -1731,39 +1629,16 @@
- #tipo#
-
-
- #enum(manual,auto)#
-
-
- ##
-
-
- #Tipo de autorización. (esto si tenemos subclases no deberÃa existir)#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #afiliado#
+ #porcentajeCobertura#
- #Afiliado#
+ #int#
##
- #Afiliado que solicitó la autorización.#
+ #Porcentaje de la prestacion cubierto por la Autorizacion#
@@ -1800,7 +1675,7 @@
- #fechaAprobacion#
+ #fechaRealizacion#
#Fecha#
@@ -1809,7 +1684,7 @@
##
- #Fecha en la que se aprobó la autorización.#
+ #Fecha en que efectivizada la autorización. Es decir el dia en que se rechazo o el dia en que el afiliado la utilizo.#
@@ -1832,7 +1707,7 @@
##
- ##
+ #Fecha en que vence la autorización.#
@@ -1846,16 +1721,16 @@
- #estado#
+ #aprobada#
- #enum(emitida, pendiente, aprobada, rechazada)#
+ #bool#
##
- #True si fue aproba, False si no (no convendrÃa poner NULL en fechaAprobación?)#
+ #Indica si la autorizacion fue aprobada o no.#
@@ -1869,16 +1744,16 @@
- #prestacion#
+ #fundamentosResolucion#
- #Prestacion#
+ #string#
##
- #Prestación (no serÃa Cobertura???) para la cual se pidió autorización.#
+ #Una descripcion coloquial del por qué se aprueba o rechaza la autorización#
@@ -1890,194 +1765,134 @@
-
+
+
+
- #porcentajeCobertura#
+ #getEstado#
+
+
+ ##
#int#
-
- ##
+
+
##
-
-
-
-
-
-
-
-
-
- #observaciones#
-
-
- #string#
-
-
- ##
-
-
- #Observaciones sobre la autorización (deberÃa ir sólo en Manual o no?)#
-
-
-
+
+
-
+
+
-
+
- #descripcion_rechazo#
-
-
- #string#
+ #getEstado#
-
+
##
-
- ##
+
+ #int#
+
+ ##
+
+
+
+
+
+
+
+
+
+
+ #fechaRecepcion#
+
+
+ #DateTime#
+
+
+ ##
+
+
+ ##
+
+
+
+
+
+
-
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
- ##
+ #Zona#
##
-
-
-
-
-
-
-
-
-
-
-
+
+ #Región geográfica que cubre un Cap y a la que pertenecen los Prestadores#
-
-
-
-
-
+
+
-
-
-
-
+
+
-
+
-
-
+
+
-
- ##
+
+
-
- ##
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #Zona#
-
-
- ##
-
-
- #Región geográfica, cuya mÃnima unidad es un barrio.#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -2133,62 +1948,16 @@
- #pais#
-
-
- #enum([paises])#
-
-
- ##
-
-
- #PaÃs en donde se encuentra.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #provincia#
-
-
- #enum(?)#
-
-
- ##
-
-
- #Provincia a la que pertenece, si es NULL la región comprende un paÃs entero.#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ciudad#
+ #nombre#
- #enum(?)#
+ #string#
##
- #Ciudad a la que pertenece, si es NULL la región comprende una provincia entera.#
+ #Nombre de la Zona#
@@ -2202,16 +1971,16 @@
- #barrio#
+ #descripcion#
- #enum(?)#
+ #string#
##
- #Barrio al que pertenece, si es NULL la región comprende una ciudad entera.#
+ #Descripción de la Zona#
@@ -2230,21 +1999,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
#Solicitante#
@@ -2268,7 +2037,7 @@
-
+
@@ -2330,13 +2099,13 @@
#disponibilidad#
- #Horario#
+ #string#
##
- #Horario en el cual puede ser visitado (de nuevo, representación???).#
+ #Horario en el cual puede ser visitado (como texto libre)#
@@ -2394,72 +2163,181 @@
+
+
+ #pendiente#
+
+
+ #bool#
+
+
+ ##
+
+
+ #Indica si el solicitante fue visitado o no.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #existe#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Devuelve True si el afiliado existe y carga el resto de los datos correspondientes. Si no existe devuelve False. Si existe más de uno, se pueden obtener con getNext().#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #getNext#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Si encontró uno nuevo, devuelve True y lo carga. Si no devuelve False y queda intacto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #guardar#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Guarda los datos del solicitante en la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #borrar#
+
+
+ ##
+
+
+ #bool#
+
+
+
+
+
+ #Borra el solicitante de la DB y retorna True si no hubo error#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
- #PrestacionRealizada#
+ #AutorizacionManual#
##
- #Prestación concretada por el Afiliado.#
+ #Autorización que debe ser aprobada manualmente, a través de un auditor médico.#
@@ -2533,16 +2411,16 @@
- #fecha#
+ #observaciones#
- #Fecha#
+ #string#
##
- #Fecha en la que se hizo efectiva la prestación.#
+ #Una descripcion coloquial del por qué se solicita la autorización#
@@ -2554,37 +2432,60 @@
-
-
-
-
-
-
-
-
+
+
+ #fechaResolucion#
+
+
+ #fecha#
+
+
+ ##
+
+
+ #Fecha en la que se aprobo/rechazo la autorizacion.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
- #AutorizacionManual#
+ #AutorizacionAutomatica#
##
- #Autorización que debe ser aprobada manualmente, a través de un auditor médico.#
+ #Autorización aprobada o rechazada automáticamente por el sistema#
@@ -2662,65 +2563,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
- #Automatica#
+ #Cobertura#
##
- ##
+ #Limitaciones de cobertura para un Plan y una Prestación determinada.#
@@ -2729,7 +2595,7 @@
-
+
@@ -2791,72 +2657,130 @@
-
+
+
+
+ #carencia#
+
+
+ #float#
+
+
+ ##
+
+
+ #Antigüedad (en meses) que debe tener el afiliado en el plan para ser cubierto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #porcentaje#
+
+
+ #int#
+
+
+ ##
+
+
+ #Porcentaje de la prestación cubierto.#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #limiteAnual#
+
+
+ #int#
+
+
+ ##
+
+
+ #Cantidad de prestaciones que se puede realizar por año (cero indica que no hay lÃmite).#
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #tipoAutorizacion#
+
+
+ #enum(manual,auto)#
+
+
+ ##
+
+
+ #Indica el tipo de autorización que necesita para realizarse la prestación.#
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- ##
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
- #Cobertura#
+ #Categoria#
##
- #Limitaciones de cobertura para un Plan y una Prestación determinada.#
+ #Clasificación de las Prestaciones#
@@ -2865,7 +2789,7 @@
-
+
@@ -2930,30 +2854,7 @@
- #tiempoPermanencia#
-
-
- #Tiempo#
-
-
- ##
-
-
- #Antigüedad que debe tener el afiliado en el plan para ser cubierto. (años? meses?)#
-
-
-
-
-
-
-
-
-
-
-
-
-
- #porcentaje#
+ #codigo#
#int#
@@ -2962,7 +2863,7 @@
##
- #Porcentaje de la prestación cubierto.#
+ #Código de la categorÃa según el codificador#
@@ -2976,16 +2877,16 @@
- #limiteAnual#
+ #nombre#
- #int#
+ #string#
##
- #Cantidad de prestaciones que se puede realizar por año (cero indica que no hay lÃmite).#
+ #Nombre de la categorÃa.#
@@ -2999,16 +2900,16 @@
- #tipoAutorizacion#
+ #fechaBaja#
- #emun(manual,auto)#
+ #Fecha#
##
- #Indica el tipo de autorización que necesita para realizarse la prestación.#
+ #Fecha en la que fue dado de baja (o NULL si está activo)#
@@ -3027,58 +2928,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
- #Categoria#
+ #HistoriaPlan#
##
- #Clasificación de las Prestaciones. (esto lo necesitamos por el codificador, no?)#
+ #Representa el perÃodo de tiempo que un afiliado estuvo en un plan.#
@@ -3152,16 +3025,16 @@
- #codigo#
+ #fechaIngreso#
- #int#
+ #Fecha#
##
- #Identificador único (por codificador, no?)#
+ #Fecha en que se dio de alta el plan#
@@ -3175,16 +3048,16 @@
- #nombre#
+ #fechaEgreso#
- #string#
+ #Fecha#
##
- #Nombre de la categorÃa.#
+ #Fecha en la que el plan no rige mas para el afiliado (si es el plan actual es NULL)#
@@ -3203,743 +3076,442 @@
-
+
-
+
-
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
+
+
- ##
+ #Direccion#
##
-
-
-
-
-
-
-
-
+
+ #Dirección y datos de un domicilio#
-
-
+
+
-
-
-
-
-
+
+
-
-
-
-
+
+
-
- ##
+
+
-
-
+
+
-
-
-
- ##
-
-
- # *#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
+
+
-
-
-
+
+
-
- ##
+
+
-
-
+
+
-
-
-
- ##
-
-
- # 1#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
-
-
-
-
+
+
-
- ##
+
+
-
-
+
+
-
-
-
- ##
-
-
- #* #
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #calle#
-
-
+
+ #string#
-
-
-
+
##
-
- #1#
+
+ #Calle del domicilio#
+
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
+
+
+ #numero#
+
+
+ #int#
+
+
##
-
- #*#
+
+ #Número del domicilio#
+
+
+
-
+
-
-
+
+
-
-
+
+
+ #piso#
+
+
+ #int#
+
+
##
-
- #1#
+
+ #Piso del domicilio#
+
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
+
+
+ #departamento#
+
+
+ #string#
+
+
##
-
- #* #
+
+ #Departamento del domicilio#
+
+
+
-
+
-
-
+
+
-
-
+
+
+ #codigoPostal#
+
+
+ #string(8)#
+
+
##
-
- # 1#
+
+ #Código postal del domicilio#
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ##
-
-
-
-
-
-
-
+
+
+ #provincia#
+
+
+ #enum([provincias])#
+
+
##
-
- #* #
+
+ #Provincia donde se encuentra el domicilio#
+
+
+
-
+
-
-
+
+
-
-
+
+
+ #telefono#
+
+
+ #string#
+
+
##
-
- #1#
+
+ #Teléfono del domicilio#
+
+
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
##
-
-
-
-
-
-
- ##
-
-
- # *#
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+ ##
-
-
+
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
+
+
+
##
-
-
-
-
-
-
- ##
-
-
- # * #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+ ##
-
-
+
+
-
+
-
+
-
+
-
-
+
+
+
+
+
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
- #No deberia
-asociarse
-con
-Cobertura?#
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ ##
-
-
+
+ ##
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
##
-
-
-
-
-
-
- ##
-
-
- #* #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #1#
-
-
-
-
-
-
-
-
+
+ ##
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
##
-
-
-
-
-
-
- ##
-
-
- #* #
-
-
-
-
-
-
-
-
-
-
- ##
-
-
- #*#
-
-
-
-
-
-
-
-
+
+ ##
-
-
+
+