Para el cƔlculo de los consumos de agua de las Habitaciones 2 y 3 se
tendrĆ”n en cuenta 10 dĆas (dado el trabajo que implicarĆa hacer el
seguimiento, no estoy llevando cuenta de los dĆas en que las personas se
encuentran o no en la casa, es simplemente un estimado.
Por el hecho de Jorge encontrarse trabajando dentro del area sin
contador, se ha subido la diferencia entre el consumo total reportado
por air-e y el reportado por los contadores internos. Como no puedo
saber con exactitud el valor que se le debe asignar, el procedimiento
para la repartición de este consumo fue el siguiente: tomé el promedio
de consumo reportado en los cuatro meses anteriores (septiembre a
diciembre de 2025) en esta Ɣrea (36.89 Kw) y ese es el valor que se
dividió entre todos y la diferencia restante se le asignó a Jorge
directamente.
Datos de la factura del gas:
La factura de la casa grande (contrato No.1020307), por un valor
total de $85.507 correspondiente al perĆodo 12/2025, estĆ” para pagar
antes del 20 de enero de 2026.
NOTA: Del valor total de este mes me corresponde pagar: $32.700.
Los siguientes son los datos tomados de la factura de este mes:
La factura del agua (póliza No.121497), por un valor total de
$274.020, correspondiente al perĆodo: Enero-2026, estĆ” para pagar antes
del 19 de enero de 2026.
SegĆŗn la factura, la fecha de la lectura anterior fue el 28 de
noviembre de 2025 y la fecha de la lectura actual el 29 de diciembre de
2025.
2.2. Total pago por habitación
3.1. Datos de la factura:
Para el perĆodo Ene. - 2026, el valor total a pagar por la factura de
energĆa elĆ©ctrica del NIC: 2345873 es de $205.630. Este valor
corresponde a un consumo de 266 Kws en 32 dĆas desde el 19 de diciembre
hasta el 19 de enero de 2026.
La factura tiene fecha de vencimiento para pagar hasta el 25 de enero
de 2026.
3.2. Datos para tener en cuenta
3.2.1. Diferencias sobre datos de consumo
Entre los datos que reporta air-e en sus lecturas y los recolectados
de la información que suministran los contadores aparecen diferencias
tanto en el consumo, como en las fechas de los reportes. La diferencia
en el consumo no debe ser muy alta y se debe principalmente a la sección
de la casa en la cual no se recolectan los datos, por esta razón los
datos de air-e van a estar mas altos que los reportados en el consumo
interno.
La suma total de los consumos internos para este perĆodo es de 229.11
Kw. Quedando un consumo a repartir de 36.89 Kw respecto al consumo
reportado por air-e.
La diferencia entre las fechas (u horas) en que se realizan las
lecturas de los contadores internos y la del contador externo por parte
de air-e, afecta este total a repartir de manera directa: mientras mayor
sea la diferencia entre el tiempo de las lecturas, mayor serĆ” la
diferencia en el consumo a repartir.
La última lectura de los contadores internos se realizó el 20 de
enero de 2026 y la lectura anterior se hizo el 19 de diciembre de 2025.
En cuanto a Air-e, la lectura actual la realizó el 19 de enero de 2026 y
la lectura anterior el 18 de diciembre de 2025.
La diferencia de los consumos (columna āDiferenciaā) se repartirĆ”
proporcionalmente al consumo de cada habitación. La siguiente tabla
muestra estas diferencias para este mes:
El valor de corte para control se estableció en 10 Kw por dĆa. Este
valor se estableció basado en el primer reporte de consumo (septiembre)
despuƩs del cambio del cableado realizado en agosto de 2025. Este valor
permite observar las tendencias generales en el consumo mes a mes:
aumentos o disminuciones en el promedio de consumo diario.
Este mes hemos disminuido el promedio de consumo diario en 1.688 Kw
con respecto al corte.
3.2.3. Lectura de contadores internos
El area comĆŗn, desde la cocina hasta la lavanderĆa, no ha quedado
cobijada bajo ningĆŗn contador por lo que la sumatoria de los valores de
consumo de los contadores internos normalmente serĆ” menor al consumo
total reportado por air-e, haciéndose necesaria la repartición de esta
diferencia. Esta repartición se harÔ de manera proporcional al consumo
obtenido a travƩs de los contadores.
3.2.4. Consumo area comĆŗn
Este consumo serĆ” repartido de manera proporcional al consumo
reportado por los contadores internos de acuerdo a la siguiente tabla
(todos los valores en Kw):
3.3. Total a pagar por habitación
Los siguientes son los datos de la factura de Movistar por concepto
del internet:
El valor total de la factura del Internet por $94.990, con referencia
de pago 60512751061, estĆ” para pagar antes del 10 de febrero de 2026.
Equivalente a $21.100 por persona (4.5).
El total de los servicios por habitación para este mes se discrimina
en la siguiente tabla:
ene. 2026
La siguiente tabla corresponde a los valores del mes pasado:
LS0tDQp0aXRsZTogIjxoMT5EaXN0cmlidWNpw7NuIGRlbCBwYWdvIGRlIGxvcyBzZXJ2aWNpb3M8L2gxPiINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgY3NzOiAiLi4vc2NyaXB0cy9zdHlsZUVFLmNzcyINCi0tLQ0KDQo8IS0tIA0KUHJlbGltaW5hcmVzIChSRUFETUUpOiANCkNvbnZlcnTDrSBhIHByb3llY3RvIGVzdGUgZG9jdW1lbnRvIGVsIDIwMjUtMDctMDQsIGVuIGVsIGRpcmVjdG9yaW86DQogICAgIkM6L1VzZXJzL01vbm8vRG9jdW1lbnRzL0hhY2llbmRhICsvRGlzdF9TUy8iDQpFbiBlc3RlIGRpcmVjdG9yaW8gY3Jlw6kgMyBjYXJwZXRhczogaW5wdXQsIG91dHB1dCB5IHNjcmlwdHMuDQpFc3RlIGRvY3VtZW50byBlc3TDoSBlbiBsYSBjYXJwZXRhOiAib3V0cHV0Ig0KDQpTSUVNUFJFIFJFQ1VFUkRFOg0KLSBTQUxWQVIgRUwgRE9DVU1FTlRPIEhUTUwgZW4gZWwgZm9sZGVyIGRlIG91dHB1dC9IaXN0w7NyaWNvIGFudGVzIGRlIGNhbWJpYXJsby4NCi0gVG9tYXIgbGEgaW1hZ2VuIGRlIGxhIHRhYmxhIGNvbiBsYSBkaXN0cmlidWNpw7NuIGEgZmluIGRlIG1lcyBkZSB0b2RvcyBsb3Mgc2VydmljaW9zLg0KLSBBY3R1YWxpemFyIGxhIGluZm8gZGUgbG9zIHNlcnZpY2lvcyBlbiBlbCBhcmNoaXZvICJpbnB1dC9DYXNhX1NTLlIiDQotIFVuYSB2ZXogYWN0dWFsaXphZG8gZXNlIGFyY2hpdm8sIGNvcnJlciBUT0RPUyBsb3MgY2h1bmtzIGRlc3B1w6lzIGRlIGVzdGUgY29tZW50YXJpbyBwYXJhIGV2aXRhciBlcnJvcmVzLg0KLS0+DQoNCmBgYHtyIGluaWNpb19kb2MsIGluY2x1ZGU9RkFMU0V9DQojIE9wY2lvbmVzIGdlbmVyYWxlcyBkZSBsb3MgY2h1bmtzOg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChjb21tZW50ID0gIiAiKQ0KDQojIEZ1bmNpw7NuIHBhcmEgY2FyZ2FyIGxhcyBsaWJyZXLDrWFzOg0Kc291cmNlKCIuLi9zY3JpcHRzL2xvYWRfbGlicy5SIikNCmBgYA0KDQpgYGB7ciB2ZWN0b3JlcywgaW5jbHVkZT1GQUxTRX0NCiMgbGlzdGFzIENhc2EgeSBTUzoNCnNvdXJjZSgiLi4vaW5wdXQvQ2FzYV9TUy5SIikNCmBgYA0KDQo8ZGl2IGlkPSJUYWJsYSI+DQojIyMjIFRhYmxhIGRlIGNvbnRlbmlkb3M6DQo8L2Rpdj4NCiMjIyMjIyAmZW1zcDsmZW1zcDvigKImZW5zcDsgW05vdGFzIFByZWxpbWluYXJlc10oI05vdGFzKQ0KDQo8b2w+DQogIDxsaT4gW0dhc2VzIGRlbCBDYXJpYmVdKCNHYXMpIDwvbGk+DQogIDxsaT4gW0FBQV0oI0FBQSkgDQogICAgPG9sPg0KICAgICAgPGxpPiBbRGF0b3MgZGUgbGEgZmFjdHVyYV0oI2ZhY3RBZ3VhKSA8L2xpPg0KICAgICAgPGxpPiBbVG90YWwgcGFnbyBwb3IgaGFiaXRhY2nDs25dKCN0b3RIYWJBKSA8L2xpPg0KICAgIDwvb2w+IDwvbGk+DQogIDxsaT4gW0Fpci1lXSgjRUUpDQogICAgPG9sPg0KICAgICAgPGxpPiBbRGF0b3MgZGUgbGEgZmFjdHVyYV0oI0ZhY3RFRSkgPC9saT4NCiAgICAgIDxsaT4gW0RhdG9zIHBhcmEgdGVuZXIgZW4gY3VlbnRhXSgjRUVuQ3VlbnRhKSANCiAgICAgICAgPG9sPg0KICAgICAgICAgIDxsaT4gW0RpZmVyZW5jaWFzIHNvYnJlIGRhdG9zIGRlIGNvbnN1bW9dKCNFRW5DdWVudGEpIDwvbGk+DQogICAgICAgICAgPGxpPiBbVmFsb3IgZGUgY29ydGVdKCNWYWxFRSkgPC9saT4NCiAgICAgICAgICA8bGk+IFtMZWN0dXJhIGRlIGNvbnRhZG9yZXMgaW50ZXJub3NdKCNMZWN0Q29udHMpIDwvbGk+DQogICAgICAgICAgPGxpPiBbQ29uc3VtbyBhcmVhIGNvbcO6bl0oI0NvbnNBckNvbSkNCiAgICAgICAgPC9vbD4gPC9saT4NCiAgICAgIDxsaT4gW1RvdGFsIGEgcGFnYXIgcG9yIGhhYml0YWNpw7NuXSgjVG90YWxFRSkgPC9saT4NCiAgICA8L29sPiA8L2xpPg0KICA8bGk+IFtNb3Zpc3Rhcl0oI01vdmlzKSA8L2xpPg0KICA8bGk+IFtUb3RhbCBzZXJ2aWNpb3NdKCNsYXRvVG90YWwpDQo8L29sPg0KDQoqKioNCg0KPGRpdiBpZD0iTm90YXMiPg0KIyMgTm90YXMgUHJlbGltaW5hcmVzDQo8L2Rpdj4NCg0KYGBge3Igbm90YXNfcHJlMSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKG5vdGFfcHJlXzEpDQp3cml0ZUxpbmVzKG5vdGFfcHJlXzIpDQpgYGANCg0KDQoqKioNCg0KPGRpdiBpZD0iR2FzIj4NCiMjIDEuIEdhc2VzIGRlbCBDYXJpYmUNCjwvZGl2Pg0KDQpEYXRvcyBkZSBsYSBmYWN0dXJhIGRlbCBnYXM6DQoNCmBgYHtyIGZhY3RHYXMsIHJlc3VsdHM9J2FzaXMnfQ0KaWYgKCJHYXMiICVpbiUgU1MkQWN0dWFsKXsNCiAgd3JpdGVMaW5lcyhwYXN0ZTAoIkxhIGZhY3R1cmEgZGUgbGEgY2FzYSBncmFuZGUgKGNvbnRyYXRvIE5vLiIsDQogICAgICAgICAgICAgICAgICBTUyRHYXMkTm9fY29udHJhdG8sDQogICAgICAgICAgICAgICAgICAiKSwgcG9yIHVuIHZhbG9yIHRvdGFsIGRlICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEdhcyR0b3RhbF9hX3BhZ2FyLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgaWYgKFNTJEdhcyRzYWxkb19hbnRlcmlvciAhPSAwKXsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgY29ycmVzcG9uZGllbnRlIGEgbG9zIHBlcsOtb2RvcyAiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdChteShTUyRHYXMkcGVyaW9kbykgLSBkYXlzKDMwKSwgIiViIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiIHkgIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdChteShTUyRHYXMkcGVyaW9kbyksICIlYiBkZSAlWSIpKQ0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgY29ycmVzcG9uZGllbnRlIGFsIHBlcsOtb2RvICIsIFNTJEdhcyRwZXJpb2RvKQ0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkR2FzJGZlY2hhLCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICAgICAgICAgICIuXG4iLCAiXG4iLA0KICAgICAgICAgICAiTk9UQTogRGVsIHZhbG9yIHRvdGFsIGRlIGVzdGUgbWVzIG1lIGNvcnJlc3BvbmRlIHBhZ2FyOiAkIiwNCiAgICAgICAgICAgICAgICAgIGZvcm1hdCgxMDAgKiByb3VuZCgoU1MkR2FzJGNhcmdvX2FuZHJlcykgLyAxMDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgIGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKSwgIi5cbiIpKQ0KfSBlbHNlIHsNCiAgd3JpdGVMaW5lcygiRmFjdHVyYSBubyBkaXNwb25pYmxlIHRvZGF2w61hLiIpDQp9DQpgYGANCg0KIyMjIyMjIFtUYWJsYSBkZSBjb250ZW5pZG9zXSgjVGFibGEpDQoqKioNCiANCjxkaXYgaWQ9IkFBQSI+DQojIyAyLiBBQUENCjwvZGl2Pg0KPGRpdiBpZD0iZmFjdEFndWEiPg0KIyMjIDIuMS4gRGF0b3MgZGUgbGEgZmFjdHVyYQ0KPC9kaXY+DQoNCkxvcyBzaWd1aWVudGVzIHNvbiBsb3MgZGF0b3MgdG9tYWRvcyBkZSBsYSBmYWN0dXJhIGRlIGVzdGUgbWVzOg0KDQpgYGB7ciBmYWN0QWd1YSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgIHBhc3RlMCgiTGEgZmFjdHVyYSBkZWwgYWd1YSAocMOzbGl6YSBOby4iLCBTUyRBQUEkTm9fcG9saXphLA0KICAgICAgICAgICAiKSwgcG9yIHVuIHZhbG9yIHRvdGFsIGRlICQiLA0KICAgICAgICAgICBmb3JtYXQoU1MkQUFBJHRvdGFsX3BhZ29fYWFhLCBiaWcubWFyayA9ICIuIiwNCiAgICAgICAgICAgICAgICAgIGRlY2ltYWwubWFyayA9ICIsIiksDQogICAgICAgICAgICIsIGNvcnJlc3BvbmRpZW50ZSBhbCBwZXLDrW9kbzogIiwgU1MkQUFBJHBlcmlvZG8sDQogICAgICAgICAgICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgIGZvcm1hdCh5bWQoU1MkQUFBJGZlY2hhKSwgIiVkIGRlICVCIGRlICVZIiksDQogICAgICAgICAgICIuXG5cblNlZ8O6biBsYSBmYWN0dXJhLCBsYSBmZWNoYSBkZSBsYSBsZWN0dXJhIGFudGVyaW9yIGZ1ZSBlbCAiLA0KICAgICAgICAgICBmb3JtYXQoU1MkQUFBJGZlY2hhX2xlY3RfYW50LCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICAgIiB5IGxhIGZlY2hhIGRlIGxhIGxlY3R1cmEgYWN0dWFsIGVsICIsDQogICAgICAgICAgIGZvcm1hdChTUyRBQUEkZmVjaGFfbGVjdF9hY3QsICIlZCBkZSAlQiBkZSAlWSIpLCAiLlxuIikNCiAgfSBlbHNlIHsNCiAgICAiVG9kYXbDrWEgbm8gaGF5IGZhY3R1cmEgZGlzcG9uaWJsZSBwYXJhIGVzdGUgcGVyw61vZG8uIg0KfSkNCmBgYA0KDQo8ZGl2IGlkPSJ0b3RIYWJBIj4NCiMjIyAyLjIuIFRvdGFsIHBhZ28gcG9yIGhhYml0YWNpw7NuDQo8L2Rpdj4NCg0KYGBge3IgcGFnb0FhYX0NCmlmICgiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICBkYXRhLnRhYmxlKEhhYml0YWNpw7NuID0gQ2FzYSRIYWJpdGFjacOzbiwgYEludGVncmFudGUocylgID0gQ2FzYSRgSW50ZWdyYW50ZShzKWAsDQogICAgICAgICAgICAgT2N1cGFjacOzbiA9IGxhYmVsX3BlcmNlbnQoYWNjdXJhY3kgPSAwLjAxKShDYXNhJE9jdXBhKSwNCiAgICAgICAgICAgICBgVG90YWwgQUFBYCA9IGxhYmVsX2N1cnJlbmN5KHByZWZpeCA9ICIkIiwgYmlnLm1hcmsgPSAiLiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsLm1hcmsgPSAiLCIpKFNTJEFBQSR0b3RhbF9BQUEpKQ0KfSBlbHNlIHsNCiAgICB3cml0ZUxpbmVzKCJMYSBmYWN0dXJhIGRlIGVzdGUgcGVyw61vZG8gbm8gZXN0w6EgZGlzcG9uaWJsZSB0b2RhdsOtYS4iKQ0KfQ0KYGBgDQoNCiMjIyMjIyBbVGFibGEgZGUgY29udGVuaWRvc10oI1RhYmxhKQ0KKioqDQoNCjxkaXYgaWQ9IkVFIj4NCiMjIDMuIEFpci1lDQo8L2Rpdj4NCg0KDQo8ZGl2IGlkPSJGYWN0RUUiPg0KIyMjIDMuMS4gRGF0b3MgZGUgbGEgZmFjdHVyYToNCjwvZGl2Pg0KDQpgYGB7ciByZXBvcnRlRmFjdHVyYSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7cGFzdGUwKCJQYXJhIGVsIHBlcsOtb2RvICIsIFNTJEVFJHBlcmlvZG9FRSwgDQogICAgICAgICAgICAgICAgICAiLCBlbCB2YWxvciB0b3RhbCBhIHBhZ2FyIHBvciBsYSBmYWN0dXJhIGRlIGVuZXJnw61hIGVsw6ljdHJpY2EgZGVsIE5JQzogIiwNCiAgICAgICAgICAgICAgICAgIFNTJEVFJE5JQywgIiBlcyBkZSAkIiwNCiAgICAgICAgICAgICAgICAgIGZvcm1hdChTUyRFRSR2cl9mYWN0LCBiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiKSwNCiAgICAgICAgICAgICAgICAgICIuXG5Fc3RlIHZhbG9yIGNvcnJlc3BvbmRlIGEgdW4gY29uc3VtbyBkZSAiLCBTUyRFRSRrd2hfZiwgIiBLd3MgZW4gIiwNCiAgICAgICAgICAgICAgICAgIFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50LCAiIGTDrWFzICIsDQogICAgICAgICAgICAgICAgICBpZiAoU1MkRUUkZl9hbnQpIHsgcGFzdGUwKCJkZXNkZSBlbCAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkRUUkZl9hbnQrMSwgZm9ybWF0ID0gIiVkIGRlICVCIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIikgfSwNCiAgICAgICAgICAgICAgICAgIGlmIChTUyRFRSRmX2xlY3QpIHsgcGFzdGUwKCJoYXN0YSBlbCAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEVFJGZfbGVjdCwgZm9ybWF0ID0gIiVkIGRlICVCIGRlICVZIikpDQogICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAiLCBwZXJvIHNpbiBsZWN0dXJhIGFjdHVhbCAoY29uc3VtbyBlc3RpbWFkbykiIA0KICAgICAgICAgICAgICAgICAgfSwgIi5cblxuTGEgZmFjdHVyYSB0aWVuZSBmZWNoYSBkZSB2ZW5jaW1pZW50byBwYXJhIHBhZ2FyIGhhc3RhIGVsICIsIA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEVFJGZfdmVuYywgZm9ybWF0ID0gIiVkIGRlICVCIGRlICVZIiksIi5cbiIpDQogIH0gZWxzZSB7DQogICAgIkxhIGZhY3R1cmEgZGVsIHBlcsOtb2RvIGFjdHVhbCB0b2RhdsOtYSBubyBlc3TDoSBkaXNwb25pYmxlLlxuIg0KICB9KQ0KYGBgDQoNCjxkaXYgaWQ9IkVFbkN1ZW50YSI+DQojIyMgMy4yLiBEYXRvcyBwYXJhIHRlbmVyIGVuIGN1ZW50YQ0KPC9kaXY+DQoNCiMjIyMgMy4yLjEuIERpZmVyZW5jaWFzIHNvYnJlIGRhdG9zIGRlIGNvbnN1bW8NCg0KRW50cmUgbG9zIGRhdG9zIHF1ZSByZXBvcnRhIGFpci1lIGVuIHN1cyBsZWN0dXJhcyB5IGxvcyByZWNvbGVjdGFkb3MgZGUgbGEgaW5mb3JtYWNpw7NuIHF1ZSBzdW1pbmlzdHJhbiBsb3MgY29udGFkb3JlcyBhcGFyZWNlbiBkaWZlcmVuY2lhcyB0YW50byBlbiBlbCBjb25zdW1vLCBjb21vIGVuIGxhcyBmZWNoYXMgZGUgbG9zIHJlcG9ydGVzLiBMYSBkaWZlcmVuY2lhIGVuIGVsIGNvbnN1bW8gbm8gZGViZSBzZXIgbXV5IGFsdGEgeSBzZSBkZWJlIHByaW5jaXBhbG1lbnRlIGEgbGEgc2VjY2nDs24gZGUgbGEgY2FzYSBlbiBsYSBjdWFsIG5vIHNlIHJlY29sZWN0YW4gbG9zIGRhdG9zLCBwb3IgZXN0YSByYXrDs24gbG9zIGRhdG9zIGRlIGFpci1lIHZhbiBhIGVzdGFyIG1hcyBhbHRvcyBxdWUgbG9zIHJlcG9ydGFkb3MgZW4gZWwgY29uc3VtbyBpbnRlcm5vLiANCg0KYGBge3IgY29uc0ludCwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiQ0kiICVpbiUgU1MkQWN0dWFsKSB7DQogIHBhc3RlMCgiTGEgc3VtYSB0b3RhbCBkZSBsb3MgY29uc3Vtb3MgaW50ZXJub3MgcGFyYSBlc3RlIHBlcsOtb2RvIGVzIGRlICIsDQogICAgICAgICBzdW0oU1MkRUUkQ29uc0ludCRjb25zdW1vKSwgaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgS3cuIFF1ZWRhbmRvIHVuIGNvbnN1bW8gYSByZXBhcnRpciBkZSAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkRUUka3doX2YgLSBzdW0oU1MkRUUkQ29uc0ludCRjb25zdW1vKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgS3cgcmVzcGVjdG8gYWwgY29uc3VtbyByZXBvcnRhZG8gcG9yIGFpci1lLiIpDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IiBLdy5cbiJ9KQ0KICB9IGVsc2UgeyJDb25zdW1vIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuIn0pDQpgYGANCg0KDQpMYSBkaWZlcmVuY2lhIGVudHJlIGxhcyBmZWNoYXMgKHUgaG9yYXMpIGVuIHF1ZSBzZSByZWFsaXphbiBsYXMgbGVjdHVyYXMgZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3MgeSBsYSBkZWwgY29udGFkb3IgZXh0ZXJubyBwb3IgcGFydGUgZGUgYWlyLWUsIGFmZWN0YSBlc3RlIHRvdGFsIGEgcmVwYXJ0aXIgZGUgbWFuZXJhIGRpcmVjdGE6IG1pZW50cmFzIG1heW9yIHNlYSBsYSBkaWZlcmVuY2lhIGVudHJlIGVsIHRpZW1wbyBkZSBsYXMgbGVjdHVyYXMsIG1heW9yIHNlcsOhIGxhIGRpZmVyZW5jaWEgZW4gZWwgY29uc3VtbyBhIHJlcGFydGlyLg0KDQpgYGB7ciBsZWN0dXJhX2NvbnRfaW50LCByZXN1bHRzPSdhc2lzJ30NCndyaXRlTGluZXMoaWYgKCJDSSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgcGFzdGUwKCJMYSDDumx0aW1hIGxlY3R1cmEgZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3Mgc2UgcmVhbGl6w7MgZWwgIiwNCiAgICAgICAgIGZvcm1hdChTUyRFRSRDb25zSW50JGZlY2hhX2xlY3RfYWN0dWFsLCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICIgeSBsYSBsZWN0dXJhIGFudGVyaW9yIHNlIGhpem8gZWwgIiwNCiAgICAgICAgIGZvcm1hdChTUyRFRSRDb25zSW50JGZlY2hhX2xlY3RfYW50ZXIsICIlZCBkZSAlQiBkZSAlWSIpLA0KICAgICAgICAgIi5cbkVuIGN1YW50byBhIEFpci1lLCAiLCBpZiAoIkVFIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgICAgICAgICBwYXN0ZTAoImxhIGxlY3R1cmEgYWN0dWFsIGxhIHJlYWxpesOzIGVsICIsIGZvcm1hdChTUyRFRSRmX2xlY3QsICIlZCBkZSAlQiBkZSAlWSIpLA0KICAgICAgICAgICAiIHkgbGEgbGVjdHVyYSBhbnRlcmlvciBlbCAiLCBmb3JtYXQoU1MkRUUkZl9hbnQsICIlZCBkZSAlQiBkZSAlWSIpLCAiLlxuIikNCiAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICJsYSBmYWN0dXJhIG5vIGVzdMOhIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iDQogICAgICAgICB9KQ0KICB9IGVsc2Ugew0KICAgICJObyBoYXkgZGF0b3MgZGlzcG9uaWJsZXMgdG9kYXbDrWEuXG4iDQogIH0pDQpgYGANCg0KTGEgZGlmZXJlbmNpYSBkZSBsb3MgY29uc3Vtb3MgKGNvbHVtbmEgIkRpZmVyZW5jaWEiKSBzZSByZXBhcnRpcsOhIHByb3BvcmNpb25hbG1lbnRlIGFsIGNvbnN1bW8gZGUgY2FkYSBoYWJpdGFjacOzbi4gTGEgc2lndWllbnRlIHRhYmxhIG11ZXN0cmEgZXN0YXMgZGlmZXJlbmNpYXMgcGFyYSBlc3RlIG1lczoNCg0KYGBge3IgRGlmZXJlbmNpYUxlY3R1cmFzfQ0KaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgdGliYmxlKGBGYWN0dXJhIGFpci1lYCA9IHBhc3RlKFNTJEVFJGt3aF9mLCJLdyIpLA0KICAgICAgIGBMZWN0dXJhIGNvbnRhZG9yZXNgID0gcGFzdGUocm91bmQoc3VtKFNTJEVFJENvbnNJbnQkbGVjdF9maW4pIC0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0oU1MkRUUkQ29uc0ludCRsZWN0X2luaSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHM9MiksIkt3IiksDQogICAgICAgRGlmZXJlbmNpYSA9IHBhc3RlMChhYnMocm91bmQoU1MkRUUka3doX2YgLSAoc3VtKFNTJEVFJENvbnNJbnQkbGVjdF9maW4pIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bShTUyRFRSRDb25zSW50JGxlY3RfaW5pKSksIGRpZ2l0cyA9IDIpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgS3ciKSwNCiAgICAgICBgTsO6bWVybyBkZSBkw61hcyBmYWN0dXJhYCA9IHBhc3RlMChTUyRFRSRmX2xlY3QgLSBTUyRFRSRmX2FudCwiIGTDrWFzIiksDQogICAgICAgYE7Dum1lcm8gZGUgZMOtYXMgaW50ZXJub2AgPSBwYXN0ZTAoU1MkRUUkQ29uc0ludCRmZWNoYV9sZWN0X2FjdHVhbCAtIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTJEVFJENvbnNJbnQkZmVjaGFfbGVjdF9hbnRlciwiIGTDrWFzIiksDQogICAgICAgKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJWYWxFRSI+DQojIyMjIDMuMi4yLiBWYWxvciBkZSBjb3J0ZQ0KPC9kaXY+DQpFbCB2YWxvciBkZSBjb3J0ZSBwYXJhIGNvbnRyb2wgc2UgZXN0YWJsZWNpw7MgZW4gMTAgS3cgcG9yIGTDrWEuIEVzdGUgdmFsb3Igc2UgZXN0YWJsZWNpw7MgYmFzYWRvIGVuIGVsIHByaW1lciByZXBvcnRlIGRlIGNvbnN1bW8gKHNlcHRpZW1icmUpIGRlc3B1w6lzIGRlbCBjYW1iaW8gZGVsIGNhYmxlYWRvIHJlYWxpemFkbyBlbiBhZ29zdG8gZGUgMjAyNS4gRXN0ZSB2YWxvciBwZXJtaXRlIG9ic2VydmFyIGxhcyB0ZW5kZW5jaWFzIGdlbmVyYWxlcyBlbiBlbCBjb25zdW1vIG1lcyBhIG1lczogYXVtZW50b3MgbyBkaXNtaW51Y2lvbmVzIGVuIGVsIHByb21lZGlvIGRlIGNvbnN1bW8gZGlhcmlvLiANCg0KYGBge3IgQ2FtYmlvUGF0cm9uQ29uc3VtbywgcmVzdWx0cz0nYXNpcyd9DQppZiAoIkVFIiAlaW4lIFNTJEFjdHVhbCkgew0KICB3cml0ZUxpbmVzKHBhc3RlMCgiRXN0ZSBtZXMgaGVtb3MgIixpZiAocm91bmQoMTAgLSBTUyRFRSRrd2hfZi9hcy5udW1lcmljKFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50KSwgZGlnaXRzPTMpIDwwKSB7ImF1bWVudGFkbyAifSBlbHNlIHsiZGlzbWludWlkbyAifSwiZWwgcHJvbWVkaW8gZGUgY29uc3VtbyBkaWFyaW8gZW4gIixhYnMocm91bmQoMTAgLSBTUyRFRSRrd2hfZi9hcy5udW1lcmljKFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50KSwgZGlnaXRzPTMpKSwiIEt3IGNvbiByZXNwZWN0byBhbCBjb3J0ZS5cbiIpKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJMZWN0Q29udHMiPg0KIyMjIyAzLjIuMy4gTGVjdHVyYSBkZSBjb250YWRvcmVzIGludGVybm9zDQo8L2Rpdj4NCkVsIGFyZWEgY29tw7puLCBkZXNkZSBsYSBjb2NpbmEgaGFzdGEgbGEgbGF2YW5kZXLDrWEsIG5vIGhhIHF1ZWRhZG8gY29iaWphZGEgYmFqbyBuaW5nw7puIGNvbnRhZG9yIHBvciBsbyBxdWUgbGEgc3VtYXRvcmlhIGRlIGxvcyB2YWxvcmVzIGRlIGNvbnN1bW8gZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3Mgbm9ybWFsbWVudGUgc2Vyw6EgbWVub3IgYWwgY29uc3VtbyB0b3RhbCByZXBvcnRhZG8gcG9yIGFpci1lLCBoYWNpw6luZG9zZSBuZWNlc2FyaWEgbGEgcmVwYXJ0aWNpw7NuIGRlIGVzdGEgZGlmZXJlbmNpYS4gRXN0YSByZXBhcnRpY2nDs24gc2UgaGFyw6EgZGUgbWFuZXJhIHByb3BvcmNpb25hbCBhbCBjb25zdW1vIG9idGVuaWRvIGEgdHJhdsOpcyBkZSBsb3MgY29udGFkb3Jlcy4NCg0KYGBge3IgY29uc3Vtb19pbnRlcm5vfQ0KaWYgKCJDSSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgZGF0YS50YWJsZShIYWJpdGFjacOzbiA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBDb250YWRvciAjYCA9IFNTJEVFJENvbnNJbnQkY29udGFkb3IsDQogICAgICAgICAgIGBMZWN0dXJhIGZpbmFsYCA9IFNTJEVFJENvbnNJbnQkbGVjdF9maW4sDQogICAgICAgICAgIGBMZWN0dXJhIGluaWNpYWxgID0gU1MkRUUkQ29uc0ludCRsZWN0X2luaSwNCiAgICAgICAgICAgYENvbnN1bW8gS3dgID0gU1MkRUUkQ29uc0ludCRjb25zdW1vKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJDb25zdW1vIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJDb25zQXJDb20iPg0KIyMjIyAzLjIuNC4gQ29uc3VtbyBhcmVhIGNvbcO6bg0KPC9kaXY+DQoNCkVzdGUgY29uc3VtbyBzZXLDoSByZXBhcnRpZG8gZGUgbWFuZXJhIHByb3BvcmNpb25hbCBhbCBjb25zdW1vIHJlcG9ydGFkbyBwb3IgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3MgZGUgYWN1ZXJkbyBhIGxhIHNpZ3VpZW50ZSB0YWJsYSAodG9kb3MgbG9zIHZhbG9yZXMgZW4gS3cpOg0KDQpgYGB7cn0NCmlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7DQogIGRhdGEudGFibGUoYEhhYml0YWNpw7NuYCA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBDb25zdW1vIENvbnRhZG9yYCA9IFNTJEVFJENvbnNJbnQkY29uc3VtbywNCiAgICAgICAgICAgYENvbnN1bW8gQXJlYSBDb23Dum5gID0gcm91bmQoU1MkRUUkQ29uc0ludCRjb25zX3Blcl9oYWIsMikpICU+JQ0KICBtdXRhdGUoYENvbnN1bW8gVG90YWwgcG9yIEhhYi5gID0gYENvbnN1bW8gQ29udGFkb3JgICsgYENvbnN1bW8gQXJlYSBDb23Dum5gKQ0KfSBlbHNlIHsNCiAgd3JpdGVMaW5lcygiTm8gaGF5IGRhdG9zIGRlIGxhIGZhY3R1cmEgdG9kYXbDrWEuXG4iKQ0KfQ0KYGBgDQoNCjxkaXYgaWQ9IlRvdGFsRUUiPg0KIyMjIDMuMy4gVG90YWwgYSBwYWdhciBwb3IgaGFiaXRhY2nDs24NCjwvZGl2Pg0KDQpgYGB7ciB0b3RhbEhhYkVlfQ0KaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgZGF0YS50YWJsZShIYWJpdGFjacOzbiA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBJbnRlZ3JhbnRlKHMpYCA9IENhc2EkYEludGVncmFudGUocylgLA0KICAgICAgICAgICBgQ29zdG8gRW5lcmfDrWFgID0gbGFiZWxfY3VycmVuY3kocHJlZml4ID0gIiQiLCBiaWcubWFyayA9ICIuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbC5tYXJrID0gIiwiKShTUyRFRSR0b3RhbF9FRSkpDQp9IGVsc2Ugew0KICB3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKQ0KfQ0KYGBgDQoNCiMjIyMjIyBbVGFibGEgZGUgY29udGVuaWRvc10oI1RhYmxhKQ0KKioqDQoNCjxkaXYgaWQ9Ik1vdmlzIj4NCiMjIDQuIE1vdmlzdGFyDQo8L2Rpdj4NCg0KTG9zIHNpZ3VpZW50ZXMgc29uIGxvcyBkYXRvcyBkZSBsYSBmYWN0dXJhIGRlIE1vdmlzdGFyIHBvciBjb25jZXB0byBkZWwgaW50ZXJuZXQ6DQoNCmBgYHtyIHBhZ29JbnRlcm5ldCwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKHBhc3RlMCgiRWwgdmFsb3IgdG90YWwgZGUgbGEgZmFjdHVyYSBkZWwgSW50ZXJuZXQgcG9yICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJFdlYiR2YWxvcl9wYWdvLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgIiwgY29uIHJlZmVyZW5jaWEgZGUgcGFnbyAiLCBTUyRXZWIkcmVmX3BhZ28sICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkV2ViJGZlY2hhX2xpbSwgIiVkIGRlICVCIGRlICVZIiksICIuXG5FcXVpdmFsZW50ZSBhICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJFdlYiRwZXJfUGVyLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgIiBwb3IgcGVyc29uYSAoIiwgc3VtKFNTJFdlYiR3ZWJDb24pLCIpLlxuIikpDQpgYGANCg0KIyMjIyMjIFtUYWJsYSBkZSBjb250ZW5pZG9zXSgjVGFibGEpDQoqKioNCg0KPGRpdiBpZD0ibGF0b1RvdGFsIj4NCiMjIDUuIFRvdGFsIFNlcnZpY2lvcyANCjwvZGl2Pg0KRWwgdG90YWwgZGUgbG9zIHNlcnZpY2lvcyBwb3IgaGFiaXRhY2nDs24gcGFyYSBlc3RlIG1lcyBzZSBkaXNjcmltaW5hIGVuIGxhIHNpZ3VpZW50ZSB0YWJsYToNCg0KYHIgZm9ybWF0KFN5cy5EYXRlKCksICIlYiAlWSIpYA0KDQpgYGB7ciBsYXRvVG90YWx9DQpkYXRhLnRhYmxlKEhhYml0YWNpw7NuID0gQ2FzYSRIYWJpdGFjacOzbiwNCiAgICAgICAgICAgQUFBID0gaWYgKCJBQUEiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgbGFiZWxfY3VycmVuY3kocHJlZml4PSIkIixiaWcubWFyaz0iLiIsZGVjaW1hbC5tYXJrPSIsIikoU1MkQUFBJHRvdGFsX0FBQSkNCiAgICAgICAgICAgfSwNCiAgICAgICAgICAgYEFpci1lYD0gaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICBsYWJlbF9jdXJyZW5jeShwcmVmaXg9IiQiLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKShTUyRFRSR0b3RhbF9FRSkNCiAgICAgICAgICAgfSwNCiAgICAgICAgICAgTW92aXN0YXIgPSBpZiAoIldlYiIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICBsYWJlbF9jdXJyZW5jeShwcmVmaXg9IiQiLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKShTUyRXZWIkdG90YWxfV2ViKQ0KICAgICAgICAgICB9LA0KICAgICAgICAgICBgVG90YWwgU2VydmljaW9zYCA9IGxhYmVsX2N1cnJlbmN5KHByZWZpeCA9ICIkIiwgYmlnLm1hcms9Ii4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWwubWFyaz0iLCIpKChpZigiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkQUFBJHRvdGFsX0FBQSB9IGVsc2UgeyAwIH0pICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkRUUkdG90YWxfRUUgfSBlbHNlIHsgMCB9KSArIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKCJXZWIiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkV2ViJHRvdGFsX1dlYiB9IGVsc2UgeyAwIH0pKQ0KKQ0KYGBgDQoNCg0KKioqDQpMYSBzaWd1aWVudGUgdGFibGEgY29ycmVzcG9uZGUgYSBsb3MgdmFsb3JlcyBkZWwgbWVzIHBhc2FkbzoNCg0KYGBge3J9DQp0YWJsYV9hbnRlcmlvciA8LSBwYXN0ZTAoIi4uL2lucHV0L0NvbnNfYW50LzIwMjVfIiwgbW9udGgoaG95IC0gMzApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAiX0Rpc3RfU1MucG5nIikNCmltYWdlbl9hY3R1YWwgPC0gaHRtbHRvb2xzOjppbWcoc3JjID0gdGFibGFfYW50ZXJpb3IpDQppbWFnZW5fYWN0dWFsDQpgYGANCg0KDQojIyMjIyMgW1RhYmxhIGRlIGNvbnRlbmlkb3NdKCNUYWJsYSkNCioqKg0KDQo=