Tabla de contenidos:

ā€ƒā€ƒā€¢ā€‚ Notas Preliminares
  1. Gases del Caribe
  2. AAA
    1. Datos de la factura
    2. Total pago por habitación
  3. Air-e
    1. Datos de la factura
    2. Datos para tener en cuenta
      1. Diferencias sobre datos de consumo
      2. Valor de corte
      3. Lectura de contadores internos
      4. Consumo area comĆŗn
    3. Total a pagar por habitación
  4. Movistar
  5. Total servicios

Notas Preliminares

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.


1. Gases del Caribe

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.

Tabla de contenidos

2. AAA

2.1. Datos de la factura

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

Tabla de contenidos

3. Air-e

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:

3.2.2. Valor de corte

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

Tabla de contenidos

4. Movistar

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).

Tabla de contenidos

5. Total Servicios

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:

Tabla de contenidos

LS0tDQp0aXRsZTogIjxoMT5EaXN0cmlidWNpw7NuIGRlbCBwYWdvIGRlIGxvcyBzZXJ2aWNpb3M8L2gxPiINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgY3NzOiAiLi4vc2NyaXB0cy9zdHlsZUVFLmNzcyINCi0tLQ0KDQo8IS0tIA0KUHJlbGltaW5hcmVzIChSRUFETUUpOiANCkNvbnZlcnTDrSBhIHByb3llY3RvIGVzdGUgZG9jdW1lbnRvIGVsIDIwMjUtMDctMDQsIGVuIGVsIGRpcmVjdG9yaW86DQogICAgIkM6L1VzZXJzL01vbm8vRG9jdW1lbnRzL0hhY2llbmRhICsvRGlzdF9TUy8iDQpFbiBlc3RlIGRpcmVjdG9yaW8gY3Jlw6kgMyBjYXJwZXRhczogaW5wdXQsIG91dHB1dCB5IHNjcmlwdHMuDQpFc3RlIGRvY3VtZW50byBlc3TDoSBlbiBsYSBjYXJwZXRhOiAib3V0cHV0Ig0KDQpTSUVNUFJFIFJFQ1VFUkRFOg0KLSBTQUxWQVIgRUwgRE9DVU1FTlRPIEhUTUwgZW4gZWwgZm9sZGVyIGRlIG91dHB1dC9IaXN0w7NyaWNvIGFudGVzIGRlIGNhbWJpYXJsby4NCi0gVG9tYXIgbGEgaW1hZ2VuIGRlIGxhIHRhYmxhIGNvbiBsYSBkaXN0cmlidWNpw7NuIGEgZmluIGRlIG1lcyBkZSB0b2RvcyBsb3Mgc2VydmljaW9zLg0KLSBBY3R1YWxpemFyIGxhIGluZm8gZGUgbG9zIHNlcnZpY2lvcyBlbiBlbCBhcmNoaXZvICJpbnB1dC9DYXNhX1NTLlIiDQotIFVuYSB2ZXogYWN0dWFsaXphZG8gZXNlIGFyY2hpdm8sIGNvcnJlciBUT0RPUyBsb3MgY2h1bmtzIGRlc3B1w6lzIGRlIGVzdGUgY29tZW50YXJpbyBwYXJhIGV2aXRhciBlcnJvcmVzLg0KLS0+DQoNCmBgYHtyIGluaWNpb19kb2MsIGluY2x1ZGU9RkFMU0V9DQojIE9wY2lvbmVzIGdlbmVyYWxlcyBkZSBsb3MgY2h1bmtzOg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChjb21tZW50ID0gIiAiKQ0KDQojIEZ1bmNpw7NuIHBhcmEgY2FyZ2FyIGxhcyBsaWJyZXLDrWFzOg0Kc291cmNlKCIuLi9zY3JpcHRzL2xvYWRfbGlicy5SIikNCmBgYA0KDQpgYGB7ciB2ZWN0b3JlcywgaW5jbHVkZT1GQUxTRX0NCiMgbGlzdGFzIENhc2EgeSBTUzoNCnNvdXJjZSgiLi4vaW5wdXQvQ2FzYV9TUy5SIikNCmBgYA0KDQo8ZGl2IGlkPSJUYWJsYSI+DQojIyMjIFRhYmxhIGRlIGNvbnRlbmlkb3M6DQo8L2Rpdj4NCiMjIyMjIyAmZW1zcDsmZW1zcDvigKImZW5zcDsgW05vdGFzIFByZWxpbWluYXJlc10oI05vdGFzKQ0KDQo8b2w+DQogIDxsaT4gW0dhc2VzIGRlbCBDYXJpYmVdKCNHYXMpIDwvbGk+DQogIDxsaT4gW0FBQV0oI0FBQSkgDQogICAgPG9sPg0KICAgICAgPGxpPiBbRGF0b3MgZGUgbGEgZmFjdHVyYV0oI2ZhY3RBZ3VhKSA8L2xpPg0KICAgICAgPGxpPiBbVG90YWwgcGFnbyBwb3IgaGFiaXRhY2nDs25dKCN0b3RIYWJBKSA8L2xpPg0KICAgIDwvb2w+IDwvbGk+DQogIDxsaT4gW0Fpci1lXSgjRUUpDQogICAgPG9sPg0KICAgICAgPGxpPiBbRGF0b3MgZGUgbGEgZmFjdHVyYV0oI0ZhY3RFRSkgPC9saT4NCiAgICAgIDxsaT4gW0RhdG9zIHBhcmEgdGVuZXIgZW4gY3VlbnRhXSgjRUVuQ3VlbnRhKSANCiAgICAgICAgPG9sPg0KICAgICAgICAgIDxsaT4gW0RpZmVyZW5jaWFzIHNvYnJlIGRhdG9zIGRlIGNvbnN1bW9dKCNFRW5DdWVudGEpIDwvbGk+DQogICAgICAgICAgPGxpPiBbVmFsb3IgZGUgY29ydGVdKCNWYWxFRSkgPC9saT4NCiAgICAgICAgICA8bGk+IFtMZWN0dXJhIGRlIGNvbnRhZG9yZXMgaW50ZXJub3NdKCNMZWN0Q29udHMpIDwvbGk+DQogICAgICAgICAgPGxpPiBbQ29uc3VtbyBhcmVhIGNvbcO6bl0oI0NvbnNBckNvbSkNCiAgICAgICAgPC9vbD4gPC9saT4NCiAgICAgIDxsaT4gW1RvdGFsIGEgcGFnYXIgcG9yIGhhYml0YWNpw7NuXSgjVG90YWxFRSkgPC9saT4NCiAgICA8L29sPiA8L2xpPg0KICA8bGk+IFtNb3Zpc3Rhcl0oI01vdmlzKSA8L2xpPg0KICA8bGk+IFtUb3RhbCBzZXJ2aWNpb3NdKCNsYXRvVG90YWwpDQo8L29sPg0KDQoqKioNCg0KPGRpdiBpZD0iTm90YXMiPg0KIyMgTm90YXMgUHJlbGltaW5hcmVzDQo8L2Rpdj4NCg0KYGBge3Igbm90YXNfcHJlMSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKG5vdGFfcHJlXzEpDQp3cml0ZUxpbmVzKG5vdGFfcHJlXzIpDQpgYGANCg0KDQoqKioNCg0KPGRpdiBpZD0iR2FzIj4NCiMjIDEuIEdhc2VzIGRlbCBDYXJpYmUNCjwvZGl2Pg0KDQpEYXRvcyBkZSBsYSBmYWN0dXJhIGRlbCBnYXM6DQoNCmBgYHtyIGZhY3RHYXMsIHJlc3VsdHM9J2FzaXMnfQ0KaWYgKCJHYXMiICVpbiUgU1MkQWN0dWFsKXsNCiAgd3JpdGVMaW5lcyhwYXN0ZTAoIkxhIGZhY3R1cmEgZGUgbGEgY2FzYSBncmFuZGUgKGNvbnRyYXRvIE5vLiIsDQogICAgICAgICAgICAgICAgICBTUyRHYXMkTm9fY29udHJhdG8sDQogICAgICAgICAgICAgICAgICAiKSwgcG9yIHVuIHZhbG9yIHRvdGFsIGRlICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEdhcyR0b3RhbF9hX3BhZ2FyLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgaWYgKFNTJEdhcyRzYWxkb19hbnRlcmlvciAhPSAwKXsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgY29ycmVzcG9uZGllbnRlIGEgbG9zIHBlcsOtb2RvcyAiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdChteShTUyRHYXMkcGVyaW9kbykgLSBkYXlzKDMwKSwgIiViIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiIHkgIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdChteShTUyRHYXMkcGVyaW9kbyksICIlYiBkZSAlWSIpKQ0KICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgY29ycmVzcG9uZGllbnRlIGFsIHBlcsOtb2RvICIsIFNTJEdhcyRwZXJpb2RvKQ0KICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkR2FzJGZlY2hhLCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICAgICAgICAgICIuXG4iLCAiXG4iLA0KICAgICAgICAgICAiTk9UQTogRGVsIHZhbG9yIHRvdGFsIGRlIGVzdGUgbWVzIG1lIGNvcnJlc3BvbmRlIHBhZ2FyOiAkIiwNCiAgICAgICAgICAgICAgICAgIGZvcm1hdCgxMDAgKiByb3VuZCgoU1MkR2FzJGNhcmdvX2FuZHJlcykgLyAxMDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgIGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKSwgIi5cbiIpKQ0KfSBlbHNlIHsNCiAgd3JpdGVMaW5lcygiRmFjdHVyYSBubyBkaXNwb25pYmxlIHRvZGF2w61hLiIpDQp9DQpgYGANCg0KIyMjIyMjIFtUYWJsYSBkZSBjb250ZW5pZG9zXSgjVGFibGEpDQoqKioNCiANCjxkaXYgaWQ9IkFBQSI+DQojIyAyLiBBQUENCjwvZGl2Pg0KPGRpdiBpZD0iZmFjdEFndWEiPg0KIyMjIDIuMS4gRGF0b3MgZGUgbGEgZmFjdHVyYQ0KPC9kaXY+DQoNCkxvcyBzaWd1aWVudGVzIHNvbiBsb3MgZGF0b3MgdG9tYWRvcyBkZSBsYSBmYWN0dXJhIGRlIGVzdGUgbWVzOg0KDQpgYGB7ciBmYWN0QWd1YSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgIHBhc3RlMCgiTGEgZmFjdHVyYSBkZWwgYWd1YSAocMOzbGl6YSBOby4iLCBTUyRBQUEkTm9fcG9saXphLA0KICAgICAgICAgICAiKSwgcG9yIHVuIHZhbG9yIHRvdGFsIGRlICQiLA0KICAgICAgICAgICBmb3JtYXQoU1MkQUFBJHRvdGFsX3BhZ29fYWFhLCBiaWcubWFyayA9ICIuIiwNCiAgICAgICAgICAgICAgICAgIGRlY2ltYWwubWFyayA9ICIsIiksDQogICAgICAgICAgICIsIGNvcnJlc3BvbmRpZW50ZSBhbCBwZXLDrW9kbzogIiwgU1MkQUFBJHBlcmlvZG8sDQogICAgICAgICAgICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgIGZvcm1hdCh5bWQoU1MkQUFBJGZlY2hhKSwgIiVkIGRlICVCIGRlICVZIiksDQogICAgICAgICAgICIuXG5cblNlZ8O6biBsYSBmYWN0dXJhLCBsYSBmZWNoYSBkZSBsYSBsZWN0dXJhIGFudGVyaW9yIGZ1ZSBlbCAiLA0KICAgICAgICAgICBmb3JtYXQoU1MkQUFBJGZlY2hhX2xlY3RfYW50LCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICAgIiB5IGxhIGZlY2hhIGRlIGxhIGxlY3R1cmEgYWN0dWFsIGVsICIsDQogICAgICAgICAgIGZvcm1hdChTUyRBQUEkZmVjaGFfbGVjdF9hY3QsICIlZCBkZSAlQiBkZSAlWSIpLCAiLlxuIikNCiAgfSBlbHNlIHsNCiAgICAiVG9kYXbDrWEgbm8gaGF5IGZhY3R1cmEgZGlzcG9uaWJsZSBwYXJhIGVzdGUgcGVyw61vZG8uIg0KfSkNCmBgYA0KDQo8ZGl2IGlkPSJ0b3RIYWJBIj4NCiMjIyAyLjIuIFRvdGFsIHBhZ28gcG9yIGhhYml0YWNpw7NuDQo8L2Rpdj4NCg0KYGBge3IgcGFnb0FhYX0NCmlmICgiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICBkYXRhLnRhYmxlKEhhYml0YWNpw7NuID0gQ2FzYSRIYWJpdGFjacOzbiwgYEludGVncmFudGUocylgID0gQ2FzYSRgSW50ZWdyYW50ZShzKWAsDQogICAgICAgICAgICAgT2N1cGFjacOzbiA9IGxhYmVsX3BlcmNlbnQoYWNjdXJhY3kgPSAwLjAxKShDYXNhJE9jdXBhKSwNCiAgICAgICAgICAgICBgVG90YWwgQUFBYCA9IGxhYmVsX2N1cnJlbmN5KHByZWZpeCA9ICIkIiwgYmlnLm1hcmsgPSAiLiIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsLm1hcmsgPSAiLCIpKFNTJEFBQSR0b3RhbF9BQUEpKQ0KfSBlbHNlIHsNCiAgICB3cml0ZUxpbmVzKCJMYSBmYWN0dXJhIGRlIGVzdGUgcGVyw61vZG8gbm8gZXN0w6EgZGlzcG9uaWJsZSB0b2RhdsOtYS4iKQ0KfQ0KYGBgDQoNCiMjIyMjIyBbVGFibGEgZGUgY29udGVuaWRvc10oI1RhYmxhKQ0KKioqDQoNCjxkaXYgaWQ9IkVFIj4NCiMjIDMuIEFpci1lDQo8L2Rpdj4NCg0KDQo8ZGl2IGlkPSJGYWN0RUUiPg0KIyMjIDMuMS4gRGF0b3MgZGUgbGEgZmFjdHVyYToNCjwvZGl2Pg0KDQpgYGB7ciByZXBvcnRlRmFjdHVyYSwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7cGFzdGUwKCJQYXJhIGVsIHBlcsOtb2RvICIsIFNTJEVFJHBlcmlvZG9FRSwgDQogICAgICAgICAgICAgICAgICAiLCBlbCB2YWxvciB0b3RhbCBhIHBhZ2FyIHBvciBsYSBmYWN0dXJhIGRlIGVuZXJnw61hIGVsw6ljdHJpY2EgZGVsIE5JQzogIiwNCiAgICAgICAgICAgICAgICAgIFNTJEVFJE5JQywgIiBlcyBkZSAkIiwNCiAgICAgICAgICAgICAgICAgIGZvcm1hdChTUyRFRSR2cl9mYWN0LCBiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiKSwNCiAgICAgICAgICAgICAgICAgICIuXG5Fc3RlIHZhbG9yIGNvcnJlc3BvbmRlIGEgdW4gY29uc3VtbyBkZSAiLCBTUyRFRSRrd2hfZiwgIiBLd3MgZW4gIiwNCiAgICAgICAgICAgICAgICAgIFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50LCAiIGTDrWFzICIsDQogICAgICAgICAgICAgICAgICBpZiAoU1MkRUUkZl9hbnQpIHsgcGFzdGUwKCJkZXNkZSBlbCAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkRUUkZl9hbnQrMSwgZm9ybWF0ID0gIiVkIGRlICVCIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIikgfSwNCiAgICAgICAgICAgICAgICAgIGlmIChTUyRFRSRmX2xlY3QpIHsgcGFzdGUwKCJoYXN0YSBlbCAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEVFJGZfbGVjdCwgZm9ybWF0ID0gIiVkIGRlICVCIGRlICVZIikpDQogICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAiLCBwZXJvIHNpbiBsZWN0dXJhIGFjdHVhbCAoY29uc3VtbyBlc3RpbWFkbykiIA0KICAgICAgICAgICAgICAgICAgfSwgIi5cblxuTGEgZmFjdHVyYSB0aWVuZSBmZWNoYSBkZSB2ZW5jaW1pZW50byBwYXJhIHBhZ2FyIGhhc3RhIGVsICIsIA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJEVFJGZfdmVuYywgZm9ybWF0ID0gIiVkIGRlICVCIGRlICVZIiksIi5cbiIpDQogIH0gZWxzZSB7DQogICAgIkxhIGZhY3R1cmEgZGVsIHBlcsOtb2RvIGFjdHVhbCB0b2RhdsOtYSBubyBlc3TDoSBkaXNwb25pYmxlLlxuIg0KICB9KQ0KYGBgDQoNCjxkaXYgaWQ9IkVFbkN1ZW50YSI+DQojIyMgMy4yLiBEYXRvcyBwYXJhIHRlbmVyIGVuIGN1ZW50YQ0KPC9kaXY+DQoNCiMjIyMgMy4yLjEuIERpZmVyZW5jaWFzIHNvYnJlIGRhdG9zIGRlIGNvbnN1bW8NCg0KRW50cmUgbG9zIGRhdG9zIHF1ZSByZXBvcnRhIGFpci1lIGVuIHN1cyBsZWN0dXJhcyB5IGxvcyByZWNvbGVjdGFkb3MgZGUgbGEgaW5mb3JtYWNpw7NuIHF1ZSBzdW1pbmlzdHJhbiBsb3MgY29udGFkb3JlcyBhcGFyZWNlbiBkaWZlcmVuY2lhcyB0YW50byBlbiBlbCBjb25zdW1vLCBjb21vIGVuIGxhcyBmZWNoYXMgZGUgbG9zIHJlcG9ydGVzLiBMYSBkaWZlcmVuY2lhIGVuIGVsIGNvbnN1bW8gbm8gZGViZSBzZXIgbXV5IGFsdGEgeSBzZSBkZWJlIHByaW5jaXBhbG1lbnRlIGEgbGEgc2VjY2nDs24gZGUgbGEgY2FzYSBlbiBsYSBjdWFsIG5vIHNlIHJlY29sZWN0YW4gbG9zIGRhdG9zLCBwb3IgZXN0YSByYXrDs24gbG9zIGRhdG9zIGRlIGFpci1lIHZhbiBhIGVzdGFyIG1hcyBhbHRvcyBxdWUgbG9zIHJlcG9ydGFkb3MgZW4gZWwgY29uc3VtbyBpbnRlcm5vLiANCg0KYGBge3IgY29uc0ludCwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKGlmICgiQ0kiICVpbiUgU1MkQWN0dWFsKSB7DQogIHBhc3RlMCgiTGEgc3VtYSB0b3RhbCBkZSBsb3MgY29uc3Vtb3MgaW50ZXJub3MgcGFyYSBlc3RlIHBlcsOtb2RvIGVzIGRlICIsDQogICAgICAgICBzdW0oU1MkRUUkQ29uc0ludCRjb25zdW1vKSwgaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICAgICAgICAgcGFzdGUwKCIgS3cuIFF1ZWRhbmRvIHVuIGNvbnN1bW8gYSByZXBhcnRpciBkZSAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkRUUka3doX2YgLSBzdW0oU1MkRUUkQ29uc0ludCRjb25zdW1vKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgS3cgcmVzcGVjdG8gYWwgY29uc3VtbyByZXBvcnRhZG8gcG9yIGFpci1lLiIpDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IiBLdy5cbiJ9KQ0KICB9IGVsc2UgeyJDb25zdW1vIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuIn0pDQpgYGANCg0KDQpMYSBkaWZlcmVuY2lhIGVudHJlIGxhcyBmZWNoYXMgKHUgaG9yYXMpIGVuIHF1ZSBzZSByZWFsaXphbiBsYXMgbGVjdHVyYXMgZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3MgeSBsYSBkZWwgY29udGFkb3IgZXh0ZXJubyBwb3IgcGFydGUgZGUgYWlyLWUsIGFmZWN0YSBlc3RlIHRvdGFsIGEgcmVwYXJ0aXIgZGUgbWFuZXJhIGRpcmVjdGE6IG1pZW50cmFzIG1heW9yIHNlYSBsYSBkaWZlcmVuY2lhIGVudHJlIGVsIHRpZW1wbyBkZSBsYXMgbGVjdHVyYXMsIG1heW9yIHNlcsOhIGxhIGRpZmVyZW5jaWEgZW4gZWwgY29uc3VtbyBhIHJlcGFydGlyLg0KDQpgYGB7ciBsZWN0dXJhX2NvbnRfaW50LCByZXN1bHRzPSdhc2lzJ30NCndyaXRlTGluZXMoaWYgKCJDSSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgcGFzdGUwKCJMYSDDumx0aW1hIGxlY3R1cmEgZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3Mgc2UgcmVhbGl6w7MgZWwgIiwNCiAgICAgICAgIGZvcm1hdChTUyRFRSRDb25zSW50JGZlY2hhX2xlY3RfYWN0dWFsLCAiJWQgZGUgJUIgZGUgJVkiKSwNCiAgICAgICAgICIgeSBsYSBsZWN0dXJhIGFudGVyaW9yIHNlIGhpem8gZWwgIiwNCiAgICAgICAgIGZvcm1hdChTUyRFRSRDb25zSW50JGZlY2hhX2xlY3RfYW50ZXIsICIlZCBkZSAlQiBkZSAlWSIpLA0KICAgICAgICAgIi5cbkVuIGN1YW50byBhIEFpci1lLCAiLCBpZiAoIkVFIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgICAgICAgICBwYXN0ZTAoImxhIGxlY3R1cmEgYWN0dWFsIGxhIHJlYWxpesOzIGVsICIsIGZvcm1hdChTUyRFRSRmX2xlY3QsICIlZCBkZSAlQiBkZSAlWSIpLA0KICAgICAgICAgICAiIHkgbGEgbGVjdHVyYSBhbnRlcmlvciBlbCAiLCBmb3JtYXQoU1MkRUUkZl9hbnQsICIlZCBkZSAlQiBkZSAlWSIpLCAiLlxuIikNCiAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICJsYSBmYWN0dXJhIG5vIGVzdMOhIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iDQogICAgICAgICB9KQ0KICB9IGVsc2Ugew0KICAgICJObyBoYXkgZGF0b3MgZGlzcG9uaWJsZXMgdG9kYXbDrWEuXG4iDQogIH0pDQpgYGANCg0KTGEgZGlmZXJlbmNpYSBkZSBsb3MgY29uc3Vtb3MgKGNvbHVtbmEgIkRpZmVyZW5jaWEiKSBzZSByZXBhcnRpcsOhIHByb3BvcmNpb25hbG1lbnRlIGFsIGNvbnN1bW8gZGUgY2FkYSBoYWJpdGFjacOzbi4gTGEgc2lndWllbnRlIHRhYmxhIG11ZXN0cmEgZXN0YXMgZGlmZXJlbmNpYXMgcGFyYSBlc3RlIG1lczoNCg0KYGBge3IgRGlmZXJlbmNpYUxlY3R1cmFzfQ0KaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgdGliYmxlKGBGYWN0dXJhIGFpci1lYCA9IHBhc3RlKFNTJEVFJGt3aF9mLCJLdyIpLA0KICAgICAgIGBMZWN0dXJhIGNvbnRhZG9yZXNgID0gcGFzdGUocm91bmQoc3VtKFNTJEVFJENvbnNJbnQkbGVjdF9maW4pIC0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW0oU1MkRUUkQ29uc0ludCRsZWN0X2luaSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHM9MiksIkt3IiksDQogICAgICAgRGlmZXJlbmNpYSA9IHBhc3RlMChhYnMocm91bmQoU1MkRUUka3doX2YgLSAoc3VtKFNTJEVFJENvbnNJbnQkbGVjdF9maW4pIC0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bShTUyRFRSRDb25zSW50JGxlY3RfaW5pKSksIGRpZ2l0cyA9IDIpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgS3ciKSwNCiAgICAgICBgTsO6bWVybyBkZSBkw61hcyBmYWN0dXJhYCA9IHBhc3RlMChTUyRFRSRmX2xlY3QgLSBTUyRFRSRmX2FudCwiIGTDrWFzIiksDQogICAgICAgYE7Dum1lcm8gZGUgZMOtYXMgaW50ZXJub2AgPSBwYXN0ZTAoU1MkRUUkQ29uc0ludCRmZWNoYV9sZWN0X2FjdHVhbCAtIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTJEVFJENvbnNJbnQkZmVjaGFfbGVjdF9hbnRlciwiIGTDrWFzIiksDQogICAgICAgKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJWYWxFRSI+DQojIyMjIDMuMi4yLiBWYWxvciBkZSBjb3J0ZQ0KPC9kaXY+DQpFbCB2YWxvciBkZSBjb3J0ZSBwYXJhIGNvbnRyb2wgc2UgZXN0YWJsZWNpw7MgZW4gMTAgS3cgcG9yIGTDrWEuIEVzdGUgdmFsb3Igc2UgZXN0YWJsZWNpw7MgYmFzYWRvIGVuIGVsIHByaW1lciByZXBvcnRlIGRlIGNvbnN1bW8gKHNlcHRpZW1icmUpIGRlc3B1w6lzIGRlbCBjYW1iaW8gZGVsIGNhYmxlYWRvIHJlYWxpemFkbyBlbiBhZ29zdG8gZGUgMjAyNS4gRXN0ZSB2YWxvciBwZXJtaXRlIG9ic2VydmFyIGxhcyB0ZW5kZW5jaWFzIGdlbmVyYWxlcyBlbiBlbCBjb25zdW1vIG1lcyBhIG1lczogYXVtZW50b3MgbyBkaXNtaW51Y2lvbmVzIGVuIGVsIHByb21lZGlvIGRlIGNvbnN1bW8gZGlhcmlvLiANCg0KYGBge3IgQ2FtYmlvUGF0cm9uQ29uc3VtbywgcmVzdWx0cz0nYXNpcyd9DQppZiAoIkVFIiAlaW4lIFNTJEFjdHVhbCkgew0KICB3cml0ZUxpbmVzKHBhc3RlMCgiRXN0ZSBtZXMgaGVtb3MgIixpZiAocm91bmQoMTAgLSBTUyRFRSRrd2hfZi9hcy5udW1lcmljKFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50KSwgZGlnaXRzPTMpIDwwKSB7ImF1bWVudGFkbyAifSBlbHNlIHsiZGlzbWludWlkbyAifSwiZWwgcHJvbWVkaW8gZGUgY29uc3VtbyBkaWFyaW8gZW4gIixhYnMocm91bmQoMTAgLSBTUyRFRSRrd2hfZi9hcy5udW1lcmljKFNTJEVFJGZfbGVjdCAtIFNTJEVFJGZfYW50KSwgZGlnaXRzPTMpKSwiIEt3IGNvbiByZXNwZWN0byBhbCBjb3J0ZS5cbiIpKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJMZWN0Q29udHMiPg0KIyMjIyAzLjIuMy4gTGVjdHVyYSBkZSBjb250YWRvcmVzIGludGVybm9zDQo8L2Rpdj4NCkVsIGFyZWEgY29tw7puLCBkZXNkZSBsYSBjb2NpbmEgaGFzdGEgbGEgbGF2YW5kZXLDrWEsIG5vIGhhIHF1ZWRhZG8gY29iaWphZGEgYmFqbyBuaW5nw7puIGNvbnRhZG9yIHBvciBsbyBxdWUgbGEgc3VtYXRvcmlhIGRlIGxvcyB2YWxvcmVzIGRlIGNvbnN1bW8gZGUgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3Mgbm9ybWFsbWVudGUgc2Vyw6EgbWVub3IgYWwgY29uc3VtbyB0b3RhbCByZXBvcnRhZG8gcG9yIGFpci1lLCBoYWNpw6luZG9zZSBuZWNlc2FyaWEgbGEgcmVwYXJ0aWNpw7NuIGRlIGVzdGEgZGlmZXJlbmNpYS4gRXN0YSByZXBhcnRpY2nDs24gc2UgaGFyw6EgZGUgbWFuZXJhIHByb3BvcmNpb25hbCBhbCBjb25zdW1vIG9idGVuaWRvIGEgdHJhdsOpcyBkZSBsb3MgY29udGFkb3Jlcy4NCg0KYGBge3IgY29uc3Vtb19pbnRlcm5vfQ0KaWYgKCJDSSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgZGF0YS50YWJsZShIYWJpdGFjacOzbiA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBDb250YWRvciAjYCA9IFNTJEVFJENvbnNJbnQkY29udGFkb3IsDQogICAgICAgICAgIGBMZWN0dXJhIGZpbmFsYCA9IFNTJEVFJENvbnNJbnQkbGVjdF9maW4sDQogICAgICAgICAgIGBMZWN0dXJhIGluaWNpYWxgID0gU1MkRUUkQ29uc0ludCRsZWN0X2luaSwNCiAgICAgICAgICAgYENvbnN1bW8gS3dgID0gU1MkRUUkQ29uc0ludCRjb25zdW1vKQ0KfSBlbHNlIHt3cml0ZUxpbmVzKCJDb25zdW1vIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKX0NCmBgYA0KDQo8ZGl2IGlkPSJDb25zQXJDb20iPg0KIyMjIyAzLjIuNC4gQ29uc3VtbyBhcmVhIGNvbcO6bg0KPC9kaXY+DQoNCkVzdGUgY29uc3VtbyBzZXLDoSByZXBhcnRpZG8gZGUgbWFuZXJhIHByb3BvcmNpb25hbCBhbCBjb25zdW1vIHJlcG9ydGFkbyBwb3IgbG9zIGNvbnRhZG9yZXMgaW50ZXJub3MgZGUgYWN1ZXJkbyBhIGxhIHNpZ3VpZW50ZSB0YWJsYSAodG9kb3MgbG9zIHZhbG9yZXMgZW4gS3cpOg0KDQpgYGB7cn0NCmlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7DQogIGRhdGEudGFibGUoYEhhYml0YWNpw7NuYCA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBDb25zdW1vIENvbnRhZG9yYCA9IFNTJEVFJENvbnNJbnQkY29uc3VtbywNCiAgICAgICAgICAgYENvbnN1bW8gQXJlYSBDb23Dum5gID0gcm91bmQoU1MkRUUkQ29uc0ludCRjb25zX3Blcl9oYWIsMikpICU+JQ0KICBtdXRhdGUoYENvbnN1bW8gVG90YWwgcG9yIEhhYi5gID0gYENvbnN1bW8gQ29udGFkb3JgICsgYENvbnN1bW8gQXJlYSBDb23Dum5gKQ0KfSBlbHNlIHsNCiAgd3JpdGVMaW5lcygiTm8gaGF5IGRhdG9zIGRlIGxhIGZhY3R1cmEgdG9kYXbDrWEuXG4iKQ0KfQ0KYGBgDQoNCjxkaXYgaWQ9IlRvdGFsRUUiPg0KIyMjIDMuMy4gVG90YWwgYSBwYWdhciBwb3IgaGFiaXRhY2nDs24NCjwvZGl2Pg0KDQpgYGB7ciB0b3RhbEhhYkVlfQ0KaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgZGF0YS50YWJsZShIYWJpdGFjacOzbiA9IENhc2EkSGFiaXRhY2nDs24sDQogICAgICAgICAgIGBJbnRlZ3JhbnRlKHMpYCA9IENhc2EkYEludGVncmFudGUocylgLA0KICAgICAgICAgICBgQ29zdG8gRW5lcmfDrWFgID0gbGFiZWxfY3VycmVuY3kocHJlZml4ID0gIiQiLCBiaWcubWFyayA9ICIuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbC5tYXJrID0gIiwiKShTUyRFRSR0b3RhbF9FRSkpDQp9IGVsc2Ugew0KICB3cml0ZUxpbmVzKCJGYWN0dXJhIG5vIGRpc3BvbmlibGUgdG9kYXbDrWEuXG4iKQ0KfQ0KYGBgDQoNCiMjIyMjIyBbVGFibGEgZGUgY29udGVuaWRvc10oI1RhYmxhKQ0KKioqDQoNCjxkaXYgaWQ9Ik1vdmlzIj4NCiMjIDQuIE1vdmlzdGFyDQo8L2Rpdj4NCg0KTG9zIHNpZ3VpZW50ZXMgc29uIGxvcyBkYXRvcyBkZSBsYSBmYWN0dXJhIGRlIE1vdmlzdGFyIHBvciBjb25jZXB0byBkZWwgaW50ZXJuZXQ6DQoNCmBgYHtyIHBhZ29JbnRlcm5ldCwgcmVzdWx0cz0nYXNpcyd9DQp3cml0ZUxpbmVzKHBhc3RlMCgiRWwgdmFsb3IgdG90YWwgZGUgbGEgZmFjdHVyYSBkZWwgSW50ZXJuZXQgcG9yICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJFdlYiR2YWxvcl9wYWdvLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgIiwgY29uIHJlZmVyZW5jaWEgZGUgcGFnbyAiLCBTUyRXZWIkcmVmX3BhZ28sICIsIGVzdMOhIHBhcmEgcGFnYXIgYW50ZXMgZGVsICIsDQogICAgICAgICAgICAgICAgICBmb3JtYXQoU1MkV2ViJGZlY2hhX2xpbSwgIiVkIGRlICVCIGRlICVZIiksICIuXG5FcXVpdmFsZW50ZSBhICQiLA0KICAgICAgICAgICAgICAgICAgZm9ybWF0KFNTJFdlYiRwZXJfUGVyLCBiaWcubWFyaz0iLiIsIGRlY2ltYWwubWFyaz0iLCIpLA0KICAgICAgICAgICAgICAgICAgIiBwb3IgcGVyc29uYSAoIiwgc3VtKFNTJFdlYiR3ZWJDb24pLCIpLlxuIikpDQpgYGANCg0KIyMjIyMjIFtUYWJsYSBkZSBjb250ZW5pZG9zXSgjVGFibGEpDQoqKioNCg0KPGRpdiBpZD0ibGF0b1RvdGFsIj4NCiMjIDUuIFRvdGFsIFNlcnZpY2lvcyANCjwvZGl2Pg0KRWwgdG90YWwgZGUgbG9zIHNlcnZpY2lvcyBwb3IgaGFiaXRhY2nDs24gcGFyYSBlc3RlIG1lcyBzZSBkaXNjcmltaW5hIGVuIGxhIHNpZ3VpZW50ZSB0YWJsYToNCg0KYHIgZm9ybWF0KFN5cy5EYXRlKCksICIlYiAlWSIpYA0KDQpgYGB7ciBsYXRvVG90YWx9DQpkYXRhLnRhYmxlKEhhYml0YWNpw7NuID0gQ2FzYSRIYWJpdGFjacOzbiwNCiAgICAgICAgICAgQUFBID0gaWYgKCJBQUEiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgbGFiZWxfY3VycmVuY3kocHJlZml4PSIkIixiaWcubWFyaz0iLiIsZGVjaW1hbC5tYXJrPSIsIikoU1MkQUFBJHRvdGFsX0FBQSkNCiAgICAgICAgICAgfSwNCiAgICAgICAgICAgYEFpci1lYD0gaWYgKCJFRSIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICBsYWJlbF9jdXJyZW5jeShwcmVmaXg9IiQiLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKShTUyRFRSR0b3RhbF9FRSkNCiAgICAgICAgICAgfSwNCiAgICAgICAgICAgTW92aXN0YXIgPSBpZiAoIldlYiIgJWluJSBTUyRBY3R1YWwpIHsNCiAgICAgICAgICAgICBsYWJlbF9jdXJyZW5jeShwcmVmaXg9IiQiLGJpZy5tYXJrPSIuIixkZWNpbWFsLm1hcms9IiwiKShTUyRXZWIkdG90YWxfV2ViKQ0KICAgICAgICAgICB9LA0KICAgICAgICAgICBgVG90YWwgU2VydmljaW9zYCA9IGxhYmVsX2N1cnJlbmN5KHByZWZpeCA9ICIkIiwgYmlnLm1hcms9Ii4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWwubWFyaz0iLCIpKChpZigiQUFBIiAlaW4lIFNTJEFjdHVhbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkQUFBJHRvdGFsX0FBQSB9IGVsc2UgeyAwIH0pICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmICgiRUUiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkRUUkdG90YWxfRUUgfSBlbHNlIHsgMCB9KSArIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKCJXZWIiICVpbiUgU1MkQWN0dWFsKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1MkV2ViJHRvdGFsX1dlYiB9IGVsc2UgeyAwIH0pKQ0KKQ0KYGBgDQoNCg0KKioqDQpMYSBzaWd1aWVudGUgdGFibGEgY29ycmVzcG9uZGUgYSBsb3MgdmFsb3JlcyBkZWwgbWVzIHBhc2FkbzoNCg0KYGBge3J9DQp0YWJsYV9hbnRlcmlvciA8LSBwYXN0ZTAoIi4uL2lucHV0L0NvbnNfYW50LzIwMjVfIiwgbW9udGgoaG95IC0gMzApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAiX0Rpc3RfU1MucG5nIikNCmltYWdlbl9hY3R1YWwgPC0gaHRtbHRvb2xzOjppbWcoc3JjID0gdGFibGFfYW50ZXJpb3IpDQppbWFnZW5fYWN0dWFsDQpgYGANCg0KDQojIyMjIyMgW1RhYmxhIGRlIGNvbnRlbmlkb3NdKCNUYWJsYSkNCioqKg0KDQo=