From 899abc23957087d31cd58255a34d3961333e723d Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Fri, 7 Jun 2024 23:56:49 +0100 Subject: [PATCH] [IMP] pms_l10n_es: new mandatory institution to send reservations & guest info communications --- pms/models/pms_checkin_partner.py | 28 +- pms/models/pms_reservation.py | 3 +- pms_l10n_es/__manifest__.py | 3 + pms_l10n_es/data/cron_jobs.xml | 77 + pms_l10n_es/models/__init__.py | 2 + pms_l10n_es/models/pms_checkin_partner.py | 31 +- pms_l10n_es/models/pms_property.py | 10 + pms_l10n_es/models/pms_reservation.py | 88 + pms_l10n_es/models/pms_ses_communication.py | 86 + pms_l10n_es/security/ir.model.access.csv | 1 + .../pms.ine.zip.municipality.ine.relation.csv | 14609 ++++++++++++++++ pms_l10n_es/tests/__init__.py | 1 + .../tests/test_pms_ses_communication.py | 285 + pms_l10n_es/tests/test_wizard_ine.py | 91 +- .../tests/test_wizard_traveller_report.py | 12 + pms_l10n_es/views/pms_property_views.xml | 6 + pms_l10n_es/views/pms_reservation_views.xml | 34 + .../views/pms_ses_communication_views.xml | 90 + pms_l10n_es/wizards/traveller_report.py | 694 +- pms_l10n_es/wizards/traveller_report.xml | 58 +- pms_l10n_es/wizards/wizard_ine.py | 44 +- 21 files changed, 16162 insertions(+), 91 deletions(-) create mode 100644 pms_l10n_es/models/pms_reservation.py create mode 100644 pms_l10n_es/models/pms_ses_communication.py create mode 100644 pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv create mode 100644 pms_l10n_es/tests/test_pms_ses_communication.py create mode 100644 pms_l10n_es/views/pms_reservation_views.xml create mode 100644 pms_l10n_es/views/pms_ses_communication_views.xml diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index f72e63603..8c394e817 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -438,7 +438,7 @@ class PmsCheckinPartner(models.Model): elif not record.residence_state_id: record.residence_state_id = False - @api.depends(lambda self: self._checkin_manual_fields(depends=True)) + @api.depends(lambda self: self._get_depends_state_fields()) def _compute_state(self): for record in self: if not record.state: @@ -454,7 +454,8 @@ class PmsCheckinPartner(models.Model): elif any( not getattr(record, field) for field in record._checkin_mandatory_fields( - country=record.document_country_id + residence_country=record.residence_country_id, + document_type=record.document_type, ) ): record.state = "draft" @@ -783,7 +784,7 @@ class PmsCheckinPartner(models.Model): return res @api.model - def _checkin_manual_fields(self, country=False, depends=False): + def _checkin_manual_fields(self, country=False): manual_fields = [ "name", "partner_id", @@ -805,20 +806,19 @@ class PmsCheckinPartner(models.Model): "residence_country_id", "residence_state_id", ] - # api.depends need "reservation_id.state" in the lambda function - if depends: - manual_fields.append("reservation_id.state") return manual_fields @api.model - def _checkin_mandatory_fields(self, country=False, depends=False): + def _get_depends_state_fields(self): + manual_fields = self._checkin_manual_fields() + manual_fields.append("reservation_id.state") + return manual_fields + + @api.model + def _checkin_mandatory_fields(self, residence_country=False, document_type=False): mandatory_fields = [ "name", ] - # api.depends need "reservation_id.state" in the lambda function - if depends: - mandatory_fields.extend(["reservation_id.state", "name"]) - return mandatory_fields @api.model @@ -888,7 +888,11 @@ class PmsCheckinPartner(models.Model): raise ValidationError(_("Its too late to checkin")) if any( - not getattr(record, field) for field in self._checkin_mandatory_fields() + not getattr(record, field) + for field in self._checkin_mandatory_fields( + residence_country=record.residence_country_id, + document_type=record.document_type, + ) ): raise ValidationError(_("Personal data is missing for check-in")) vals = { diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 185a4f34d..6eed99641 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -2117,7 +2117,8 @@ class PmsReservation(models.Model): else: raise ValidationError( _( - "The Property and Sale Channel Origin are mandatory in the reservation" + "The Property, Sale Channel Origin " + "and name / partner name / agency are mandatory in the reservation" ) ) if vals.get("name", _("New")) == _("New") or "name" not in vals: diff --git a/pms_l10n_es/__manifest__.py b/pms_l10n_es/__manifest__.py index 9ef1f0920..b3b719365 100644 --- a/pms_l10n_es/__manifest__.py +++ b/pms_l10n_es/__manifest__.py @@ -30,6 +30,7 @@ "data": [ "data/res.country.state.csv", "data/pms.ine.tourism.type.category.csv", + # "data/pms.ine.zip.municipality.ine.relation.csv", "data/cron_jobs.xml", "data/pms_data.xml", "data/queue_data.xml", @@ -39,9 +40,11 @@ "views/pms_property_views.xml", "views/pms_room_views.xml", "views/pms_log_institution_traveller_report_views.xml", + "views/pms_ses_communication_views.xml", "views/pms_ine_tourism_type_category.xml", "views/res_partner_id_number_view.xml", "views/pms_checkin_partner_views.xml", + "views/pms_reservation_views.xml", "wizards/traveller_report.xml", "wizards/wizard_ine.xml", "reports/invoice.xml", diff --git a/pms_l10n_es/data/cron_jobs.xml b/pms_l10n_es/data/cron_jobs.xml index 4ad32d877..1bc640f90 100644 --- a/pms_l10n_es/data/cron_jobs.xml +++ b/pms_l10n_es/data/cron_jobs.xml @@ -16,4 +16,81 @@ /> model.send_file_institution_async() + + + Automatic Creation Traveller Communications + + 3 + + minutes + -1 + + code + + + model.create_pending_notifications_traveller_report() + + + + Automatic Sending Pending Reservation Communications + + 3 + + minutes + -1 + + code + + + model.ses_send_communications('RH') + + + + Automatic Sending Pending Traveller Reports Communications + + 3 + + minutes + -1 + + code + + + model.ses_send_communications('PV') + + + + Automatic Process Sent Communications + + 3 + + minutes + -1 + + code + + + model.ses_process_communications() + diff --git a/pms_l10n_es/models/__init__.py b/pms_l10n_es/models/__init__.py index 7249c9c58..ec8793d39 100644 --- a/pms_l10n_es/models/__init__.py +++ b/pms_l10n_es/models/__init__.py @@ -8,3 +8,5 @@ from . import pms_room from . import res_partner from . import pms_checkin_partner from . import res_partner_id_number +from . import pms_ses_communication +from . import pms_reservation diff --git a/pms_l10n_es/models/pms_checkin_partner.py b/pms_l10n_es/models/pms_checkin_partner.py index 0119f7faa..ca3ca9f0b 100644 --- a/pms_l10n_es/models/pms_checkin_partner.py +++ b/pms_l10n_es/models/pms_checkin_partner.py @@ -3,6 +3,8 @@ import logging from odoo import api, fields, models CODE_SPAIN = "ES" +CODE_NIF = "D" +CODE_NIE = "N" _logger = logging.getLogger(__name__) @@ -34,9 +36,9 @@ class PmsCheckinPartner(models.Model): record.support_number = False @api.model - def _checkin_mandatory_fields(self, country=False, depends=False): + def _checkin_mandatory_fields(self, residence_country=False, document_type=False): mandatory_fields = super(PmsCheckinPartner, self)._checkin_mandatory_fields( - depends + residence_country, document_type ) mandatory_fields.extend( [ @@ -46,20 +48,35 @@ class PmsCheckinPartner(models.Model): "document_type", "document_expedition_date", "nationality_id", + "residence_street", + "residence_city", + "residence_country_id", + "residence_zip", ] ) - if depends or (country and country.code == CODE_SPAIN): + + if residence_country and residence_country.code == CODE_SPAIN: mandatory_fields.extend( [ "residence_state_id", - "residence_street", - "residence_city", + ] + ) + if document_type.code and document_type.code == CODE_NIF: + mandatory_fields.extend( + [ + "lastname2", + ] + ) + if document_type and document_type.code in [CODE_NIF, CODE_NIE]: + mandatory_fields.extend( + [ + "support_number", ] ) return mandatory_fields @api.model - def _checkin_manual_fields(self, country=False, depends=False): - manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields(depends) + def _checkin_manual_fields(self, country=False): + manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields() manual_fields.extend(["support_number"]) return manual_fields diff --git a/pms_l10n_es/models/pms_property.py b/pms_l10n_es/models/pms_property.py index 86d44a72b..8df9882d4 100644 --- a/pms_l10n_es/models/pms_property.py +++ b/pms_l10n_es/models/pms_property.py @@ -17,6 +17,7 @@ class PmsProperty(models.Model): ("policia_nacional", "PolicĂ­a Nacional"), ("ertxaintxa", "Ertxaintxa (soon)"), ("mossos", "Mossos_d'esquadra (soon)"), + ("ses", "SES"), ], string="Institution", help="Institution to send daily guest data.", @@ -26,6 +27,10 @@ class PmsProperty(models.Model): string="Institution property id", help="Id provided by institution to send data from property.", ) + ses_url = fields.Char( + string="SES URL", + help="URL to send the data to SES", + ) institution_user = fields.Char( string="Institution user", help="User provided by institution to send the data." ) @@ -33,6 +38,11 @@ class PmsProperty(models.Model): string="Institution password", help="Password provided by institution to send the data.", ) + institution_lessor_id = fields.Char( + string="Institution lessor id", + help="Id provided by institution to send data from lessor.", + ) + ine_tourism_number = fields.Char( "Tourism number", help="Registration number in the Ministry of Tourism. Used for INE statistics.", diff --git a/pms_l10n_es/models/pms_reservation.py b/pms_l10n_es/models/pms_reservation.py new file mode 100644 index 000000000..eb0861e3a --- /dev/null +++ b/pms_l10n_es/models/pms_reservation.py @@ -0,0 +1,88 @@ +from odoo import api, fields, models + + +class PmsReservation(models.Model): + _inherit = "pms.reservation" + ses_communication_ids = fields.One2many( + string="SES Communications", + help="Communications related to this reservation", + comodel_name="pms.ses.communication", + inverse_name="reservation_id", + ) + is_ses = fields.Boolean( + string="Is SES", + readonly=True, + compute="_compute_is_ses", + ) + + @api.depends("pms_property_id") + def _compute_is_ses(self): + for record in self: + record.is_ses = record.pms_property_id.institution == "ses" + + @api.model + def create_communication(self, reservation_id, operation, entity): + self.env["pms.ses.communication"].create( + { + "reservation_id": reservation_id, + "operation": operation, + "entity": entity, + } + ) + + @api.model + def create(self, vals): + reservation = super(PmsReservation, self).create(vals) + if reservation.pms_property_id.institution == "ses": + self.create_communication(reservation.id, "A", "RH") + return reservation + + @api.model + def create_communication_after_update_reservation(self, reservation, vals): + state_changed = "state" in vals and ( + (vals["state"] != "cancel" and reservation.state == "cancel") + or (vals["state"] == "cancel" and reservation.state != "cancel") + ) + check_changed = ( + any( + key in vals and vals[key] != getattr(reservation, key) + for key in ["adults", "checkin", "checkout"] + ) + and reservation.state != "cancel" + ) + + if state_changed or check_changed: + # delete all pending notifications + self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ("state", "=", "to_send"), + ("entity", "=", "RH"), + ] + ).unlink() + + # last communication + last_communication = self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ("entity", "=", "RH"), + ], + order="id desc", + limit=1, + ) + + if state_changed: + if vals["state"] == "cancel" and last_communication.operation == "A": + self.create_communication(reservation.id, "B", "RH") + elif vals["state"] != "cancel" and last_communication.operation == "B": + self.create_communication(reservation.id, "A", "RH") + elif check_changed: + if last_communication.operation == "A": + self.create_communication(reservation.id, "B", "RH") + self.create_communication(reservation.id, "A", "RH") + + def write(self, vals): + for record in self: + if record.pms_property_id.institution == "ses": + self.create_communication_after_update_reservation(record, vals) + return super(PmsReservation, self).write(vals) diff --git a/pms_l10n_es/models/pms_ses_communication.py b/pms_l10n_es/models/pms_ses_communication.py new file mode 100644 index 000000000..5c3d6ef0e --- /dev/null +++ b/pms_l10n_es/models/pms_ses_communication.py @@ -0,0 +1,86 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class PmsSesCommunication(models.Model): + _name = "pms.ses.communication" + _description = "SES Communication" + reservation_id = fields.Many2one( + string="Reservation", + help="Reservation related to this communication", + index=True, + required=True, + comodel_name="pms.reservation", + ) + communication_id = fields.Char( + string="Communication ID", + help="ID of the communication", + default=False, + ) + operation = fields.Selection( + string="Operation", + help="Operation of the communication", + selection=[("A", "New communication"), ("B", "Delete communication")], + required=True, + ) + entity = fields.Selection( + string="Entity", + help="Entity of the communication", + selection=[("RH", "Reservation"), ("PV", "Traveller report")], + required=True, + ) + communication_time = fields.Datetime( + string="Communication time", + help="Date and time of the communication", + ) + query_status_time = fields.Datetime( + string="Query status time", + help="Date and time of the last state query", + ) + + state = fields.Selection( + string="State", + help="State of the communication", + default="to_send", + required=True, + selection=[ + ("to_send", "Pending Notification"), + ("to_process", "Pending Processing"), + ("error_sending", "Error Sending"), + ("error_processing", "Error Processing"), + ("processed", "Processed"), + ], + ) + sending_result = fields.Text( + string="Sending Result", + help="Notification sending result", + ) + processing_result = fields.Text( + string="Processing Result", + help="Notification processing result", + ) + communication_xml = fields.Text( + string="XML Com.", + help="XML content communication", + ) + communication_soap = fields.Text( + string="SOAP Com.", + help="SOAP content communication", + ) + response_communication_soap = fields.Text( + string="SOAP Resp. Com.", + help="SOAP response communication", + ) + + query_status_xml = fields.Text( + string="XML Query Status", + help="XML query status content communication", + ) + query_status_soap = fields.Text( + string="SOAP Query Status", + help="SOAP query status content communication", + ) + response_query_status_soap = fields.Text( + string="SOAP Resp. Status", + help="SOAP response status query", + ) diff --git a/pms_l10n_es/security/ir.model.access.csv b/pms_l10n_es/security/ir.model.access.csv index 444000dce..f65078a29 100644 --- a/pms_l10n_es/security/ir.model.access.csv +++ b/pms_l10n_es/security/ir.model.access.csv @@ -3,3 +3,4 @@ user_access_traveller_report_wizard,user_access_traveller_report_wizard,model_tr user_access_traveller_report_logs,user_access_traveller_report_logs,model_pms_log_institution_traveller_report,pms.group_pms_user,1,1,1,1 user_access_pms_ine_tourism_type_category,user_access_pms_ine_tourism_type_category,model_pms_ine_tourism_type_category,pms.group_pms_user,1,1,1,1 user_access_pms_ine_wizard,user_access_pms_ine_wizard,model_pms_ine_wizard,pms.group_pms_user,1,1,1,1 +user_access_pms_ses_communication,user_access_pms_ses_communication,model_pms_ses_communication,pms.group_pms_user,1,1,1,1 diff --git a/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv b/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv new file mode 100644 index 000000000..8213dd8bd --- /dev/null +++ b/pms_l10n_es/static/src/pms.ine.zip.municipality.ine.relation.csv @@ -0,0 +1,14609 @@ +codigo_postal,municipio_id +00043,431107 +00085,490646 +00633,260051 +01001,010590 +01002,010590 +01003,010590 +01004,010590 +01005,010590 +01006,010590 +01007,010590 +01008,010590 +01009,010590 +01010,010590 +01012,010284 +01012,010590 +01013,010590 +01015,010590 +01110,010170 +01117,010170 +01117,010565 +01118,010164 +01118,010301 +01118,091097 +01120,010376 +01121,010148 +01128,010164 +01128,010170 +01128,010376 +01129,010376 +01130,010632 +01138,010186 +01139,010632 +01160,010035 +01165,010035 +01169,010035 +01170,010587 +01171,010587 +01191,010590 +01191,019015 +01192,010210 +01192,010590 +01193,010014 +01193,010210 +01193,010278 +01193,010590 +01194,010164 +01194,010590 +01195,010590 +01195,019015 +01196,010186 +01196,010590 +01200,010513 +01206,010133 +01206,010278 +01207,010278 +01207,010513 +01207,010534 +01208,010091 +01208,010133 +01208,010534 +01208,010611 +01211,010066 +01211,010148 +01211,010301 +01211,010442 +01211,091097 +01212,010148 +01212,010284 +01212,010442 +01212,010626 +01213,010468 +01213,010474 +01213,019020 +01216,010164 +01216,010442 +01220,010066 +01220,010148 +01220,010468 +01220,010474 +01230,019015 +01240,010014 +01250,010091 +01260,010091 +01300,010318 +01306,010339 +01307,010112 +01307,010528 +01307,010571 +01308,010199 +01308,010318 +01308,010323 +01309,010231 +01309,010318 +01309,010344 +01309,010416 +01320,010437 +01321,010318 +01322,010395 +01322,010437 +01322,010604 +01330,010284 +01340,010225 +01400,010360 +01408,010105 +01409,010421 +01420,010468 +01423,010468 +01423,010493 +01423,010552 +01423,019020 +01426,010468 +01426,010493 +01426,010552 +01427,010552 +01427,090503 +01427,091926 +01428,010468 +01428,010552 +01428,019015 +01430,010203 +01439,010203 +01440,010549 +01449,010549 +01450,010029 +01450,010549 +01450,010632 +01468,010029 +01470,010029 +01470,010105 +01474,010040 +01476,010105 +01477,010105 +01478,010040 +01478,010105 +01479,010105 +01510,010088 +01510,010587 +01510,010590 +01520,010088 +01520,010590 +01830,101894 +01857,100036 +02001,020030 +02002,020030 +02003,020030 +02004,020030 +02005,020030 +02006,020030 +02008,020030 +02013,020595 +02049,020030 +02071,020030 +02099,020030 +02099,029010 +02100,020735 +02110,020352 +02120,020609 +02124,020061 +02124,020117 +02124,020447 +02125,020117 +02126,020117 +02127,020609 +02128,020061 +02128,020609 +02129,020637 +02130,020175 +02136,020582 +02137,020582 +02138,020175 +02138,020595 +02139,020117 +02139,020175 +02140,020030 +02141,020637 +02142,020447 +02142,020637 +02150,020753 +02151,020215 +02152,020024 +02153,020208 +02154,020642 +02154,020833 +02155,020030 +02156,020292 +02160,020432 +02161,020432 +02162,020387 +02170,210139 +02200,020241 +02210,020077 +02211,020077 +02212,020236 +02213,020138 +02213,020772 +02214,020077 +02214,020138 +02215,020058 +02215,020827 +02220,020523 +02230,020450 +02236,020788 +02240,020463 +02246,020544 +02247,020267 +02248,020411 +02249,020349 +02249,020411 +02249,020668 +02250,020019 +02251,020349 +02253,020365 +02260,020349 +02270,020791 +02300,020083 +02310,020851 +02311,020621 +02312,020083 +02313,020595 +02314,020083 +02314,020479 +02314,020595 +02315,020766 +02316,020707 +02320,020122 +02326,020714 +02327,020655 +02328,020030 +02329,020220 +02330,020083 +02331,020680 +02332,020680 +02340,020680 +02350,020805 +02360,020169 +02395,290516 +02400,020371 +02409,020371 +02410,020447 +02410,090183 +02420,020371 +02430,020306 +02434,020426 +02435,020729 +02436,020313 +02437,020729 +02439,020306 +02440,020498 +02448,020175 +02448,020498 +02449,020306 +02449,020498 +02450,020674 +02459,020674 +02460,020848 +02461,020289 +02462,020674 +02462,020848 +02470,020306 +02480,020864 +02482,020864 +02484,020864 +02485,020864 +02486,020864 +02487,020864 +02488,020864 +02489,020864 +02490,020371 +02498,020371 +02499,020371 +02500,020740 +02510,020292 +02510,029010 +02511,020030 +02512,020030 +02513,020740 +02514,020740 +02520,020292 +02529,020292 +02530,020557 +02534,020557 +02535,020557 +02536,020557 +02537,020557 +02538,020557 +02539,020557 +02600,020812 +02610,020194 +02611,020576 +02612,020539 +02612,020812 +02614,020143 +02620,020485 +02630,020693 +02636,020788 +02636,160604 +02637,020328 +02638,020501 +02639,020156 +02639,020693 +02640,020096 +02650,020518 +02651,020334 +02652,020560 +02653,020045 +02660,020254 +02660,020812 +02690,020100 +02690,020390 +02691,020181 +02692,020292 +02692,020616 +02693,020273 +02693,020616 +02694,020390 +02695,020292 +02696,020404 +02999,020117 +03001,030149 +03002,030149 +03003,030149 +03004,030149 +03005,030149 +03006,030149 +03007,030149 +03008,030149 +03009,030149 +03010,030149 +03011,030149 +03012,030149 +03013,030149 +03014,030149 +03015,030149 +03016,030149 +03100,030839 +03108,031323 +03109,031297 +03110,030909 +03111,030469 +03112,030149 +03113,030149 +03113,030651 +03114,030149 +03115,030149 +03119,030993 +03130,031210 +03138,030149 +03139,030651 +03140,030762 +03150,030648 +03158,030553 +03158,030591 +03159,030612 +03160,030152 +03169,030128 +03170,031133 +03176,030128 +03177,030627 +03177,030703 +03177,031186 +03178,030345 +03179,030152 +03179,030703 +03181,031339 +03182,031339 +03183,031339 +03184,031339 +03185,031035 +03185,031339 +03186,031339 +03187,039037 +03188,031339 +03189,030993 +03190,030993 +03190,039021 +03191,039021 +03193,031203 +03194,030651 +03195,030651 +03201,030651 +03202,030651 +03203,030651 +03204,030651 +03205,030651 +03206,030651 +03207,030651 +03208,030651 +03290,030651 +03291,030651 +03292,030651 +03293,030651 +03294,030651 +03295,030651 +03296,030651 +03300,030993 +03310,030801 +03311,030993 +03312,030993 +03313,030993 +03314,030993 +03315,030993 +03316,030250 +03316,030993 +03317,030494 +03317,030993 +03319,030993 +03320,030651 +03321,030993 +03322,030993 +03325,030993 +03330,030591 +03339,030591 +03340,030054 +03348,030746 +03349,039042 +03350,030588 +03360,030494 +03369,030993 +03369,031091 +03370,031112 +03380,030443 +03380,030993 +03390,030247 +03400,031409 +03408,031409 +03409,030149 +03409,030529 +03409,031164 +03409,031409 +03410,030438 +03420,030535 +03430,030968 +03440,030797 +03450,030211 +03460,030232 +03469,030232 +03469,030514 +03501,030319 +03502,030319 +03503,030319 +03509,030699 +03510,030481 +03516,030377 +03517,030279 +03517,030330 +03517,030572 +03517,030759 +03518,030456 +03518,031278 +03520,031072 +03530,030942 +03540,030149 +03550,030149 +03550,031199 +03559,030149 +03560,030507 +03569,030041 +03570,031395 +03578,031127 +03579,030980 +03579,031246 +03580,030113 +03581,030113 +03590,030187 +03599,030187 +03600,030664 +03610,031040 +03630,031231 +03638,031164 +03639,031409 +03640,030895 +03649,030895 +03650,031053 +03657,031053 +03657,300434 +03658,031053 +03658,031164 +03659,031053 +03660,030937 +03660,350141 +03668,030134 +03669,031148 +03670,030882 +03679,030882 +03680,030190 +03688,030778 +03689,030778 +03689,030784 +03689,030993 +03690,031225 +03698,030020 +03699,030149 +03700,030633 +03709,030633 +03710,030475 +03720,030417 +03723,030067 +03724,031284 +03725,031284 +03726,030422 +03727,030818 +03728,030067 +03729,030857 +03729,031259 +03730,030823 +03737,030823 +03738,030823 +03739,030823 +03740,030710 +03749,030633 +03750,031014 +03759,030067 +03759,030263 +03759,030302 +03760,030955 +03769,030400 +03769,031105 +03769,031170 +03770,030633 +03770,031382 +03778,030263 +03779,030633 +03779,039016 +03780,030633 +03780,031029 +03780,031105 +03786,030015 +03787,031360 +03788,031344 +03788,031360 +03789,031357 +03790,030974 +03791,030974 +03791,031376 +03792,030916 +03792,030974 +03792,031007 +03793,030540 +03794,030298 +03795,030974 +03795,031151 +03795,031318 +03800,030092 +03801,030092 +03802,030092 +03803,030092 +03804,030092 +03810,030358 +03811,030605 +03811,030731 +03812,030204 +03812,030396 +03812,030860 +03813,030670 +03813,030686 +03813,031301 +03814,030089 +03814,030226 +03815,031035 +03816,030324 +03818,030092 +03819,030092 +03820,030566 +03827,030165 +03827,030361 +03827,030383 +03828,031066 +03829,030171 +03829,030566 +03830,030921 +03837,030036 +03838,030106 +03839,030921 +03840,030725 +03841,030073 +03850,030285 +03860,030844 +03870,030566 +04001,040139 +04002,040139 +04003,040139 +04004,040139 +04005,040139 +04006,040139 +04007,040139 +04008,040139 +04009,040139 +04100,040669 +04110,040669 +04113,040669 +04114,040600 +04114,040669 +04115,040669 +04116,040669 +04117,040669 +04118,040669 +04119,040669 +04120,040139 +04130,040139 +04131,040139 +04140,040329 +04149,040329 +04149,040669 +04149,040865 +04150,040139 +04151,040669 +04160,040139 +04200,040887 +04210,040600 +04211,040600 +04211,040887 +04211,040947 +04212,040335 +04212,040681 +04212,040979 +04213,040828 +04230,040524 +04240,041019 +04248,040865 +04250,040741 +04259,040741 +04260,040789 +04270,040865 +04271,040596 +04271,040865 +04274,040274 +04274,040904 +04274,040950 +04275,040904 +04275,040926 +04276,040097 +04276,040268 +04276,040274 +04277,040865 +04277,040932 +04278,040865 +04279,040865 +04279,040904 +04279,040950 +04280,040486 +04288,040221 +04288,040486 +04289,040221 +04289,040486 +04289,040865 +04400,040118 +04409,040123 +04409,040519 +04410,040242 +04420,040813 +04430,040558 +04431,040545 +04440,040773 +04450,040307 +04450,040502 +04458,040144 +04458,040237 +04458,040715 +04459,040675 +04460,040464 +04470,040577 +04479,040209 +04479,040464 +04479,040736 +04480,040078 +04500,040451 +04510,040010 +04520,040025 +04530,049011 +04531,040059 +04532,049011 +04533,040025 +04540,040656 +04549,040502 +04550,040502 +04558,040059 +04558,040502 +04559,040502 +04560,040470 +04567,040101 +04568,040157 +04568,040806 +04569,040280 +04569,040911 +04600,040062 +04600,040530 +04610,040353 +04616,040353 +04617,040353 +04618,040353 +04619,040353 +04620,041002 +04628,040160 +04629,040160 +04630,040499 +04638,040643 +04639,040643 +04639,040932 +04640,040708 +04640,040754 +04647,040353 +04647,040754 +04648,040353 +04648,040754 +04649,040754 +04650,041030 +04660,040176 +04661,040890 +04661,041030 +04662,040530 +04662,041030 +04690,040530 +04691,040530 +04692,040062 +04692,040530 +04692,040890 +04693,040530 +04694,040530 +04700,049026 +04710,049026 +04711,049026 +04712,049026 +04713,049047 +04715,049026 +04716,049026 +04720,040792 +04721,041024 +04727,041024 +04728,040433 +04729,040412 +04738,041024 +04740,040792 +04741,040792 +04743,040792 +04745,049032 +04746,049032 +04750,040388 +04760,040293 +04768,040078 +04768,040293 +04769,040293 +04770,040031 +04778,040031 +04779,040031 +04800,040062 +04810,040708 +04810,040720 +04811,040708 +04812,040062 +04813,040062 +04813,040708 +04814,040062 +04815,040314 +04820,040998 +04825,040372 +04826,040998 +04827,040998 +04828,040998 +04829,040985 +04829,040998 +04830,040985 +04838,040638 +04839,040638 +04839,040985 +04850,040314 +04857,040046 +04858,040046 +04858,040314 +04859,040340 +04859,040366 +04859,040583 +04860,040694 +04867,040622 +04868,040561 +04869,040448 +04870,040767 +04877,040617 +04877,040852 +04878,040849 +04878,040871 +04879,040963 +04880,040926 +04887,040617 +04887,040926 +04888,040182 +04888,040216 +04889,040195 +04889,040926 +04890,040834 +04897,040084 +04897,040834 +04898,040084 +04898,040834 +04899,040708 +04899,040834 +04964,040530 +05001,050198 +05002,050198 +05003,050198 +05004,050198 +05005,050198 +05100,051630 +05110,050224 +05111,052119 +05113,050415 +05114,059053 +05115,051677 +05115,052336 +05116,052336 +05120,051585 +05120,051661 +05120,052124 +05122,051645 +05122,051696 +05123,051012 +05123,051602 +05125,050701 +05130,052389 +05131,050966 +05131,051257 +05131,051488 +05132,050586 +05132,051064 +05132,052161 +05133,052158 +05134,050816 +05134,051547 +05134,051579 +05140,050408 +05140,050533 +05140,051201 +05140,051218 +05141,050678 +05141,050795 +05141,051453 +05141,052050 +05143,052525 +05145,051197 +05145,051368 +05145,052130 +05146,050338 +05146,050940 +05146,051184 +05146,051316 +05146,051808 +05146,052098 +05146,052657 +05147,050809 +05147,051070 +05148,050441 +05149,050599 +05149,052373 +05150,051815 +05150,051949 +05150,052183 +05151,051223 +05151,059035 +05152,051223 +05153,050150 +05153,050258 +05153,050631 +05153,051162 +05153,051295 +05154,051295 +05154,051440 +05154,052660 +05160,050198 +05161,051282 +05162,050277 +05163,050874 +05163,051337 +05163,051854 +05164,050929 +05164,051756 +05164,051949 +05164,052196 +05164,052584 +05165,050369 +05165,050454 +05165,051836 +05165,052428 +05190,051952 +05191,051309 +05191,051722 +05192,050610 +05192,051414 +05192,052320 +05193,051738 +05193,059029 +05194,050198 +05194,050300 +05194,051239 +05195,050198 +05196,050935 +05196,052452 +05197,050198 +05197,050760 +05197,050837 +05198,051892 +05198,052392 +05200,050163 +05210,050991 +05210,052102 +05211,050296 +05211,050436 +05211,050489 +05211,050603 +05212,050087 +05212,050467 +05212,050776 +05212,050782 +05212,052597 +05213,051099 +05215,050701 +05215,051781 +05215,052354 +05216,051526 +05217,050420 +05217,050646 +05217,050697 +05217,052315 +05220,051146 +05229,050230 +05229,050261 +05229,050564 +05229,052085 +05230,051683 +05239,051683 +05239,051841 +05240,051619 +05250,051027 +05260,050570 +05267,052011 +05268,050935 +05268,052222 +05270,052413 +05278,050224 +05278,052413 +05279,052413 +05280,051282 +05289,052063 +05289,052434 +05290,050356 +05290,052047 +05291,051159 +05292,051775 +05292,051906 +05292,052294 +05292,052531 +05292,052546 +05294,050935 +05296,050013 +05296,050723 +05296,050907 +05296,051743 +05298,051178 +05298,051934 +05298,052434 +05299,050343 +05299,051342 +05300,050659 +05309,050625 +05309,050659 +05309,051393 +05309,051965 +05309,052644 +05310,050744 +05320,050492 +05340,050408 +05350,052200 +05357,050179 +05357,050394 +05357,050880 +05357,051393 +05357,052308 +05357,052341 +05357,052562 +05358,050052 +05358,051407 +05358,051491 +05358,051794 +05358,052102 +05364,051051 +05370,050739 +05370,051472 +05380,050868 +05380,051429 +05380,051987 +05400,050147 +05410,051321 +05412,052079 +05413,051321 +05413,052217 +05413,052623 +05414,050662 +05415,051005 +05416,050132 +05417,050893 +05418,050147 +05420,052406 +05427,050757 +05427,050953 +05428,050551 +05429,050551 +05429,051563 +05429,052275 +05430,050028 +05440,051873 +05450,050548 +05460,050821 +05461,051276 +05470,051820 +05480,050473 +05489,050473 +05490,051103 +05491,051321 +05492,051892 +05500,051867 +05510,052256 +05511,052256 +05513,050415 +05514,050381 +05514,051260 +05514,051550 +05514,052177 +05514,052465 +05515,051867 +05516,051033 +05516,052004 +05516,052618 +05519,330241 +05520,051769 +05520,051971 +05520,052471 +05530,051380 +05530,052243 +05540,051355 +05540,051873 +05540,052471 +05560,050126 +05560,051435 +05560,051889 +05560,051913 +05560,052510 +05560,052639 +05570,050381 +05571,050527 +05571,051511 +05571,052578 +05580,050071 +05580,050185 +05580,052269 +05581,052269 +05591,052601 +05592,052281 +05593,050104 +05600,050219 +05610,050245 +05619,050842 +05619,051244 +05619,051717 +05619,051990 +05620,050512 +05621,051928 +05621,052367 +05630,050375 +05630,059040 +05631,051624 +05631,052676 +05631,059014 +05632,051624 +05632,059014 +05633,059014 +05634,051048 +05634,051051 +05635,051658 +05640,050821 +05690,050375 +05690,051131 +05691,052367 +05692,051125 +05693,050855 +05693,052490 +05694,050245 +05694,051086 +05695,050972 +05696,050972 +05696,052145 +05697,051532 +05697,051598 +05697,051700 +05697,052449 +06001,060153 +06002,060153 +06003,060153 +06004,060153 +06005,060153 +06006,060153 +06007,060153 +06008,060153 +06009,060153 +06010,060153 +06011,060153 +06020,060205 +06100,060956 +06105,060423 +06106,060956 +06107,060956 +06108,060956 +06109,060956 +06110,061540 +06120,060938 +06129,061591 +06130,061438 +06131,060074 +06132,060665 +06133,061298 +06134,061400 +06140,061285 +06150,061211 +06160,060166 +06170,060055 +06170,060153 +06171,060107 +06172,061319 +06173,060922 +06174,060613 +06174,061165 +06175,060994 +06175,061171 +06176,060896 +06176,060994 +06177,061475 +06178,061481 +06180,060153 +06181,060153 +06182,060153 +06183,060153 +06184,069022 +06185,069017 +06186,069038 +06187,060726 +06190,061152 +06191,061073 +06192,061553 +06193,060153 +06194,060153 +06195,060153 +06196,060401 +06196,061263 +06197,060457 +06198,061263 +06200,060114 +06207,060021 +06208,061529 +06209,061263 +06210,061330 +06220,061494 +06225,061134 +06226,060687 +06227,060732 +06228,060690 +06229,061067 +06230,061226 +06240,060520 +06249,060270 +06250,060205 +06260,060858 +06270,061247 +06275,061171 +06280,060554 +06290,061361 +06291,060861 +06292,060264 +06293,060248 +06300,061588 +06310,061089 +06320,060819 +06329,060135 +06330,061417 +06340,060508 +06350,060671 +06360,060541 +06370,060227 +06378,061422 +06380,060704 +06389,060704 +06390,060495 +06391,060711 +06392,061089 +06393,060080 +06394,060212 +06400,060444 +06400,060956 +06410,060021 +06410,060444 +06410,060606 +06410,061204 +06411,060802 +06412,060444 +06413,060824 +06420,060362 +06427,060877 +06428,060188 +06429,060188 +06430,061605 +06431,060824 +06439,060476 +06440,060785 +06441,060649 +06442,061128 +06442,061605 +06443,060299 +06444,061396 +06445,060652 +06450,061092 +06458,061469 +06459,060286 +06460,060286 +06468,060750 +06469,060397 +06470,060606 +06473,061514 +06474,061383 +06475,060943 +06476,060981 +06477,061041 +06478,060798 +06479,060418 +06480,060883 +06486,060900 +06487,060384 +06488,060310 +06489,060883 +06490,061036 +06498,060726 +06499,060883 +06500,061232 +06501,060068 +06510,060068 +06518,060378 +06519,060068 +06600,060233 +06610,061008 +06611,061612 +06612,060303 +06613,060188 +06614,060233 +06615,060188 +06620,060482 +06630,061020 +06640,061279 +06650,061250 +06650,061279 +06655,061187 +06656,060573 +06657,061149 +06658,061302 +06659,060172 +06660,060515 +06670,060227 +06670,060634 +06678,061572 +06679,060634 +06680,060359 +06689,061377 +06690,060567 +06692,060628 +06700,061535 +06710,061535 +06711,060444 +06712,061535 +06713,060016 +06714,060613 +06715,061113 +06716,061566 +06717,060444 +06717,061566 +06718,061535 +06720,061535 +06730,060016 +06730,060917 +06731,060917 +06740,060975 +06750,060969 +06760,060917 +06770,060331 +06800,060153 +06800,060830 +06810,060251 +06820,060439 +06830,061627 +06840,060042 +06850,060129 +06860,060460 +06870,060589 +06880,061324 +06890,061456 +06891,060845 +06892,061358 +06893,061190 +06894,060093 +06894,060325 +06900,060747 +06906,061054 +06907,060861 +06908,060861 +06909,061345 +06910,060592 +06919,061015 +06920,060140 +06927,061443 +06928,060779 +06929,060140 +06930,060191 +06939,060763 +06940,060037 +06950,061507 +06960,060346 +06970,061106 +06980,060536 +07001,070407 +07002,070407 +07003,070407 +07004,070407 +07005,070407 +07006,070407 +07007,070407 +07008,070407 +07009,070407 +07010,070407 +07011,070407 +07012,070407 +07013,070407 +07014,070407 +07015,070407 +07071,070407 +07100,070619 +07101,070619 +07108,070619 +07109,070257 +07110,070103 +07120,040139 +07120,070407 +07140,070472 +07141,070368 +07142,070532 +07143,070472 +07144,070178 +07144,070472 +07150,070051 +07157,070051 +07159,070051 +07160,070051 +07160,070110 +07170,070630 +07179,070184 +07179,070619 +07180,070110 +07181,070110 +07183,070110 +07184,070110 +07190,070070 +07190,070201 +07190,070630 +07191,070070 +07192,070218 +07193,070103 +07194,070453 +07195,070453 +07196,070110 +07198,070407 +07199,070407 +07200,070223 +07208,070223 +07209,070223 +07210,070048 +07220,070048 +07230,070380 +07240,070491 +07250,070658 +07259,079013 +07260,070435 +07300,070276 +07310,070125 +07311,070099 +07312,070342 +07313,070585 +07314,070585 +07315,070197 +07316,070585 +07320,070563 +07330,070162 +07340,070012 +07349,070103 +07350,070086 +07360,070295 +07369,070585 +07400,070033 +07420,070440 +07430,070309 +07440,070393 +07450,070550 +07458,070393 +07458,070550 +07459,070550 +07460,070429 +07469,070429 +07470,070429 +07500,070337 +07509,070337 +07510,070602 +07511,070472 +07518,070282 +07519,070355 +07520,070414 +07529,079013 +07530,070511 +07540,070511 +07550,070624 +07559,070624 +07560,070511 +07560,070579 +07560,070624 +07570,070064 +07579,070064 +07580,070146 +07589,070146 +07590,070146 +07590,070624 +07600,070316 +07600,070407 +07608,070407 +07609,070316 +07610,070407 +07620,070316 +07629,070048 +07630,070131 +07638,070598 +07639,070131 +07639,070316 +07640,070598 +07650,070579 +07659,070579 +07660,070579 +07669,070223 +07669,070579 +07670,070223 +07680,070337 +07687,070337 +07687,070511 +07688,070337 +07689,070337 +07690,070579 +07691,070579 +07700,070321 +07701,070321 +07702,070321 +07703,070321 +07710,070526 +07711,070526 +07712,070321 +07713,070526 +07714,070321 +07720,070491 +07720,070645 +07730,070027 +07730,070374 +07740,070374 +07748,070374 +07749,079028 +07750,070159 +07750,070239 +07750,070624 +07760,070159 +07760,070579 +07769,070159 +07800,070260 +07800,070466 +07800,070547 +07810,070504 +07811,070504 +07812,070504 +07814,070547 +07815,070504 +07816,070466 +07817,070488 +07818,070488 +07819,070547 +07820,070466 +07828,070466 +07829,070488 +07830,070488 +07839,070488 +07840,070547 +07849,070547 +07850,070547 +07850,070579 +07860,070244 +07870,070244 +07871,070244 +07872,070244 +07961,070579 +08001,080193 +08002,080193 +08003,080193 +08004,080193 +08005,080193 +08006,080193 +08007,080193 +08008,080193 +08009,080193 +08010,080193 +08011,080193 +08012,080193 +08013,080193 +08014,080193 +08015,080193 +08016,080193 +08017,080193 +08018,080193 +08019,080193 +08020,080193 +08021,080193 +08022,080193 +08023,080193 +08024,080193 +08025,080193 +08026,080193 +08027,080193 +08028,080193 +08029,080193 +08030,080193 +08031,080193 +08032,080193 +08033,080193 +08034,080193 +08035,080193 +08036,080193 +08037,080193 +08038,080193 +08039,080193 +08040,080193 +08041,080193 +08042,080193 +08073,080734 +08100,081249 +08101,081614 +08104,081249 +08105,082093 +08106,082567 +08107,081154 +08110,081252 +08120,081056 +08130,082606 +08140,080333 +08146,080879 +08148,080790 +08150,081593 +08160,081350 +08170,081363 +08172,082055 +08173,082055 +08174,082055 +08175,082055 +08178,080706 +08180,081385 +08181,082671 +08182,082107 +08183,080556 +08183,080641 +08183,080958 +08184,081568 +08184,081878 +08185,081081 +08186,081075 +08187,082482 +08188,082969 +08189,082397 +08190,082055 +08191,081846 +08192,082384 +08193,082665 +08194,082384 +08195,082055 +08196,082055 +08197,082055 +08198,082055 +08201,081878 +08202,081878 +08203,081878 +08204,081213 +08204,081878 +08205,081878 +08206,081878 +08207,081878 +08208,081878 +08210,082520 +08211,080517 +08212,082233 +08213,081672 +08214,089045 +08220,082009 +08221,082798 +08222,082798 +08223,082798 +08224,082798 +08225,082798 +08226,082798 +08227,082798 +08228,082798 +08230,081206 +08231,082900 +08232,083008 +08233,082917 +08240,081136 +08241,080538 +08241,081136 +08242,081136 +08243,081136 +08250,082188 +08251,080620 +08251,081923 +08253,080983 +08254,081825 +08255,080594 +08256,080023 +08256,081786 +08257,082460 +08259,080847 +08260,082747 +08261,080478 +08262,080386 +08263,082299 +08269,081419 +08269,082299 +08270,081402 +08271,080109 +08272,082135 +08273,082589 +08274,082129 +08275,080348 +08275,081287 +08278,081398 +08278,082779 +08279,080121 +08280,080312 +08281,080364 +08281,081705 +08281,081897 +08281,251364 +08282,081764 +08282,082286 +08283,080608 +08289,080713 +08289,082975 +08289,251924 +08290,082665 +08291,081803 +08292,080765 +08293,080692 +08294,080253 +08295,082628 +08296,080538 +08297,080615 +08298,082423 +08299,081799 +08301,081213 +08302,081213 +08303,081213 +08304,081213 +08310,080095 +08317,081537 +08318,080752 +08319,080752 +08320,081189 +08328,080039 +08329,082819 +08330,081727 +08338,082303 +08339,082140 +08340,082191 +08348,080305 +08349,080291 +08350,080060 +08358,080076 +08359,081939 +08360,080403 +08370,080351 +08380,081108 +08389,081555 +08390,081265 +08391,082824 +08392,081976 +08393,080327 +08394,082649 +08395,082359 +08396,082037 +08397,081635 +08398,082613 +08401,080961 +08402,080961 +08403,080961 +08410,089024 +08415,080235 +08416,080235 +08420,080410 +08430,081810 +08440,080462 +08445,080425 +08450,081069 +08455,083067 +08458,082346 +08459,081982 +08460,082592 +08461,082074 +08469,080811 +08469,081379 +08470,082021 +08471,082943 +08472,080399 +08474,080977 +08476,082021 +08479,080811 +08480,080057 +08490,082845 +08495,080826 +08500,082981 +08503,081000 +08503,081995 +08504,082205 +08504,082418 +08505,082476 +08506,080370 +08507,082460 +08508,081173 +08509,082439 +08510,081167 +08510,081831 +08511,082541 +08511,082802 +08512,082153 +08513,081712 +08514,081094 +08515,082251 +08516,081496 +08517,081884 +08517,082554 +08518,081516 +08519,080832 +08519,082750 +08519,082981 +08519,083036 +08520,080863 +08521,080863 +08522,081115 +08529,081290 +08530,080885 +08540,080673 +08550,080174 +08551,082830 +08552,082785 +08553,082690 +08554,082690 +08559,080266 +08560,081120 +08569,082541 +08569,089019 +08570,082858 +08571,082652 +08572,082331 +08573,081509 +08580,082378 +08584,082536 +08585,081311 +08586,081957 +08587,080044 +08588,082726 +08589,081607 +08589,082016 +08589,082711 +08590,081347 +08591,080142 +08592,082248 +08593,082763 +08600,080229 +08604,080575 +08605,081304 +08607,082166 +08610,080116 +08611,081445 +08612,081326 +08613,082994 +08614,080787 +08617,080459 +08618,080500 +08619,080240 +08619,081770 +08620,082634 +08629,082896 +08630,080018 +08635,082080 +08640,081477 +08650,081918 +08660,080180 +08660,082704 +08670,081419 +08672,080902 +08673,083089 +08680,080924 +08690,082444 +08691,081271 +08692,081751 +08693,080497 +08694,080996 +08694,089030 +08695,080168 +08695,080930 +08696,080522 +08696,081666 +08697,081901 +08697,259101 +08698,080804 +08698,081424 +08698,082423 +08698,082687 +08699,082938 +08700,081022 +08710,082508 +08711,081430 +08712,082264 +08717,080082 +08717,081332 +08717,252167 +08718,080288 +08719,080636 +08719,081038 +08719,081859 +08720,083054 +08729,080581 +08730,082515 +08731,082270 +08732,080581 +08732,080654 +08733,081640 +08734,080137 +08734,081458 +08735,083041 +08736,080850 +08737,082883 +08738,081688 +08739,082732 +08740,081960 +08750,081234 +08753,081574 +08754,081580 +08755,080543 +08756,089058 +08757,080728 +08758,080689 +08759,082956 +08760,081141 +08769,080667 +08770,082401 +08773,081228 +08775,082877 +08776,082325 +08777,082362 +08779,081043 +08780,081574 +08781,081629 +08782,081192 +08783,081192 +08784,081614 +08785,082922 +08786,080446 +08787,080484 +08787,081521 +08787,081653 +08787,082573 +08788,083020 +08789,082861 +08790,080919 +08791,082227 +08792,080945 +08792,082495 +08793,080137 +08794,080272 +08795,081461 +08796,081542 +08797,081748 +08798,080137 +08798,082068 +08799,081458 +08800,083073 +08801,082798 +08810,082310 +08811,080431 +08812,082310 +08818,081483 +08820,081691 +08830,082009 +08840,083015 +08849,082042 +08850,080898 +08859,080207 +08860,080569 +08860,082704 +08870,082704 +08871,082704 +08872,082704 +08880,080749 +08901,081017 +08902,081017 +08903,081017 +08904,081017 +08905,081017 +08906,081017 +08907,081017 +08908,081017 +08911,080155 +08912,080155 +08913,080155 +08914,080155 +08915,080155 +08916,080155 +08917,080155 +08918,080155 +08921,082457 +08922,082457 +08923,082457 +08924,082457 +08930,081944 +08940,080734 +08950,080771 +08960,082212 +08970,082172 +08980,082114 +09001,090597 +09002,090597 +09003,090597 +09004,090597 +09004,093728 +09005,090597 +09006,090597 +09007,090597 +09100,092117 +09107,090243 +09107,090905 +09107,091828 +09107,092479 +09108,090888 +09108,092117 +09108,092432 +09108,093174 +09108,094825 +09109,090912 +09109,092426 +09109,093636 +09109,094607 +09110,090912 +09119,090341 +09119,090912 +09119,092582 +09119,094555 +09120,094271 +09121,092117 +09123,093636 +09124,091754 +09124,094271 +09125,090452 +09125,091720 +09125,092273 +09125,093983 +09125,094271 +09126,090452 +09126,091754 +09127,090452 +09127,094154 +09128,091486 +09128,091773 +09128,093689 +09128,094271 +09128,094445 +09128,094733 +09129,094271 +09130,093044 +09130,093771 +09131,092595 +09131,092978 +09131,099027 +09131,099070 +09133,091669 +09133,091813 +09133,092024 +09133,092576 +09133,093749 +09133,093826 +09133,094271 +09135,093734 +09136,093734 +09140,092870 +09140,093018 +09140,099064 +09141,090011 +09141,099064 +09142,099051 +09142,099064 +09143,093615 +09143,093958 +09144,093615 +09145,093615 +09145,093958 +09145,099051 +09146,090145 +09146,094167 +09146,099051 +09150,091669 +09150,091720 +09150,099027 +09159,099027 +09163,093121 +09191,091767 +09191,094712 +09191,099048 +09192,090597 +09192,090755 +09192,092411 +09193,090597 +09193,090721 +09193,090742 +09193,090866 +09194,090308 +09194,090721 +09194,090737 +09194,091773 +09194,093142 +09195,090238 +09195,094347 +09195,094398 +09195,094580 +09197,093728 +09197,094398 +09197,099064 +09197,099070 +09198,090866 +09198,091773 +09198,093351 +09199,090269 +09199,090294 +09199,090449 +09199,090597 +09199,090742 +09199,092668 +09199,093039 +09199,093266 +09199,094635 +09200,092194 +09210,094120 +09211,091340 +09211,092387 +09211,092557 +09211,094120 +09212,092138 +09212,092194 +09212,094120 +09213,091025 +09213,093945 +09213,094120 +09214,090546 +09215,091097 +09216,091097 +09217,091097 +09218,091097 +09218,092194 +09219,090130 +09219,090161 +09219,090546 +09219,091209 +09219,092194 +09219,093478 +09219,093538 +09219,094192 +09219,094542 +09220,092501 +09226,090413 +09226,090471 +09226,090951 +09226,092498 +09226,092501 +09226,094568 +09226,094672 +09226,094727 +09227,090793 +09227,091596 +09227,091806 +09227,093752 +09227,094419 +09228,091010 +09228,091985 +09228,092061 +09228,092365 +09228,092753 +09228,094666 +09230,090584 +09230,091255 +09230,091280 +09230,091675 +09230,093386 +09233,090119 +09239,090098 +09239,090238 +09239,090639 +09239,090933 +09239,091255 +09240,090562 +09244,090601 +09244,091353 +09244,092833 +09245,090525 +09245,090562 +09245,091499 +09245,094081 +09245,094859 +09246,090434 +09246,090716 +09246,091950 +09246,092387 +09246,092655 +09246,092729 +09246,092805 +09246,093235 +09247,091433 +09247,093348 +09248,090367 +09248,090487 +09248,090562 +09248,090768 +09248,092735 +09248,093109 +09249,090079 +09249,090434 +09249,090562 +09249,092306 +09249,092387 +09249,094228 +09249,094234 +09250,090487 +09250,092208 +09251,091157 +09252,092208 +09257,094311 +09258,090102 +09258,090487 +09258,090835 +09258,091237 +09258,093924 +09258,094115 +09258,094311 +09258,094458 +09259,090465 +09259,090829 +09259,091307 +09259,091789 +09259,093076 +09259,093082 +09259,094249 +09260,092740 +09267,090487 +09267,091293 +09268,092740 +09268,093039 +09268,093462 +09268,093608 +09268,094075 +09268,094332 +09269,093039 +09270,090986 +09270,093082 +09271,092984 +09272,090487 +09272,091329 +09280,090774 +09280,091209 +09280,092518 +09290,091335 +09290,092886 +09292,090275 +09292,090562 +09292,091003 +09292,092241 +09292,092925 +09292,093517 +09292,093543 +09292,094290 +09293,090578 +09293,092194 +09294,091097 +09294,092766 +09300,093214 +09310,093902 +09310,093919 +09310,094640 +09311,091681 +09311,092352 +09312,090177 +09312,093919 +09314,092560 +09314,094287 +09315,091176 +09315,091366 +09315,091391 +09316,090510 +09316,091708 +09317,091998 +09317,092560 +09317,093399 +09318,091388 +09318,092292 +09318,094056 +09320,091084 +09320,091963 +09320,094069 +09330,091979 +09338,094189 +09339,094430 +09339,094483 +09339,094666 +09339,094803 +09340,091947 +09341,091947 +09341,093431 +09341,093847 +09342,092621 +09342,093500 +09342,093898 +09343,094379 +09344,093253 +09344,094326 +09345,090320 +09345,091792 +09345,093253 +09345,093898 +09346,091139 +09346,092083 +09347,091139 +09347,091947 +09347,092772 +09347,093116 +09347,099012 +09348,090948 +09348,091947 +09348,092313 +09348,092959 +09348,093667 +09349,091031 +09349,091046 +09349,091274 +09349,091947 +09349,092674 +09349,092946 +09350,090336 +09350,090618 +09350,092390 +09350,093556 +09351,090308 +09351,091622 +09352,091144 +09353,093522 +09354,092707 +09370,090183 +09370,091519 +09370,092812 +09384,091947 +09384,093847 +09390,091979 +09390,093484 +09390,093863 +09390,094424 +09391,090853 +09400,090183 +09410,090196 +09410,091123 +09410,092616 +09427,094271 +09430,091741 +09440,093692 +09441,093692 +09442,093804 +09443,091524 +09443,094385 +09450,090183 +09450,090354 +09450,091643 +09450,094516 +09451,090200 +09451,090217 +09451,090222 +09451,090644 +09453,093961 +09453,094038 +09453,094402 +09454,091741 +09454,092791 +09460,092181 +09461,091405 +09462,090032 +09462,091600 +09462,092289 +09462,092539 +09462,093654 +09463,091558 +09471,091372 +09471,091412 +09471,093459 +09471,094213 +09490,090559 +09490,092616 +09490,093370 +09490,094831 +09491,091314 +09491,094000 +09491,094213 +09493,090657 +09493,093879 +09500,092096 +09510,091890 +09510,099086 +09511,090503 +09511,091904 +09511,099086 +09512,092096 +09512,099086 +09513,092096 +09513,099033 +09514,091890 +09514,092096 +09514,092143 +09515,092096 +09515,092138 +09530,092387 +09540,093945 +09545,094108 +09549,092138 +09549,093945 +09549,094120 +09549,099033 +09550,099033 +09551,090145 +09551,099051 +09553,099033 +09554,099033 +09555,099033 +09556,099033 +09557,092156 +09557,092169 +09557,099033 +09558,094094 +09558,099033 +09559,090145 +09559,092175 +09559,092387 +09560,091242 +09566,091242 +09567,091242 +09567,092156 +09568,092156 +09569,091242 +09569,092143 +09569,094108 +09570,090256 +09571,090119 +09571,090124 +09571,094136 +09572,090119 +09572,094094 +09572,094136 +09573,092169 +09574,092169 +09580,094108 +09585,094108 +09586,094108 +09587,094108 +09588,094108 +09589,092501 +09589,094108 +09591,099048 +09591,099064 +09592,090716 +09592,092729 +09592,093272 +09593,090063 +09593,090682 +09593,092387 +09593,092447 +09593,093288 +09593,093291 +09594,092138 +09600,093305 +09610,091059 +09610,091221 +09610,093581 +09611,090709 +09611,091545 +09611,094509 +09612,090623 +09612,091448 +09612,092019 +09612,092680 +09613,090389 +09613,091101 +09613,092236 +09613,092693 +09613,093121 +09613,093305 +09613,094786 +09614,090392 +09614,091736 +09614,094141 +09615,090373 +09615,092267 +09615,093180 +09615,093305 +09616,093787 +09617,093569 +09618,093569 +09619,091638 +09620,092215 +09620,093155 +09620,093327 +09620,093620 +09631,090200 +09640,090780 +09640,091694 +09640,091834 +09640,091849 +09640,091911 +09640,092002 +09640,093403 +09640,093811 +09640,094304 +09640,094764 +09641,091195 +09642,090308 +09642,092002 +09645,093885 +09646,094764 +09647,093142 +09649,092485 +09649,093811 +09649,094477 +09650,090660 +09650,094304 +09651,091911 +09652,094496 +09653,091813 +09654,091813 +09660,091638 +09660,093023 +09670,092899 +09679,092328 +09680,092463 +09690,094252 +09691,090840 +09691,092254 +09692,090676 +09693,093095 +10000,100377 +10001,100377 +10002,100377 +10003,100377 +10004,100377 +10005,100377 +10095,100377 +10100,101210 +10109,101210 +10110,101105 +10110,101127 +10120,101091 +10129,100298 +10130,102198 +10131,102013 +10132,100204 +10133,100731 +10134,100438 +10135,100092 +10136,100443 +10137,100171 +10140,100876 +10160,100106 +10161,100232 +10162,100529 +10163,100128 +10164,100377 +10169,102179 +10170,101262 +10180,101989 +10181,101777 +10182,101936 +10183,101941 +10184,101920 +10185,100279 +10185,100319 +10186,101881 +10187,100073 +10189,101611 +10189,101632 +10189,101650 +10189,102179 +10190,100494 +10191,101702 +10192,100980 +10193,101783 +10194,101259 +10195,100377 +10197,100073 +10198,101685 +10199,100377 +10200,101954 +10210,101133 +10220,101954 +10230,100921 +10240,100664 +10250,100778 +10251,100113 +10252,101869 +10260,101663 +10261,101534 +10261,101587 +10262,100020 +10263,102090 +10269,101587 +10270,100699 +10270,101604 +10271,101493 +10272,101611 +10280,101029 +10290,101954 +10291,100134 +10291,101954 +10292,101954 +10300,101318 +10310,101800 +10317,100651 +10318,101800 +10318,109055 +10319,101800 +10319,109042 +10320,100302 +10328,100759 +10329,100422 +10329,101203 +10329,101973 +10330,102132 +10331,100481 +10331,102132 +10332,101973 +10332,102006 +10333,100839 +10334,101416 +10335,101409 +10340,100605 +10341,101323 +10350,100190 +10359,100974 +10359,101604 +10360,100572 +10370,100703 +10370,100937 +10371,101590 +10372,100330 +10373,100330 +10374,101344 +10380,101035 +10390,101730 +10391,109016 +10392,100285 +10392,100857 +10393,101992 +10394,100263 +10394,101225 +10400,101040 +10410,100226 +10411,101382 +10412,100797 +10413,101915 +10414,100651 +10420,101817 +10430,100686 +10440,100149 +10450,101040 +10450,101053 +10459,100916 +10460,101105 +10470,102126 +10480,101112 +10484,109021 +10490,102049 +10490,102126 +10491,101796 +10492,102065 +10493,101571 +10500,102034 +10509,102034 +10510,101698 +10511,100469 +10512,100942 +10513,100627 +10514,102034 +10515,102034 +10516,102034 +10519,102034 +10520,100588 +10520,101822 +10521,101822 +10528,101761 +10529,101148 +10530,101758 +10540,101231 +10550,100187 +10560,100921 +10560,100955 +10570,101626 +10580,101199 +10590,101164 +10591,100921 +10591,101164 +10591,101822 +10592,100566 +10593,100494 +10600,101480 +10610,100358 +10611,101838 +10612,101072 +10613,101301 +10614,101967 +10615,101474 +10616,100361 +10616,100540 +10616,100909 +10617,101549 +10617,101843 +10620,100417 +10623,100417 +10623,101357 +10624,100417 +10624,101088 +10625,101088 +10626,101357 +10627,101357 +10628,100514 +10628,101357 +10629,100417 +10629,101357 +10630,100417 +10630,100507 +10630,101468 +10630,101758 +10638,101468 +10639,101468 +10640,100507 +10649,100507 +10649,101442 +10650,100067 +10660,101376 +10660,101679 +10661,101679 +10662,101170 +10663,100633 +10663,101035 +10664,101246 +10665,100909 +10666,100054 +10666,101724 +10667,101360 +10670,100475 +10671,100165 +10671,100475 +10671,101480 +10672,102028 +10680,101164 +10690,101480 +10690,109037 +10691,100762 +10692,100895 +10693,101552 +10694,101908 +10695,101758 +10696,100250 +10696,100818 +10697,101164 +10697,101817 +10697,101822 +10700,100968 +10710,102163 +10711,100860 +10720,102147 +10728,101066 +10729,100345 +10730,100553 +10739,101745 +10740,100152 +10748,100015 +10749,100801 +10750,100247 +10759,100784 +10800,100670 +10810,101278 +10810,101989 +10811,100670 +10811,100895 +10811,101297 +10812,102111 +10813,101528 +10814,102071 +10815,100882 +10816,100535 +10816,100895 +10817,100400 +10818,100535 +10818,100591 +10820,100456 +10824,100993 +10828,101513 +10829,100456 +10829,100993 +10829,101395 +10829,101552 +10830,101894 +10839,101894 +10840,101284 +10848,109021 +10849,100844 +10849,101014 +10850,101007 +10857,100036 +10858,102150 +10859,101719 +10860,100844 +10864,101875 +10865,100396 +10866,100710 +10867,101565 +10868,100937 +10869,101856 +10870,100612 +10879,100041 +10880,100844 +10880,102185 +10881,100383 +10882,101437 +10883,101506 +10885,100396 +10890,102052 +10891,100725 +10892,101647 +10893,102104 +10895,100648 +10896,101421 +10897,100456 +10900,100211 +10910,101151 +10920,100377 +10930,101339 +10940,100823 +10950,100324 +10960,102087 +10970,101186 +10980,100089 +10989,100089 +10990,100089 +10991,101455 +11001,110125 +11002,110125 +11003,110125 +11004,110125 +11005,110125 +11006,110125 +11007,110125 +11008,110125 +11009,110125 +11010,110125 +11011,110125 +11012,110125 +11100,110316 +11130,110159 +11139,110159 +11140,110146 +11149,110146 +11150,110070 +11150,110393 +11158,110393 +11159,110070 +11159,110393 +11160,110070 +11170,110239 +11178,110257 +11179,110239 +11179,110393 +11180,110012 +11190,119013 +11201,110048 +11202,110048 +11203,110048 +11204,110048 +11205,110048 +11206,110048 +11207,110048 +11300,110223 +11300,110295 +11310,110337 +11311,110321 +11311,110337 +11312,110337 +11313,110337 +11314,110337 +11320,110218 +11330,110218 +11339,110218 +11350,110131 +11360,110337 +11368,110337 +11369,110337 +11370,110086 +11379,110086 +11380,110355 +11389,110051 +11390,110048 +11390,110355 +11391,110048 +11391,110355 +11392,110355 +11393,110070 +11393,110355 +11400,110201 +11401,110201 +11402,110201 +11403,110201 +11404,110201 +11405,110201 +11406,110201 +11407,110201 +11408,110201 +11500,110276 +11510,110282 +11518,110282 +11519,110282 +11520,110103 +11520,110309 +11540,110321 +11549,110321 +11550,110162 +11560,110374 +11570,110201 +11579,110201 +11580,119028 +11590,110201 +11591,110201 +11592,110201 +11593,110201 +11594,110201 +11595,110201 +11596,110201 +11600,110380 +11610,110197 +11611,110407 +11612,110099 +11620,110064 +11630,110064 +11638,110064 +11639,110033 +11640,110103 +11648,110178 +11649,110103 +11650,110414 +11659,110295 +11660,110260 +11670,110110 +11679,110197 +11680,110051 +11687,110184 +11688,110429 +11689,110051 +11690,110244 +11691,110368 +11692,110342 +11693,110027 +12001,120402 +12002,120402 +12003,120402 +12004,120402 +12005,120402 +12006,120402 +12100,120056 +12100,120402 +12110,120056 +12118,121227 +12119,120056 +12119,120496 +12120,120727 +12121,120056 +12122,120607 +12122,121227 +12123,120419 +12123,120733 +12124,120555 +12124,121303 +12125,121423 +12126,120483 +12127,120483 +12130,129023 +12131,121227 +12132,120017 +12133,120017 +12134,120252 +12134,120555 +12135,120672 +12135,121397 +12138,120458 +12140,120038 +12150,121299 +12159,120385 +12160,120265 +12161,121191 +12162,121346 +12163,120516 +12164,121055 +12165,120141 +12166,121055 +12170,121009 +12179,121114 +12180,120332 +12181,120290 +12182,121055 +12183,121325 +12184,121037 +12184,121205 +12185,120509 +12186,120982 +12190,120311 +12190,121248 +12191,120944 +12192,121286 +12193,121055 +12193,121248 +12194,121248 +12200,120846 +12210,120957 +12220,120846 +12221,121093 +12222,120022 +12222,120069 +12223,121080 +12224,120173 +12224,121310 +12225,120640 +12225,121166 +12230,120154 +12230,120580 +12230,120593 +12230,121135 +12230,121233 +12231,120461 +12232,120136 +12232,120461 +12232,121188 +12300,120803 +12310,120607 +12310,120614 +12311,120878 +12311,121378 +12311,121418 +12312,120751 +12312,120831 +12312,121129 +12315,121270 +12316,120803 +12317,120688 +12318,120458 +12318,120918 +12319,120379 +12320,120995 +12330,121016 +12330,121212 +12340,120705 +12350,120363 +12360,120521 +12370,120521 +12400,121042 +12410,120120 +12412,120672 +12412,121042 +12413,120108 +12413,120398 +12414,120081 +12414,121042 +12414,121251 +12415,120653 +12415,120764 +12420,120206 +12428,120635 +12428,120923 +12428,121331 +12429,120635 +12429,120901 +12429,121153 +12430,120228 +12431,121140 +12440,120430 +12447,120786 +12448,120799 +12449,120249 +12449,120691 +12449,120884 +12450,120712 +12460,121401 +12469,120976 +12469,121107 +12469,121401 +12470,120810 +12480,121068 +12489,121074 +12490,120189 +12499,120568 +12500,121384 +12510,121016 +12511,120960 +12512,120960 +12513,120424 +12520,120825 +12526,121362 +12527,120167 +12528,120574 +12529,120825 +12530,120271 +12530,120326 +12539,129018 +12540,121359 +12549,120213 +12550,120094 +12560,120287 +12560,120402 +12570,120043 +12578,120445 +12579,120043 +12580,120271 +12589,120347 +12590,120115 +12591,120748 +12592,120537 +12593,120770 +12594,120859 +12595,120332 +12596,121172 +12597,121021 +12598,120897 +12599,120939 +12599,120960 +12600,121264 +12609,120075 +12952,120537 +13001,130343 +13002,130343 +13003,130343 +13004,130343 +13005,130343 +13100,130631 +13107,130071 +13108,130512 +13109,130684 +13110,060628 +13110,130492 +13114,139014 +13115,130065 +13116,130065 +13117,130179 +13118,130179 +13118,130659 +13120,130659 +13129,130659 +13130,130420 +13140,130408 +13150,130317 +13160,130837 +13170,130564 +13179,130150 +13179,130662 +13180,130013 +13189,130150 +13190,130356 +13190,130564 +13191,130300 +13191,130678 +13192,130150 +13192,130258 +13193,130219 +13193,130415 +13193,130599 +13194,130527 +13194,130603 +13194,130659 +13194,130723 +13195,130343 +13195,130646 +13196,130343 +13196,130625 +13196,130631 +13197,130343 +13200,130533 +13210,130972 +13220,139040 +13230,130548 +13240,130795 +13247,130744 +13248,130104 +13249,139029 +13250,130394 +13260,130132 +13260,130230 +13270,130132 +13279,130880 +13300,130874 +13310,130874 +13320,130935 +13326,130570 +13327,130760 +13328,130147 +13329,130322 +13330,130929 +13331,130893 +13332,130893 +13333,130436 +13340,130049 +13341,130816 +13342,130697 +13343,130907 +13344,130842 +13345,130375 +13350,130586 +13360,130454 +13370,130277 +13379,130940 +13380,130090 +13390,130104 +13391,130087 +13400,130111 +13410,130028 +13411,130868 +13412,130381 +13413,130034 +13414,130126 +13414,130739 +13415,130150 +13420,130527 +13427,130369 +13428,130441 +13428,130527 +13429,130527 +13430,130296 +13431,130953 +13432,130224 +13440,130202 +13449,130245 +13450,130245 +13459,130150 +13460,130150 +13470,130150 +13473,130013 +13473,130150 +13480,130126 +13490,130467 +13499,130467 +13500,130718 +13580,130150 +13590,130489 +13591,130261 +13592,130551 +13593,130809 +13594,130551 +13595,130914 +13596,130150 +13597,130718 +13598,130150 +13600,130052 +13610,130283 +13619,139035 +13620,130610 +13629,130821 +13630,130782 +13640,130473 +13650,130701 +13660,130505 +13670,130966 +13679,130185 +13680,130441 +13690,130052 +13700,130821 +13710,130198 +13720,130052 +13730,130776 +13739,130277 +13739,130988 +13740,130855 +13750,130338 +13760,130163 +13768,130163 +13768,130988 +13770,130988 +13779,130277 +13779,130757 +14001,140214 +14002,140214 +14003,140214 +14004,140214 +14005,140214 +14006,140214 +14007,140214 +14008,140214 +14009,140214 +14010,140214 +14011,140214 +14012,140214 +14013,140214 +14014,140214 +14029,140214 +14035,140351 +14071,140673 +14100,140174 +14110,140305 +14111,140174 +14112,140305 +14113,140305 +14115,140180 +14115,140305 +14120,140305 +14129,140305 +14129,140364 +14130,140333 +14140,140654 +14150,140594 +14190,140109 +14190,140214 +14191,140174 +14192,140214 +14193,140214 +14193,140240 +14200,140522 +14206,140641 +14207,140327 +14208,140116 +14209,140095 +14209,140291 +14209,140364 +14210,140266 +14210,140689 +14220,140266 +14230,140713 +14240,140095 +14248,140095 +14249,140095 +14249,140291 +14250,140706 +14260,140288 +14270,140351 +14280,140082 +14290,140291 +14297,140291 +14298,140291 +14299,140291 +14300,140734 +14310,140478 +14320,140266 +14320,140478 +14320,140734 +14330,140214 +14350,140214 +14350,140478 +14400,140543 +14410,140620 +14412,140517 +14413,140348 +14420,140673 +14430,140018 +14439,140018 +14440,140692 +14445,140168 +14446,140168 +14447,140168 +14448,140207 +14449,130150 +14450,140060 +14450,140425 +14460,140235 +14470,140749 +14480,140039 +14490,140728 +14491,140615 +14500,140569 +14510,140459 +14511,140386 +14512,140569 +14520,140272 +14530,140410 +14540,140575 +14546,140608 +14547,140608 +14548,140403 +14549,140608 +14550,140425 +14600,140431 +14610,140018 +14610,140214 +14620,140180 +14630,140500 +14640,140667 +14650,140121 +14659,140121 +14660,140142 +14670,140636 +14700,140497 +14709,140364 +14710,140214 +14711,140214 +14719,140214 +14720,140057 +14729,140057 +14730,140538 +14739,140538 +14740,140364 +14800,140556 +14810,140155 +14811,140137 +14811,140155 +14811,140556 +14812,140044 +14813,140044 +14814,140556 +14815,140312 +14815,140556 +14816,140556 +14817,140556 +14820,140214 +14830,140253 +14840,140193 +14850,140076 +14857,140193 +14857,140462 +14858,140193 +14859,140076 +14860,140229 +14870,140752 +14880,140399 +14900,140386 +14910,140109 +14911,140386 +14913,140240 +14914,140484 +14915,140109 +14920,140023 +14930,140446 +14940,140137 +14941,140615 +14949,140137 +14950,140076 +14950,140364 +14950,140581 +14960,140581 +14970,140370 +14978,140370 +14979,140370 +15001,150308 +15002,150308 +15003,150308 +15004,150308 +15005,150308 +15006,150308 +15007,150308 +15008,150050 +15008,150308 +15009,150308 +15010,150308 +15011,150308 +15100,150196 +15102,150196 +15105,150196 +15106,150196 +15107,150196 +15108,150196 +15109,150196 +15110,150145 +15110,150682 +15111,150434 +15112,150434 +15113,150434 +15114,150682 +15115,150145 +15116,150145 +15117,150406 +15118,150406 +15119,150145 +15121,150161 +15121,150927 +15122,150161 +15123,150161 +15124,150525 +15125,150525 +15126,150525 +15126,150927 +15127,150927 +15128,150927 +15129,150927 +15130,150281 +15137,150281 +15138,150238 +15139,150315 +15140,150050 +15141,150050 +15142,150050 +15144,150050 +15145,150413 +15146,150413 +15147,150294 +15148,150294 +15149,150145 +15150,150927 +15150,150933 +15151,150341 +15152,150341 +15153,150373 +15154,150373 +15155,150373 +15160,150755 +15165,150085 +15166,150085 +15167,150085 +15168,150755 +15169,150755 +15170,150308 +15171,150584 +15172,150584 +15173,150584 +15174,150315 +15175,150217 +15176,150584 +15177,150584 +15178,150584 +15179,150584 +15180,150315 +15181,150177 +15182,150217 +15183,150217 +15184,150217 +15185,150243 +15186,150243 +15187,150243 +15188,150243 +15189,150315 +15190,150308 +15191,150308 +15192,150308 +15198,150315 +15199,150315 +15200,150578 +15210,150578 +15211,150578 +15212,150428 +15213,150578 +15214,150428 +15215,150428 +15216,150428 +15218,150428 +15218,150578 +15218,150716 +15220,150026 +15228,150026 +15229,150026 +15230,150623 +15236,150623 +15237,150623 +15239,150623 +15240,150531 +15250,150531 +15256,150452 +15258,150452 +15259,150531 +15270,150238 +15280,150130 +15281,150742 +15282,150742 +15284,150531 +15286,150623 +15287,150623 +15288,150623 +15290,150531 +15291,150531 +15292,150200 +15293,150200 +15295,150200 +15296,150200 +15297,150341 +15298,150238 +15299,150238 +15300,150098 +15310,150320 +15313,150392 +15314,150644 +15315,150503 +15316,150275 +15317,150032 +15318,150011 +15319,150085 +15319,150098 +15319,150644 +15320,150709 +15324,150709 +15325,150709 +15326,150709 +15327,150709 +15328,150709 +15329,150709 +15330,150618 +15332,150618 +15337,150449 +15338,150618 +15339,150449 +15339,150618 +15340,150618 +15347,150222 +15349,150618 +15350,150222 +15357,150222 +15358,150222 +15359,150222 +15360,159012 +15365,159012 +15366,159012 +15367,150618 +15368,150618 +15369,159012 +15379,150320 +15380,159027 +15386,159027 +15387,159027 +15388,159027 +15389,159027 +15390,159027 +15391,159027 +15401,150367 +15402,150367 +15403,150367 +15404,150367 +15405,150367 +15406,150367 +15407,150367 +15500,150354 +15509,150354 +15510,150559 +15520,150354 +15528,150354 +15530,150256 +15540,150546 +15541,150546 +15542,150872 +15543,150872 +15550,150872 +15551,150872 +15552,150872 +15553,150872 +15554,150872 +15555,150222 +15560,150768 +15561,150768 +15562,150768 +15563,150490 +15564,150490 +15565,150814 +15566,150814 +15567,150814 +15568,150814 +15569,150256 +15570,150546 +15572,150546 +15573,150546 +15576,150768 +15577,150559 +15578,150546 +15579,150559 +15580,150768 +15582,150124 +15582,150709 +15590,150367 +15591,150367 +15592,150367 +15593,150367 +15594,150367 +15595,150367 +15596,150546 +15597,150546 +15598,150768 +15600,150695 +15607,150695 +15608,150487 +15608,150695 +15609,150503 +15609,150695 +15611,150158 +15612,150158 +15613,150183 +15614,150695 +15615,150912 +15616,150912 +15617,150503 +15619,150503 +15620,150510 +15621,150158 +15622,150158 +15623,150047 +15624,150047 +15625,150047 +15626,150510 +15627,150354 +15627,150510 +15630,150487 +15635,150487 +15637,150912 +15638,150912 +15639,150487 +15640,150085 +15650,150177 +15656,150933 +15659,150177 +15660,150177 +15668,150177 +15669,150177 +15670,150315 +15679,150177 +15680,150597 +15683,150840 +15684,150597 +15684,150601 +15684,150840 +15685,150389 +15685,150471 +15685,150597 +15686,150389 +15686,150471 +15686,150866 +15687,150597 +15687,150866 +15688,150601 +15688,150780 +15689,150471 +15689,150597 +15689,150840 +15690,150050 +15701,150780 +15702,150780 +15703,150780 +15704,150780 +15705,150780 +15706,150780 +15707,150780 +15800,150465 +15805,150465 +15806,150835 +15807,150905 +15808,150793 +15809,150465 +15810,150063 +15813,150807 +15814,150807 +15815,150807 +15816,150102 +15817,150102 +15818,150102 +15819,150063 +15819,150465 +15820,150780 +15821,150660 +15822,150853 +15823,150660 +15823,150853 +15824,150660 +15824,150853 +15825,150660 +15826,150063 +15828,150853 +15830,150562 +15837,150774 +15838,150562 +15839,150079 +15839,150130 +15839,150562 +15840,150774 +15841,150774 +15845,150774 +15846,150774 +15847,150774 +15848,150774 +15850,150933 +15851,150933 +15855,150933 +15856,150933 +15857,150933 +15858,150933 +15859,150933 +15860,150774 +15861,150774 +15862,150079 +15863,150079 +15863,150562 +15864,150026 +15865,150130 +15866,150829 +15870,150026 +15871,150888 +15872,150888 +15873,150888 +15874,150888 +15880,150891 +15881,150124 +15881,150891 +15882,150124 +15883,150829 +15884,150601 +15884,150780 +15885,150891 +15886,150829 +15887,150660 +15888,150601 +15890,150780 +15892,150780 +15893,150780 +15894,150829 +15895,150026 +15896,150780 +15897,150780 +15898,150780 +15899,150780 +15900,150657 +15910,150657 +15911,150742 +15912,150742 +15913,150742 +15914,150657 +15915,150657 +15916,150336 +15917,150657 +15920,150721 +15928,150721 +15930,150119 +15937,150119 +15938,150119 +15939,150119 +15940,150676 +15948,150676 +15949,150676 +15950,150737 +15959,150737 +15960,150737 +15965,150737 +15966,150737 +15967,150737 +15968,150737 +15969,150737 +15970,150716 +15978,150716 +15979,150716 +15980,150657 +15980,150742 +15981,150336 +15982,150336 +15983,150721 +15984,150721 +15985,150721 +15990,150119 +15991,150119 +15992,150119 +15993,150737 +15994,150716 +15995,150716 +15996,150716 +15998,150716 +15999,150716 +16001,160783 +16002,160783 +16003,160783 +16004,160783 +16043,160437 +16100,162368 +16111,160040 +16111,162738 +16113,161527 +16114,160395 +16118,160297 +16118,161049 +16118,161420 +16118,161610 +16120,169036 +16122,160838 +16122,169020 +16123,169054 +16140,162453 +16141,160225 +16141,160702 +16141,160843 +16141,161631 +16142,161219 +16143,161224 +16143,169092 +16144,160856 +16144,169092 +16145,169092 +16146,160783 +16146,162808 +16147,161224 +16150,162159 +16150,162393 +16152,160318 +16152,161071 +16152,162197 +16152,162244 +16160,161489 +16161,162110 +16162,162110 +16190,160231 +16190,169041 +16191,160231 +16191,160301 +16191,160783 +16191,162547 +16191,169041 +16192,160409 +16192,161492 +16193,160783 +16193,160894 +16194,160231 +16194,160783 +16194,169041 +16195,160014 +16195,160199 +16195,161104 +16195,162110 +16195,162630 +16196,162630 +16200,161343 +16210,160421 +16211,161586 +16212,169089 +16214,160035 +16214,160920 +16214,162316 +16214,162374 +16215,160170 +16216,160817 +16216,161415 +16216,161991 +16216,169036 +16220,161757 +16230,162511 +16235,161132 +16236,161132 +16236,162440 +16236,162511 +16237,161185 +16238,162440 +16238,162511 +16239,160663 +16240,161551 +16250,160685 +16251,160967 +16260,161258 +16269,161570 +16269,161744 +16270,162488 +16280,162717 +16290,160989 +16290,161132 +16300,160528 +16311,160360 +16311,160437 +16311,160881 +16311,161090 +16312,160936 +16312,160973 +16313,160148 +16315,160088 +16315,160360 +16316,160442 +16316,161111 +16316,161150 +16316,162276 +16317,161874 +16317,162051 +16317,162781 +16318,161893 +16320,162027 +16321,162027 +16330,161179 +16336,161940 +16337,161356 +16338,160133 +16338,160626 +16338,161356 +16339,160954 +16339,161179 +16339,161940 +16340,160468 +16340,160745 +16340,162257 +16350,160552 +16360,160246 +16360,161317 +16370,161929 +16370,162585 +16371,161375 +16371,162743 +16372,160822 +16372,161505 +16373,160565 +16373,161505 +16373,162769 +16390,161467 +16390,161473 +16390,161776 +16393,161261 +16400,162033 +16410,161065 +16411,160869 +16412,160029 +16413,162125 +16414,161678 +16415,162491 +16417,161006 +16420,160164 +16420,162700 +16421,161034 +16421,161723 +16422,162162 +16423,161454 +16430,161868 +16431,160186 +16432,161816 +16432,162645 +16433,160127 +16433,162532 +16434,161296 +16435,160992 +16440,161300 +16441,161013 +16442,162696 +16444,160730 +16452,161816 +16452,162178 +16452,162184 +16460,160278 +16461,161198 +16463,161855 +16464,160105 +16465,161087 +16465,161512 +16470,160278 +16470,160323 +16470,162794 +16500,161126 +16510,161739 +16510,162407 +16512,160416 +16512,161739 +16520,161126 +16521,161126 +16522,161625 +16522,162064 +16532,160941 +16532,161126 +16532,161564 +16532,162504 +16535,162466 +16537,160112 +16537,160513 +16540,161126 +16541,161126 +16541,161603 +16541,162658 +16541,169067 +16542,169106 +16550,161126 +16550,169015 +16555,169015 +16600,161907 +16610,160611 +16611,160647 +16612,160650 +16620,160072 +16621,161953 +16622,161599 +16623,160724 +16630,161338 +16638,161533 +16639,161966 +16640,160339 +16646,162472 +16647,160875 +16647,162435 +16648,162550 +16649,160587 +16649,161283 +16649,161760 +16650,161245 +16660,161548 +16670,161718 +16700,161988 +16707,160604 +16708,160632 +16708,161662 +16709,162380 +16710,160262 +16710,162048 +16720,160474 +16730,161028 +16738,160493 +16739,162131 +16740,160151 +16740,160323 +16760,161394 +16770,161914 +16771,162661 +16771,162775 +16779,160344 +16780,160199 +16780,161322 +16781,160838 +16800,161701 +16812,160066 +16812,160091 +16812,160203 +16812,161697 +16812,162756 +16813,161880 +16813,161935 +16813,162282 +16813,162598 +16830,169015 +16840,162547 +16841,160053 +16842,162099 +16843,162722 +16850,160506 +16851,160382 +16852,161408 +16853,161436 +16854,160719 +16855,160259 +16856,160679 +16857,160455 +16860,162429 +16870,160357 +16878,161163 +16878,161230 +16878,161659 +16878,161972 +16879,160357 +16879,160571 +16879,160796 +16879,162342 +16890,160480 +16890,160534 +16890,160915 +16891,160534 +16891,160571 +16892,160534 +16893,160357 +17001,170792 +17002,170792 +17003,170792 +17004,170792 +17005,170792 +17006,170792 +17007,170792 +17100,170221 +17110,179026 +17111,179026 +17113,179026 +17114,172057 +17116,179011 +17117,179011 +17118,179011 +17120,171306 +17121,170577 +17121,179011 +17123,171978 +17124,171175 +17130,170622 +17130,171997 +17131,171539 +17132,170681 +17133,170681 +17133,171267 +17133,171910 +17133,172039 +17134,171959 +17136,170046 +17137,172174 +17140,172044 +17141,170182 +17141,171997 +17142,172116 +17143,170852 +17144,170558 +17144,172327 +17150,171637 +17151,171637 +17152,171729 +17153,171729 +17154,171833 +17160,170084 +17161,171169 +17162,170209 +17164,171637 +17164,171729 +17164,179032 +17165,171899 +17166,171899 +17166,171946 +17170,170078 +17171,171833 +17171,171946 +17172,171334 +17173,171334 +17174,171616 +17176,172076 +17177,172076 +17178,171390 +17178,172076 +17179,171498 +17179,172076 +17180,172155 +17181,170025 +17182,170209 +17183,172333 +17184,172333 +17185,172333 +17190,171557 +17199,170405 +17199,171637 +17200,171175 +17210,171175 +17211,171175 +17212,171175 +17213,170139 +17214,171447 +17220,171609 +17227,172272 +17230,171181 +17240,170890 +17240,171812 +17241,171426 +17242,171426 +17243,170904 +17244,170448 +17244,179011 +17245,171812 +17246,171812 +17248,170486 +17248,171609 +17249,170486 +17250,170486 +17251,170340 +17252,170340 +17253,171100 +17253,172095 +17255,170139 +17256,171215 +17256,171241 +17257,170708 +17257,170813 +17257,171997 +17258,171997 +17300,170237 +17310,170950 +17320,171181 +17320,172023 +17400,170274 +17401,170097 +17402,170097 +17403,171642 +17404,171463 +17405,170638 +17406,172207 +17410,171931 +17411,172137 +17412,171030 +17420,171931 +17421,171485 +17430,170950 +17430,171805 +17441,170280 +17450,170834 +17451,171595 +17452,171019 +17454,171576 +17455,170335 +17456,170335 +17457,171501 +17458,170736 +17459,170388 +17460,170499 +17461,170792 +17462,170255 +17462,170871 +17462,170979 +17462,171735 +17463,170675 +17463,170681 +17463,171680 +17464,170502 +17464,171668 +17464,172168 +17465,171870 +17466,170767 +17466,172327 +17467,171766 +17467,171870 +17468,170160 +17468,172180 +17469,170059 +17469,170524 +17469,170741 +17469,171518 +17469,172266 +17470,171788 +17472,170118 +17473,172109 +17474,171984 +17474,172253 +17475,171753 +17475,172109 +17476,170754 +17476,171194 +17480,171523 +17481,171693 +17482,171693 +17483,170160 +17483,172229 +17484,170669 +17485,172305 +17486,170470 +17486,170669 +17487,170470 +17488,170329 +17489,171404 +17489,171886 +17490,170926 +17491,171328 +17492,171328 +17493,171292 +17493,172235 +17494,171289 +17495,171208 +17496,170545 +17497,171387 +17500,171479 +17512,170963 +17513,170963 +17515,172121 +17520,171411 +17527,170947 +17528,170828 +17529,171411 +17530,170366 +17531,170366 +17531,170806 +17532,170963 +17534,170372 +17534,170433 +17534,171254 +17534,171450 +17535,171349 +17536,172018 +17537,170062 +17538,170062 +17538,170617 +17538,170694 +17538,172060 +17539,170242 +17539,170789 +17539,170849 +17539,170998 +17600,170669 +17700,170268 +17700,170865 +17706,171352 +17707,170010 +17707,170144 +17708,170412 +17709,170865 +17720,171024 +17721,171024 +17722,170600 +17723,170293 +17723,172348 +17730,170932 +17731,171962 +17732,171714 +17733,170031 +17734,170031 +17740,172214 +17741,170519 +17741,172288 +17742,170123 +17743,172288 +17744,171117 +17745,170887 +17746,170314 +17747,170314 +17750,170427 +17751,171582 +17752,171061 +17753,170643 +17754,171432 +17755,171432 +17760,172142 +17761,170307 +17762,171002 +17763,171002 +17770,170268 +17771,171827 +17772,171156 +17773,171365 +17780,170773 +17781,172272 +17800,171143 +17810,171143 +17811,171848 +17812,171143 +17813,172082 +17820,170157 +17830,171058 +17830,171621 +17831,171740 +17832,170583 +17832,170656 +17833,170715 +17833,172180 +17834,170353 +17834,171371 +17840,171864 +17843,171236 +17844,170561 +17846,171371 +17850,170195 +17850,170216 +17850,171621 +17851,170216 +17851,170985 +17852,171903 +17853,170101 +17853,171544 +17853,172001 +17854,170353 +17854,171655 +17855,171096 +17856,170464 +17856,171096 +17857,171851 +17858,172082 +17860,171674 +17861,171122 +17862,171707 +17864,171772 +17865,171772 +17867,170391 +17868,171077 +17869,170911 +17869,171925 +17869,172240 +18000,181400 +18001,180877 +18002,180877 +18003,180877 +18004,180877 +18005,180877 +18006,180877 +18007,180877 +18008,180877 +18009,180877 +18010,180877 +18011,180877 +18012,180877 +18013,180877 +18014,180877 +18015,180877 +18016,180877 +18100,180212 +18101,189115 +18102,189115 +18110,189056 +18120,180135 +18125,180135 +18126,180205 +18127,181067 +18127,181073 +18128,181921 +18129,180205 +18129,180346 +18129,181746 +18130,180726 +18130,181263 +18130,181494 +18131,181857 +18132,180016 +18140,181400 +18140,181937 +18150,180845 +18150,181507 +18151,181456 +18152,180687 +18160,180943 +18165,189069 +18170,180114 +18179,180114 +18179,181895 +18180,180671 +18181,180634 +18181,181540 +18182,180877 +18183,180994 +18184,180248 +18185,180994 +18190,180476 +18191,180943 +18191,181572 +18192,180704 +18192,181686 +18193,181345 +18194,180628 +18195,180573 +18196,181345 +18197,181651 +18198,181015 +18199,180362 +18200,181279 +18210,181535 +18211,180508 +18212,180956 +18213,181113 +18214,181443 +18220,180037 +18230,180227 +18230,181358 +18240,181588 +18247,181324 +18248,181324 +18249,181324 +18250,181588 +18250,189141 +18260,181020 +18270,181358 +18280,180129 +18290,180037 +18290,180227 +18290,180378 +18291,181588 +18292,180227 +18293,181020 +18294,181020 +18295,180129 +18300,181226 +18310,181710 +18311,181226 +18311,189136 +18312,140370 +18312,181226 +18313,181226 +18314,181226 +18320,181759 +18327,181152 +18328,181152 +18328,181588 +18329,180613 +18329,181759 +18330,180227 +18330,180592 +18330,181759 +18339,180482 +18339,180592 +18340,180798 +18349,180444 +18350,181020 +18360,181008 +18360,181226 +18369,181882 +18370,181383 +18380,181020 +18381,181020 +18400,181475 +18410,180439 +18410,181475 +18410,181762 +18411,181514 +18412,180325 +18413,180423 +18414,189017 +18415,181633 +18416,180331 +18416,189017 +18417,181801 +18418,180401 +18418,181400 +18418,181475 +18420,181165 +18420,189043 +18430,181797 +18438,180166 +18439,180444 +18440,180359 +18448,180359 +18449,181211 +18450,189043 +18451,180303 +18452,181128 +18460,189043 +18470,181839 +18480,181823 +18490,181417 +18491,181818 +18492,181417 +18492,181823 +18494,181823 +18494,189038 +18500,180896 +18501,181361 +18510,180270 +18511,189075 +18512,180690 +18512,180975 +18512,181149 +18513,180747 +18514,180107 +18515,180763 +18515,180896 +18515,181670 +18516,180251 +18516,181232 +18516,181285 +18516,181612 +18517,180541 +18517,181540 +18517,181686 +18518,180055 +18518,180188 +18518,180495 +18518,181089 +18518,181171 +18519,180896 +18519,181670 +18520,180021 +18530,181529 +18538,180153 +18538,180649 +18539,181876 +18540,180830 +18540,180969 +18540,189043 +18540,189094 +18550,181054 +18550,189154 +18560,180883 +18561,181361 +18562,181591 +18563,180830 +18563,181784 +18564,180515 +18565,180384 +18566,180286 +18567,180652 +18567,181054 +18567,189154 +18568,181591 +18569,181324 +18569,181377 +18570,180665 +18600,181036 +18600,181400 +18610,181731 +18611,181330 +18612,181036 +18613,181400 +18614,180938 +18614,181247 +18614,181400 +18615,181844 +18615,189069 +18616,181844 +18620,180140 +18630,181494 +18640,181507 +18650,180711 +18650,181494 +18656,181190 +18657,181438 +18658,189022 +18658,189108 +18659,180074 +18659,189081 +18660,189108 +18670,181844 +18680,180711 +18680,181731 +18690,180172 +18697,180172 +18698,181481 +18699,181092 +18699,181204 +18700,180068 +18708,180042 +18710,181475 +18710,181627 +18710,181778 +18711,181703 +18712,181627 +18713,181778 +18720,181400 +18730,181400 +18740,180938 +18750,181627 +18750,181778 +18760,180068 +18770,180068 +18800,180233 +18800,181400 +18810,180397 +18811,181942 +18812,180785 +18813,189120 +18814,180536 +18815,180536 +18816,180460 +18817,180299 +18818,180457 +18819,180397 +18820,181648 +18830,180981 +18830,181020 +18840,180359 +18840,180824 +18840,181823 +18849,180824 +18850,180567 +18850,180981 +18857,180567 +18858,181469 +18859,180567 +18860,180233 +18860,180896 +18870,180858 +18880,180896 +18890,180861 +18891,180567 +19001,191305 +19002,191305 +19003,191305 +19004,191305 +19005,191305 +19080,191305 +19080,193264 +19100,192120 +19110,191924 +19111,193270 +19112,190077 +19112,192249 +19113,191240 +19114,191765 +19115,190215 +19116,191076 +19117,190061 +19118,190220 +19119,190061 +19119,190220 +19119,191116 +19119,191121 +19119,191425 +19119,191500 +19119,191522 +19119,192521 +19119,193359 +19120,192458 +19125,190096 +19126,192477 +19127,190058 +19127,190788 +19127,191109 +19127,191847 +19127,192458 +19128,191060 +19128,191692 +19128,192115 +19128,192458 +19129,190194 +19129,192115 +19130,190450 +19131,190450 +19132,190181 +19132,193016 +19133,190236 +19133,190518 +19133,190544 +19133,191082 +19133,192000 +19134,192154 +19134,192666 +19135,190411 +19135,190426 +19139,193264 +19140,191431 +19141,190365 +19141,191608 +19141,192976 +19141,193264 +19142,191615 +19142,192995 +19143,191082 +19143,191556 +19143,192424 +19143,192496 +19143,193299 +19143,193303 +19144,191214 +19144,191235 +19144,191945 +19145,192332 +19150,191305 +19151,190827 +19152,190156 +19153,190432 +19160,191057 +19161,192252 +19162,192206 +19170,190714 +19171,190582 +19174,191266 +19174,192803 +19174,193009 +19180,191713 +19181,191305 +19182,191207 +19184,190707 +19184,192884 +19184,193055 +19184,193233 +19184,193251 +19185,190714 +19185,193009 +19185,193042 +19186,191023 +19187,192939 +19188,192939 +19190,192748 +19191,192252 +19191,192748 +19192,191253 +19192,192206 +19192,192901 +19193,191305 +19194,191305 +19196,190390 +19196,191594 +19196,191961 +19196,192960 +19196,192982 +19197,190668 +19197,190886 +19197,191305 +19197,191333 +19197,192748 +19197,192799 +19198,192862 +19200,190463 +19208,190241 +19209,192304 +19209,193191 +19210,193310 +19219,191667 +19219,191673 +19219,193191 +19220,191517 +19222,192629 +19223,190609 +19223,191654 +19224,190609 +19224,192629 +19224,193114 +19225,191826 +19225,192290 +19225,192347 +19225,193074 +19226,191517 +19226,191898 +19226,192629 +19227,190058 +19227,191734 +19227,192398 +19227,192635 +19229,190925 +19229,191517 +19229,191930 +19229,192287 +19230,190925 +19237,190371 +19237,190925 +19237,191193 +19237,192483 +19237,193346 +19238,191462 +19238,192038 +19239,190925 +19239,191919 +19240,191569 +19242,191351 +19243,190576 +19243,190978 +19243,191291 +19243,192265 +19243,192402 +19243,192691 +19243,193212 +19244,190962 +19244,191977 +19244,192038 +19245,190313 +19245,190805 +19245,190812 +19245,191575 +19245,191983 +19245,192081 +19245,192311 +19245,192509 +19245,192810 +19246,190735 +19246,191569 +19246,191771 +19246,191879 +19246,192189 +19246,193188 +19247,190557 +19247,191137 +19247,191790 +19248,191386 +19250,192574 +19260,190117 +19261,190117 +19261,191620 +19262,191168 +19262,192516 +19262,192574 +19263,192574 +19264,192574 +19265,192574 +19266,192022 +19266,192574 +19267,192574 +19268,190175 +19268,191863 +19268,192574 +19268,192825 +19269,192108 +19269,192385 +19269,192568 +19269,192574 +19269,193037 +19270,190447 +19274,190447 +19274,190655 +19274,191850 +19275,190083 +19275,190616 +19275,190655 +19275,190959 +19275,190962 +19275,191272 +19275,192593 +19276,190447 +19276,190498 +19276,191364 +19276,191811 +19276,192419 +19276,192944 +19277,190100 +19277,190447 +19277,190870 +19277,192108 +19277,192705 +19278,190523 +19278,191850 +19280,191706 +19281,191706 +19283,190117 +19283,190328 +19283,191538 +19285,190899 +19285,191636 +19286,190334 +19286,191752 +19287,190334 +19287,191155 +19287,191229 +19287,191706 +19287,191832 +19287,192653 +19290,191174 +19292,190984 +19292,191137 +19294,190753 +19294,191689 +19294,191749 +19294,193227 +19295,190479 +19295,191478 +19295,193140 +19300,191902 +19310,190138 +19310,191039 +19310,191044 +19311,192043 +19312,192192 +19312,192672 +19312,192897 +19313,192167 +19314,192640 +19315,191787 +19320,190273 +19321,190273 +19323,192727 +19324,192555 +19325,190030 +19325,192213 +19325,192712 +19326,192228 +19327,192136 +19328,190766 +19328,191399 +19328,191958 +19332,190169 +19332,191885 +19332,192653 +19332,193248 +19333,192653 +19334,190997 +19334,192653 +19336,192094 +19337,192859 +19338,192878 +19339,191095 +19339,192430 +19340,192379 +19341,190997 +19342,191348 +19343,190997 +19344,190997 +19345,192831 +19346,192542 +19346,199010 +19350,191902 +19351,191902 +19352,192271 +19353,192271 +19354,192271 +19355,192770 +19357,190349 +19360,190595 +19361,193325 +19362,191902 +19363,191902 +19390,190485 +19390,190997 +19390,191180 +19390,191240 +19390,192688 +19390,193093 +19391,190791 +19391,192271 +19391,192846 +19392,190997 +19400,190539 +19410,190539 +19411,190539 +19411,193080 +19412,190539 +19412,190740 +19412,193021 +19413,190539 +19414,190539 +19420,190864 +19428,190864 +19429,190864 +19431,190642 +19431,190864 +19431,192786 +19432,190019 +19432,191996 +19432,192445 +19432,192825 +19441,191484 +19441,192350 +19442,190024 +19443,190903 +19443,192017 +19443,192461 +19444,192017 +19444,193331 +19445,190328 +19445,191142 +19445,191459 +19445,192614 +19450,192918 +19458,192918 +19459,190544 +19459,190864 +19460,193172 +19461,190404 +19461,193331 +19462,192141 +19463,192234 +19490,190045 +19490,190208 +19490,190501 +19490,190539 +19490,190910 +19490,191728 +19490,193068 +19491,191327 +19491,191543 +19491,192580 +19491,192607 +19491,192825 +19492,190387 +19492,192115 +19492,192326 +19492,192918 +19492,193107 +19493,192173 +19495,193331 +19680,181731 +19832,170656 +20001,200697 +20002,200697 +20003,200697 +20004,200697 +20005,200697 +20006,200697 +20007,200697 +20008,200697 +20009,200697 +20010,200697 +20011,200697 +20012,200697 +20013,200697 +20014,200697 +20015,200697 +20016,200697 +20017,200697 +20018,200697 +20100,200533 +20100,200678 +20100,200697 +20110,200646 +20115,209035 +20120,200408 +20128,200408 +20130,200723 +20140,200090 +20150,200028 +20150,200757 +20159,200147 +20159,200283 +20159,200489 +20160,200697 +20160,209029 +20170,200739 +20180,200631 +20200,200198 +20210,200492 +20211,200150 +20212,200586 +20213,200436 +20214,200261 +20214,200570 +20214,200701 +20215,200258 +20216,200625 +20217,200381 +20218,200356 +20220,200512 +20230,200512 +20240,200760 +20247,200782 +20248,200126 +20248,200375 +20248,209066 +20249,200473 +20250,200527 +20259,209040 +20260,200052 +20267,200441 +20267,200718 +20268,200071 +20268,200087 +20268,200718 +20269,200013 +20269,209053 +20270,200104 +20271,200467 +20280,200369 +20301,200454 +20302,200454 +20303,200454 +20304,200454 +20305,200454 +20400,200420 +20400,200718 +20490,200548 +20490,200603 +20491,200219 +20491,200505 +20491,209072 +20492,200224 +20493,200224 +20493,200230 +20493,200317 +20494,200065 +20494,200415 +20494,200718 +20495,200049 +20496,200245 +20500,200551 +20530,200343 +20530,200684 +20540,200343 +20550,200132 +20560,200599 +20567,200599 +20568,200599 +20569,200599 +20569,200744 +20570,200744 +20577,200111 +20578,200744 +20580,200744 +20590,200659 +20600,200300 +20690,200338 +20700,200776 +20700,200809 +20709,200356 +20720,200179 +20730,200185 +20737,200662 +20739,200202 +20740,200277 +20749,200034 +20749,200277 +20750,200816 +20800,200795 +20808,200394 +20809,200163 +20810,200163 +20810,200610 +20820,200296 +20829,200296 +20830,200564 +20850,209014 +20860,200322 +20870,200322 +21001,210412 +21002,210412 +21003,210412 +21004,210412 +21005,210412 +21006,210412 +21007,210078 +21007,210412 +21100,210025 +21100,210600 +21110,210025 +21110,210600 +21120,210025 +21130,210502 +21130,210558 +21200,210078 +21207,210078 +21207,210451 +21208,210078 +21208,210268 +21208,210486 +21209,210078 +21209,210242 +21209,210596 +21210,210792 +21220,210388 +21230,210255 +21239,210084 +21239,210255 +21239,210675 +21240,210084 +21248,210084 +21250,210622 +21260,210694 +21270,210160 +21280,210097 +21290,210046 +21290,210335 +21290,210433 +21291,210340 +21291,210519 +21291,210715 +21292,210221 +21292,210335 +21300,210176 +21309,210176 +21320,210237 +21330,210046 +21330,210237 +21330,210255 +21340,210010 +21340,210084 +21342,210046 +21350,210046 +21359,210046 +21359,210675 +21360,210433 +21380,210293 +21386,210280 +21387,210274 +21388,210209 +21388,210391 +21390,210314 +21400,210101 +21400,210448 +21409,210101 +21410,210427 +21420,210101 +21420,210427 +21430,210427 +21431,210427 +21440,210448 +21449,210448 +21450,210216 +21450,210448 +21459,210216 +21459,210600 +21500,210353 +21510,210638 +21520,210062 +21520,210638 +21530,210062 +21540,210216 +21540,210767 +21550,210583 +21559,210583 +21560,210577 +21570,210681 +21580,210084 +21580,210157 +21580,210237 +21590,210736 +21591,210669 +21592,210754 +21593,210031 +21594,210372 +21595,210656 +21600,210720 +21609,210118 +21610,210643 +21620,210694 +21620,210708 +21630,210118 +21639,210118 +21639,210643 +21640,210789 +21647,210123 +21647,210789 +21649,210046 +21649,210182 +21649,210789 +21650,210182 +21660,210499 +21667,210499 +21668,210195 +21668,210366 +21668,210789 +21669,210046 +21670,210524 +21700,210545 +21710,210139 +21720,210617 +21730,210059 +21739,210059 +21740,210405 +21750,210059 +21760,210059 +21800,210502 +21810,210558 +21819,210558 +21820,210464 +21830,210144 +21840,210530 +21850,210773 +21860,210741 +21870,210329 +21880,210561 +21890,210470 +21891,210307 +22000,221259 +22001,221259 +22002,221259 +22003,221259 +22004,221259 +22005,221259 +22006,221259 +22080,221259 +22094,221259 +22097,221259 +22100,222065 +22110,222034 +22110,222202 +22111,221565 +22112,220113 +22113,221626 +22116,221199 +22120,222224 +22121,222224 +22122,220279 +22122,221262 +22122,222224 +22123,220279 +22124,221416 +22125,221357 +22126,221395 +22131,220553 +22131,221745 +22132,220507 +22132,221783 +22132,222356 +22133,220279 +22133,220298 +22133,220648 +22134,220648 +22135,220152 +22135,220361 +22140,221506 +22141,220588 +22141,220818 +22141,221506 +22142,220818 +22143,220015 +22144,220588 +22145,220247 +22146,229068 +22147,220015 +22147,220036 +22148,220514 +22148,220909 +22149,220514 +22149,229074 +22150,220377 +22160,229042 +22161,229042 +22162,229042 +22190,222489 +22191,221954 +22192,221506 +22192,222283 +22193,221278 +22193,221632 +22194,220190 +22194,220475 +22194,220968 +22194,221259 +22195,221259 +22196,221259 +22196,221565 +22197,221259 +22200,222132 +22210,221246 +22210,221745 +22211,221246 +22212,220134 +22212,220797 +22212,221360 +22213,221376 +22213,221745 +22213,222132 +22214,221360 +22215,220857 +22215,221745 +22215,222132 +22216,221376 +22216,221843 +22220,220089 +22221,222132 +22222,220839 +22223,222420 +22225,221164 +22230,222179 +22231,222512 +22232,221650 +22233,220942 +22234,220469 +22240,222261 +22250,221376 +22251,220187 +22252,221973 +22253,222185 +22254,222322 +22255,220128 +22255,220232 +22255,220494 +22255,221164 +22255,222369 +22260,221164 +22268,221164 +22268,221360 +22268,221817 +22268,222394 +22269,220232 +22269,221164 +22270,220211 +22280,221199 +22281,221199 +22282,220149 +22283,220149 +22283,220211 +22300,220481 +22310,220823 +22311,220417 +22311,220422 +22311,221761 +22312,221151 +22312,229080 +22313,220882 +22313,221869 +22313,229068 +22314,222013 +22314,222028 +22315,220481 +22315,229080 +22320,220514 +22320,221604 +22330,229074 +22336,221133 +22336,229074 +22337,221112 +22337,221133 +22337,221685 +22338,221908 +22339,229074 +22340,220664 +22347,220664 +22348,220664 +22349,220664 +22349,221301 +22349,229074 +22350,220572 +22351,220572 +22360,221339 +22361,221437 +22361,221442 +22362,221894 +22363,221894 +22364,222277 +22365,220572 +22365,222277 +22366,221822 +22366,222277 +22367,221148 +22367,221822 +22367,222071 +22370,220699 +22371,221091 +22372,220699 +22372,221091 +22373,220699 +22373,221091 +22374,220699 +22375,220699 +22375,221072 +22375,221437 +22376,222300 +22377,222300 +22378,222300 +22390,221151 +22391,222147 +22392,220020 +22392,221992 +22393,220020 +22393,221604 +22394,221133 +22394,229074 +22395,229074 +22400,221587 +22410,220171 +22411,229037 +22412,229037 +22413,229037 +22414,221587 +22415,221284 +22415,221587 +22416,220204 +22416,221936 +22417,220226 +22417,221105 +22420,220226 +22421,220400 +22422,221105 +22423,221035 +22424,221029 +22430,221170 +22435,221875 +22436,221170 +22437,221170 +22438,221133 +22438,221170 +22439,221647 +22439,222147 +22440,220540 +22449,220540 +22450,220746 +22450,221112 +22451,220746 +22451,221112 +22451,222338 +22451,222436 +22451,222441 +22452,221112 +22452,221133 +22460,221777 +22460,222126 +22461,220664 +22461,222126 +22462,221112 +22462,221297 +22463,222150 +22464,222150 +22465,220844 +22465,220955 +22466,220627 +22466,220844 +22467,220844 +22467,222006 +22467,222219 +22467,222492 +22468,222006 +22469,220540 +22469,222006 +22470,220627 +22471,221437 +22472,221437 +22473,221437 +22473,221571 +22474,221437 +22474,221571 +22480,220801 +22480,221170 +22481,221170 +22482,221297 +22483,221297 +22483,222338 +22483,222441 +22484,221297 +22484,222338 +22484,222467 +22485,222467 +22486,220670 +22486,221571 +22487,221571 +22500,220612 +22510,220605 +22511,220605 +22512,222052 +22513,221758 +22514,221758 +22520,221127 +22528,222454 +22529,221127 +22530,222548 +22531,221679 +22532,221679 +22533,220529 +22534,220073 +22535,220993 +22536,220529 +22540,220250 +22549,220529 +22549,222258 +22549,229093 +22550,222258 +22558,220092 +22559,222258 +22560,220165 +22569,220438 +22569,221758 +22570,220759 +22570,220895 +22571,220456 +22572,220895 +22572,221053 +22580,220535 +22583,220358 +22583,222230 +22583,252347 +22584,221881 +22584,222473 +22584,252347 +22585,220514 +22585,220876 +22585,221127 +22585,222296 +22585,222473 +22586,221421 +22587,220801 +22587,220876 +22587,221552 +22588,221170 +22589,220535 +22589,221053 +22590,222343 +22591,220778 +22592,221724 +22600,221992 +22609,221992 +22610,221992 +22610,222527 +22611,222527 +22612,221992 +22613,220591 +22613,221992 +22620,221301 +22620,221992 +22621,221301 +22621,221992 +22622,221632 +22622,221992 +22623,221992 +22624,220725 +22625,220725 +22630,220591 +22636,220591 +22636,221992 +22637,220591 +22638,220591 +22639,220591 +22639,222533 +22640,222049 +22650,221702 +22660,222049 +22661,221702 +22662,221225 +22662,221702 +22663,222049 +22664,222049 +22665,220591 +22666,221992 +22700,221301 +22710,220860 +22710,221301 +22711,221301 +22712,221301 +22713,221301 +22714,221301 +22714,221992 +22715,221301 +22720,229016 +22728,220285 +22729,221066 +22730,220324 +22731,221318 +22732,229016 +22740,229016 +22750,229021 +22751,220443 +22751,229021 +22752,222087 +22753,229021 +22760,220443 +22761,220443 +22770,220762 +22771,220762 +22772,220762 +22773,220762 +22790,229016 +22791,222087 +22791,222090 +22792,222090 +22800,220396 +22806,502382 +22807,220396 +22807,220633 +22808,220041 +22808,221730 +22808,501857 +22809,220396 +22809,221493 +22809,221513 +22810,229042 +22810,229055 +22811,229055 +22820,221730 +22821,221730 +22822,221730 +22830,220725 +22830,221170 +22830,221301 +22830,221730 +22850,221301 +22850,221992 +22860,220067 +22860,220686 +22860,220860 +22870,222505 +22880,220784 +22888,220784 +22889,220067 +22889,221301 +23001,230503 +23002,230503 +23003,230503 +23004,230503 +23005,230503 +23006,230503 +23007,230503 +23008,230503 +23009,230503 +23100,230584 +23110,230676 +23120,230183 +23130,230196 +23140,230644 +23150,230933 +23159,230933 +23160,230999 +23170,230389 +23180,230354 +23190,230676 +23191,239012 +23192,239012 +23193,230183 +23194,230503 +23196,230503 +23196,230933 +23200,230243 +23210,230392 +23211,230217 +23212,230243 +23213,230768 +23214,230119 +23214,230243 +23215,230047 +23220,230948 +23230,230085 +23239,230085 +23240,230639 +23250,230793 +23260,230256 +23264,230294 +23265,230623 +23266,230623 +23267,230623 +23268,230294 +23269,230294 +23270,230840 +23280,230124 +23289,230124 +23289,239051 +23290,239048 +23291,239048 +23292,230434 +23293,230434 +23293,230814 +23294,230814 +23294,239048 +23295,230814 +23296,239048 +23297,239048 +23298,239048 +23300,230951 +23310,230951 +23311,230807 +23312,230951 +23314,230927 +23315,230951 +23320,230888 +23330,230970 +23337,230434 +23338,230487 +23339,230970 +23340,230814 +23340,239051 +23350,230716 +23359,230716 +23360,230721 +23369,230721 +23370,230657 +23379,230814 +23380,230829 +23390,230161 +23391,230912 +23392,230373 +23393,231010 +23400,230927 +23410,230755 +23411,230098 +23412,230742 +23413,230927 +23420,230200 +23430,230742 +23440,230098 +23450,230465 +23460,230660 +23468,230660 +23469,230281 +23469,230927 +23470,230281 +23470,230308 +23476,230471 +23477,230308 +23478,239048 +23479,230281 +23479,230471 +23480,230737 +23485,230281 +23485,230660 +23485,230709 +23486,230428 +23486,230709 +23487,230452 +23488,230336 +23488,230737 +23489,230737 +23490,230465 +23490,230559 +23499,230948 +23500,230531 +23509,230927 +23510,230853 +23519,230578 +23519,230853 +23520,230145 +23528,230578 +23529,230098 +23529,230145 +23529,230584 +23529,239033 +23530,230525 +23537,239027 +23538,230011 +23539,230098 +23539,239027 +23540,230905 +23550,230177 +23560,230449 +23568,230158 +23569,230434 +23569,230449 +23590,230177 +23591,230177 +23591,230546 +23600,230601 +23610,230341 +23611,230413 +23612,230774 +23614,230601 +23615,230601 +23616,230341 +23620,230618 +23628,230275 +23628,230320 +23629,230490 +23630,239033 +23638,239033 +23639,230503 +23640,230866 +23650,230872 +23657,230315 +23658,230510 +23659,230986 +23660,230032 +23669,230032 +23670,230269 +23680,230026 +23684,230026 +23685,230026 +23685,230032 +23686,230026 +23686,230336 +23687,230026 +23688,230026 +23689,230026 +23690,230336 +23691,230026 +23691,230336 +23692,230026 +23693,230269 +23700,230559 +23710,230102 +23711,230119 +23712,230490 +23713,230559 +23713,230948 +23720,230320 +23730,230964 +23740,230050 +23746,230406 +23747,230050 +23748,230050 +23749,230050 +23749,230964 +23750,230079 +23760,230063 +23770,230597 +23780,230562 +23790,230695 +24001,240896 +24002,240896 +24003,240896 +24003,241152 +24004,240896 +24005,240896 +24006,240896 +24007,240896 +24008,240896 +24009,240896 +24009,241422 +24009,241627 +24010,240896 +24010,241422 +24100,242029 +24110,242029 +24111,242029 +24112,242029 +24113,242029 +24114,242029 +24120,241670 +24121,241633 +24122,240613 +24123,240401 +24124,241588 +24124,241670 +24125,241670 +24126,241324 +24126,241670 +24127,241324 +24127,241844 +24130,241015 +24131,241324 +24132,241324 +24133,241015 +24133,241324 +24134,241015 +24134,241324 +24135,241015 +24136,241015 +24137,241015 +24138,242029 +24139,242029 +24140,242029 +24141,240299 +24142,240299 +24143,240299 +24143,241456 +24144,241456 +24145,241456 +24145,241648 +24146,241648 +24148,240129 +24149,240129 +24150,240671 +24150,241514 +24150,242014 +24151,241514 +24152,241993 +24153,242014 +24154,242014 +24155,242014 +24156,241759 +24160,240798 +24161,240634 +24161,240798 +24162,242259 +24163,242014 +24163,242259 +24164,240798 +24165,240798 +24166,240798 +24170,240042 +24170,240520 +24171,240042 +24171,242262 +24172,240515 +24172,242151 +24172,242297 +24174,240515 +24175,242151 +24190,240896 +24190,241422 +24191,241422 +24192,240896 +24192,241054 +24193,242225 +24194,241627 +24195,241759 +24195,242225 +24196,241633 +24197,242225 +24198,241895 +24199,242278 +24200,241882 +24205,241882 +24206,240423 +24206,240747 +24206,241784 +24206,242035 +24207,240994 +24207,242035 +24208,241073 +24209,240819 +24209,241073 +24210,240943 +24212,240270 +24217,240956 +24218,240943 +24218,241801 +24219,242259 +24220,241818 +24221,240325 +24222,249022 +24223,240068 +24223,240732 +24223,241073 +24224,240286 +24224,240628 +24224,241073 +24225,240331 +24225,240589 +24225,242186 +24226,242259 +24226,242278 +24227,241759 +24228,241759 +24230,241876 +24231,240652 +24231,241054 +24232,240068 +24233,240068 +24233,242127 +24234,240883 +24234,242127 +24235,242210 +24236,242210 +24237,241494 +24237,241686 +24237,242072 +24238,240021 +24238,242112 +24239,240541 +24240,241572 +24248,240264 +24248,240877 +24248,241746 +24249,240172 +24249,240877 +24249,241134 +24249,242301 +24250,240652 +24250,241876 +24251,240068 +24251,240652 +24251,241054 +24252,240172 +24252,241507 +24252,241746 +24253,241762 +24257,240212 +24270,240397 +24271,240922 +24272,240554 +24273,240554 +24273,241041 +24274,241330 +24275,241330 +24275,241588 +24276,241588 +24277,241588 +24280,240153 +24281,240153 +24282,241422 +24282,241895 +24283,240397 +24284,241731 +24285,240153 +24285,241232 +24285,241731 +24286,240824 +24287,240153 +24287,242246 +24288,242231 +24288,242246 +24290,241535 +24291,240975 +24292,241909 +24293,240845 +24294,240785 +24300,240140 +24310,240711 +24310,241703 +24311,240711 +24312,240711 +24312,240830 +24313,240830 +24314,240495 +24315,240140 +24315,240711 +24316,240495 +24317,241703 +24318,240140 +24319,240140 +24319,240830 +24319,241020 +24320,241396 +24323,240508 +24323,241909 +24324,240861 +24324,241916 +24325,240188 +24325,240779 +24326,241396 +24327,242297 +24328,240515 +24328,241396 +24328,242297 +24329,241396 +24330,241605 +24339,241605 +24339,242170 +24340,240802 +24341,240690 +24342,240310 +24343,240248 +24343,241566 +24344,240248 +24344,241566 +24344,242133 +24344,242262 +24345,241605 +24346,241974 +24347,241054 +24347,241974 +24350,242231 +24356,240264 +24356,242284 +24357,240264 +24358,242231 +24359,241443 +24359,241481 +24360,242105 +24367,242105 +24368,242105 +24369,242105 +24370,241703 +24374,240830 +24374,241703 +24375,240830 +24376,240830 +24377,240830 +24378,241703 +24379,241703 +24379,242105 +24380,241226 +24384,241226 +24385,241226 +24386,241226 +24387,241226 +24388,240166 +24389,240166 +24389,241226 +24390,240384 +24391,240652 +24391,241627 +24391,241895 +24392,240554 +24392,240652 +24392,242053 +24393,240264 +24393,240554 +24393,241591 +24394,241823 +24395,241481 +24395,241823 +24396,240938 +24397,240938 +24397,241232 +24398,240495 +24398,240573 +24398,241008 +24400,241152 +24401,241152 +24402,241152 +24403,241152 +24404,241152 +24410,240074 +24410,240346 +24411,241152 +24412,240270 +24413,241008 +24413,241152 +24414,241152 +24415,241152 +24416,241152 +24420,240704 +24424,241152 +24428,240704 +24429,240704 +24429,241128 +24430,241968 +24433,240362 +24434,240704 +24434,241968 +24435,241968 +24436,241968 +24437,241968 +24438,240191 +24438,241699 +24439,241438 +24439,241968 +24440,240418 +24441,240418 +24441,242066 +24442,240418 +24443,240227 +24444,240227 +24445,241190 +24446,241190 +24447,241190 +24448,241152 +24448,241190 +24450,241699 +24456,240074 +24457,241699 +24457,252537 +24458,241020 +24458,241699 +24459,241699 +24460,241699 +24469,241106 +24469,241699 +24470,241106 +24478,241106 +24479,241106 +24480,241092 +24488,241106 +24489,241092 +24490,241152 +24491,241152 +24492,240649 +24493,241699 +24494,241106 +24495,241092 +24496,241092 +24497,241092 +24498,241092 +24500,242091 +24510,242091 +24511,242091 +24512,161739 +24512,242091 +24513,242091 +24514,240592 +24515,240592 +24516,240592 +24516,242066 +24516,242091 +24517,240592 +24520,241980 +24521,240114 +24521,241980 +24522,241710 +24523,241710 +24524,241980 +24525,240093 +24526,241980 +24530,242066 +24530,242091 +24540,240303 +24544,240384 +24545,240074 +24545,241438 +24546,240074 +24547,240303 +24547,242091 +24548,240303 +24549,240384 +24550,240384 +24550,242066 +24560,242066 +24565,240384 +24566,241036 +24567,241036 +24567,241651 +24568,241036 +24569,241036 +24569,241651 +24569,242066 +24600,241149 +24607,241149 +24608,241149 +24609,241149 +24610,240613 +24620,240613 +24630,240613 +24640,241345 +24648,240981 +24648,241345 +24649,241345 +24650,241149 +24660,241149 +24670,241149 +24680,249017 +24687,249017 +24688,249017 +24689,249017 +24690,249017 +24699,249017 +24700,240080 +24710,241481 +24711,242148 +24711,242199 +24712,242148 +24713,242148 +24714,240233 +24715,240233 +24716,240233 +24717,240900 +24717,240917 +24717,241612 +24717,241857 +24718,240080 +24718,240233 +24719,242199 +24720,241529 +24721,240444 +24721,240917 +24722,241529 +24723,240900 +24724,240900 +24730,240665 +24730,242164 +24731,241612 +24732,241612 +24732,241823 +24733,241250 +24734,240476 +24735,240476 +24736,240476 +24738,241725 +24739,241703 +24740,240114 +24740,241612 +24740,241725 +24740,242029 +24741,241725 +24742,240439 +24743,240671 +24744,240439 +24744,240671 +24745,240671 +24746,240671 +24750,240107 +24760,240460 +24760,241149 +24760,241469 +24761,240037 +24762,241247 +24762,241540 +24763,241279 +24763,241664 +24763,242284 +24764,240107 +24764,241089 +24764,241664 +24765,241319 +24765,242164 +24766,240107 +24766,241089 +24766,242164 +24767,241250 +24767,241540 +24768,241664 +24769,240536 +24790,241361 +24791,241361 +24791,242301 +24792,240037 +24792,241171 +24792,241247 +24793,241823 +24794,241319 +24795,241319 +24795,241443 +24795,241553 +24796,240055 +24796,241171 +24797,241417 +24800,240567 +24810,241377 +24811,241377 +24812,241377 +24813,240567 +24814,241377 +24815,240567 +24816,240567 +24820,240763 +24820,240981 +24830,240981 +24836,240981 +24836,241942 +24837,240378 +24837,241778 +24837,241942 +24838,240378 +24839,240981 +24840,241937 +24843,241778 +24844,241778 +24845,241778 +24846,241797 +24847,241797 +24848,241514 +24848,241937 +24849,241797 +24849,241937 +24850,240212 +24852,240212 +24852,241993 +24853,240212 +24854,240212 +24855,241211 +24856,241298 +24857,240212 +24857,241211 +24858,240212 +24859,240212 +24860,240212 +24860,241993 +24869,241993 +24870,240687 +24877,240687 +24878,240687 +24878,240798 +24879,240687 +24880,241839 +24882,241839 +24883,241839 +24884,241839 +24885,240205 +24885,241204 +24886,241839 +24887,241839 +24888,240042 +24888,240520 +24888,241839 +24889,241839 +24890,240763 +24891,240763 +24892,240520 +24893,241187 +24900,241302 +24911,240205 +24912,240205 +24913,240205 +24914,241165 +24915,241165 +24916,241067 +24917,240251 +24918,241302 +24920,241801 +24930,241801 +24940,240634 +24950,240567 +24960,240606 +24960,241377 +24970,240606 +24980,240606 +24989,240606 +24990,240606 +24991,240606 +24994,240016 +24994,240251 +24995,240251 +24996,240016 +24996,240969 +25001,251207 +25002,251207 +25003,251207 +25004,251207 +25005,251207 +25006,251207 +25007,251207 +25008,251207 +25100,250194 +25110,250236 +25110,251207 +25110,252287 +25111,251207 +25112,259123 +25113,251207 +25114,259123 +25120,250138 +25122,251121 +25123,252287 +25124,251898 +25125,250169 +25126,250215 +25126,252287 +25130,250156 +25131,252332 +25132,250539 +25133,252516 +25134,251749 +25135,250083 +25136,250693 +25137,250788 +25138,252311 +25139,251348 +25140,250292 +25141,252304 +25142,250523 +25143,251689 +25144,250523 +25150,250334 +25151,250365 +25152,250766 +25153,251826 +25154,250674 +25155,250061 +25160,251057 +25161,250143 +25162,250100 +25163,252069 +25164,252249 +25165,251180 +25170,252326 +25171,250077 +25172,251425 +25173,252115 +25174,252120 +25175,252000 +25176,252265 +25177,251018 +25177,251706 +25178,250560 +25179,251333 +25180,250117 +25181,252108 +25182,250387 +25183,252043 +25184,251312 +25185,251023 +25186,251253 +25187,250208 +25191,251207 +25192,251207 +25193,250117 +25193,251207 +25193,251930 +25194,251207 +25195,251207 +25196,251207 +25197,251207 +25198,251207 +25198,259046 +25199,251207 +25200,250729 +25210,251109 +25211,251327 +25211,251977 +25211,252192 +25211,259078 +25212,259078 +25212,259118 +25213,250729 +25213,252167 +25213,259059 +25214,250729 +25214,250851 +25214,251522 +25214,252022 +25215,250851 +25215,251945 +25216,251142 +25216,251945 +25217,250390 +25217,251044 +25217,251410 +25217,259059 +25218,250729 +25218,251039 +25218,259118 +25220,250485 +25221,250045 +25222,252056 +25230,251370 +25240,251229 +25240,251641 +25241,250997 +25242,251351 +25243,251581 +25244,250931 +25245,252521 +25250,250501 +25260,251137 +25261,251137 +25261,251641 +25262,250411 +25263,251765 +25264,252483 +25265,250680 +25266,250463 +25266,251305 +25267,259025 +25268,251543 +25268,252385 +25269,252385 +25270,251924 +25271,250851 +25271,251924 +25280,251517 +25280,252075 +25281,251291 +25282,251930 +25283,251240 +25283,251484 +25284,251636 +25285,251116 +25286,251462 +25286,251517 +25286,251667 +25287,251517 +25287,251673 +25287,251863 +25288,251240 +25289,250447 +25289,250642 +25290,250753 +25290,251863 +25300,252173 +25310,250030 +25315,251386 +25316,251771 +25317,250030 +25318,250030 +25318,251500 +25318,251575 +25318,251811 +25320,250273 +25327,250432 +25330,252445 +25331,250030 +25331,252252 +25332,250962 +25333,251641 +25334,250707 +25334,259025 +25335,251641 +25336,250498 +25337,250479 +25340,251431 +25340,252424 +25341,250740 +25341,251095 +25341,251459 +25343,259025 +25344,259025 +25350,252173 +25351,252173 +25352,252173 +25353,252173 +25354,252173 +25360,252173 +25370,250349 +25400,250582 +25410,250812 +25411,250978 +25412,251538 +25413,250925 +25420,251804 +25430,251193 +25440,252555 +25450,250096 +25457,252537 +25460,250735 +25471,251692 +25480,252189 +25500,251713 +25510,252271 +25511,252271 +25512,252271 +25513,250390 +25513,251713 +25513,252271 +25514,251734 +25514,252022 +25515,252271 +25516,251615 +25516,251713 +25517,251615 +25518,251615 +25520,251734 +25526,250432 +25526,251734 +25527,250432 +25528,250432 +25529,251734 +25530,252430 +25537,252430 +25538,252430 +25539,250254 +25539,252430 +25540,251214 +25547,252537 +25548,250637 +25549,250450 +25550,250595 +25551,250313 +25551,250576 +25551,252477 +25552,251734 +25552,252458 +25553,252458 +25554,251734 +25555,251734 +25555,252017 +25555,252022 +25556,251734 +25560,250122 +25560,252094 +25566,252081 +25567,252094 +25568,252094 +25569,252081 +25569,252094 +25570,259010 +25571,250870 +25571,251235 +25571,259010 +25572,259010 +25573,250175 +25574,250175 +25575,250175 +25576,251235 +25576,259010 +25577,251235 +25580,250864 +25583,252347 +25584,252347 +25586,250241 +25587,250241 +25588,259031 +25589,250241 +25590,250390 +25591,250390 +25592,250390 +25592,250621 +25593,252081 +25594,251266 +25594,251832 +25595,250899 +25595,251266 +25595,252213 +25595,259031 +25596,259031 +25597,250827 +25597,259031 +25598,250254 +25599,250254 +25600,250404 +25610,251569 +25611,250024 +25611,250371 +25611,251569 +25612,250371 +25612,251569 +25613,250621 +25614,251569 +25615,250621 +25616,251386 +25617,250352 +25617,252402 +25620,252347 +25630,252154 +25631,259046 +25632,251961 +25632,259046 +25633,252347 +25633,259046 +25634,252347 +25635,252347 +25636,252347 +25637,252347 +25638,250984 +25638,251288 +25639,250984 +25639,251288 +25640,252347 +25650,251155 +25651,250019 +25651,251155 +25652,250019 +25653,251155 +25654,252347 +25655,251155 +25656,251155 +25657,251155 +25658,251155 +25660,250122 +25670,252206 +25680,252402 +25689,250984 +25690,252542 +25691,250024 +25692,250024 +25692,250621 +25693,251615 +25693,251902 +25700,252038 +25710,252038 +25711,251403 +25712,251403 +25713,251850 +25714,251403 +25714,251850 +25714,259062 +25715,250058 +25716,251001 +25717,250058 +25717,259097 +25717,259101 +25718,250058 +25719,250886 +25720,250518 +25721,250518 +25721,251752 +25721,259139 +25722,250306 +25722,250328 +25722,250714 +25723,250306 +25724,250518 +25724,251399 +25725,251399 +25726,251272 +25727,251790 +25730,250349 +25735,252509 +25736,250349 +25736,252509 +25737,250220 +25737,250349 +25737,250447 +25737,250791 +25737,250946 +25738,250349 +25738,252509 +25739,250349 +25740,251728 +25746,251728 +25747,250426 +25748,250609 +25748,251500 +25748,252496 +25749,251500 +25749,251728 +25749,252496 +25750,252234 +25751,252234 +25752,250557 +25753,250557 +25753,251919 +25790,250447 +25790,250772 +25790,251484 +25790,251497 +25790,251654 +25791,252228 +25792,250447 +25793,250772 +25794,250616 +25794,250772 +25794,251556 +25794,259084 +25795,251850 +25795,259062 +25796,251850 +25797,251850 +25798,252398 +25799,250306 +25969,290803 +26001,260892 +26002,260892 +26003,260892 +26004,260892 +26005,260892 +26006,260892 +26006,261682 +26007,260892 +26008,260892 +26009,260892 +26100,260125 +26100,261510 +26110,261063 +26111,260125 +26111,261158 +26120,260051 +26121,261032 +26121,261657 +26122,260677 +26122,261183 +26123,261695 +26124,261079 +26124,261124 +26124,261222 +26125,261774 +26126,260913 +26130,260064 +26130,260511 +26130,261243 +26131,260836 +26131,261269 +26131,261354 +26132,260889 +26132,261354 +26132,261465 +26132,261471 +26133,260048 +26133,260775 +26133,261217 +26133,261320 +26134,260815 +26134,261011 +26134,261531 +26135,260355 +26135,260820 +26140,260841 +26141,260064 +26142,261682 +26143,260990 +26144,260532 +26144,260661 +26144,261085 +26145,261085 +26146,261238 +26147,261085 +26148,261085 +26151,260197 +26160,260027 +26190,261032 +26191,261449 +26200,260717 +26200,261026 +26210,260131 +26210,260491 +26210,261487 +26211,260624 +26211,260630 +26211,261487 +26212,092194 +26212,260453 +26212,260630 +26212,260658 +26212,261281 +26213,260738 +26213,260873 +26213,261098 +26213,261503 +26214,260563 +26214,261275 +26215,261559 +26216,261315 +26220,261119 +26221,260683 +26222,261275 +26223,260769 +26224,261525 +26230,260429 +26240,260435 +26241,260257 +26250,260184 +26250,261389 +26256,261676 +26257,260244 +26257,260743 +26258,260504 +26258,260949 +26259,260550 +26259,260696 +26259,261742 +26260,261406 +26261,261130 +26261,261413 +26270,261102 +26280,260619 +26288,261623 +26288,261835 +26289,260619 +26290,260337 +26291,260488 +26291,261392 +26291,261807 +26292,260717 +26292,261660 +26300,261026 +26310,260239 +26311,260159 +26311,260374 +26311,260414 +26311,260526 +26312,260162 +26312,260309 +26312,261578 +26313,261601 +26314,260794 +26315,260103 +26315,260309 +26315,260440 +26315,260928 +26315,261341 +26320,260260 +26321,260316 +26321,260867 +26321,260952 +26321,261145 +26321,261490 +26321,261768 +26322,260146 +26322,260321 +26323,260223 +26323,260756 +26324,260099 +26325,260393 +26325,260407 +26325,261716 +26325,261721 +26326,261308 +26327,260276 +26328,260602 +26329,260374 +26329,260380 +26329,260934 +26329,261644 +26329,261755 +26329,261780 +26329,261793 +26330,260342 +26338,261428 +26339,260012 +26339,261428 +26340,261294 +26350,260466 +26359,261546 +26360,260645 +26370,261050 +26371,261452 +26371,261639 +26372,260781 +26373,260579 +26374,260965 +26375,260598 +26376,261434 +26500,260368 +26509,260070 +26510,261177 +26511,261709 +26512,261584 +26513,260201 +26520,260472 +26525,260808 +26526,260547 +26527,260472 +26527,260547 +26528,260472 +26529,260472 +26530,260033 +26531,260033 +26532,261618 +26533,261047 +26540,260110 +26550,261256 +26559,260086 +26560,260218 +26570,261200 +26580,260184 +26584,260722 +26585,260178 +26585,261367 +26586,260585 +26586,260987 +26586,261814 +26587,260700 +26587,261004 +26587,261737 +26588,260282 +26588,260295 +26589,260178 +26589,261196 +27001,270288 +27002,270288 +27003,270288 +27004,270288 +27100,270180 +27110,270180 +27111,270180 +27112,270180 +27113,270180 +27113,270351 +27114,270180 +27115,270180 +27116,270180 +27117,270180 +27118,270180 +27120,270116 +27122,270116 +27123,270116 +27124,270116 +27125,270116 +27126,270116 +27127,270116 +27128,270116 +27129,270116 +27130,270044 +27131,270044 +27132,270044 +27133,270044 +27134,270180 +27135,270180 +27136,270180 +27140,270288 +27141,270288 +27142,270116 +27143,270116 +27144,270116 +27145,270142 +27146,270116 +27146,270288 +27150,270399 +27151,270399 +27152,270235 +27152,270399 +27153,270399 +27154,270399 +27155,270399 +27156,270207 +27157,270399 +27160,270288 +27161,270288 +27162,270142 +27163,270142 +27164,270142 +27166,270116 +27168,270142 +27169,270288 +27170,270497 +27177,270497 +27178,270497 +27179,270497 +27180,270288 +27181,270235 +27181,270288 +27182,270288 +27183,270235 +27184,270235 +27185,270235 +27185,270288 +27186,270235 +27187,270497 +27188,270288 +27188,270497 +27190,270142 +27190,270288 +27191,270288 +27192,270288 +27200,270403 +27203,270403 +27204,270403 +27205,270403 +27206,270403 +27207,270403 +27208,270403 +27209,270403 +27210,270235 +27210,270288 +27211,270235 +27212,270497 +27213,270497 +27214,270497 +27215,270327 +27216,270403 +27217,270403 +27220,270207 +27226,270207 +27227,270207 +27228,270207 +27229,270207 +27230,270288 +27231,270288 +27232,270288 +27233,270235 +27233,270288 +27234,270235 +27235,270207 +27240,270291 +27241,270291 +27243,270538 +27244,270538 +27245,270538 +27246,270446 +27247,270291 +27247,270462 +27248,270446 +27250,270109 +27256,270109 +27257,270109 +27258,270109 +27259,270109 +27260,270109 +27266,270109 +27267,270109 +27268,270109 +27269,270109 +27270,270462 +27271,270109 +27272,270462 +27273,270462 +27274,270462 +27275,270462 +27276,270044 +27277,270044 +27278,270044 +27279,270462 +27280,270462 +27283,270462 +27286,270446 +27287,270446 +27289,270109 +27289,270288 +27290,270288 +27293,270116 +27293,270288 +27294,270288 +27296,270288 +27297,270288 +27298,270288 +27299,270207 +27299,270288 +27300,270229 +27305,270229 +27306,270229 +27307,270229 +27308,270229 +27309,270229 +27310,270522 +27317,270522 +27318,270522 +27320,270500 +27324,270174 +27325,270174 +27326,270174 +27327,270174 +27328,270174 +27328,270500 +27329,270500 +27330,270478 +27331,270478 +27332,270478 +27333,270478 +27334,270478 +27335,270478 +27336,270478 +27338,270478 +27339,270174 +27339,270478 +27340,270082 +27341,270240 +27342,270240 +27343,270082 +27344,270082 +27345,270240 +27346,270240 +27347,270240 +27347,270478 +27348,270240 +27349,270082 +27350,270082 +27359,270082 +27360,270266 +27362,270431 +27363,270431 +27364,270431 +27366,270266 +27367,270266 +27368,270266 +27369,270266 +27369,270431 +27370,270076 +27370,270569 +27372,270076 +27372,270229 +27373,270076 +27373,270399 +27374,270399 +27375,270076 +27375,270155 +27375,270654 +27376,270155 +27377,270155 +27378,270155 +27379,270155 +27380,270229 +27388,270229 +27389,270229 +27390,270500 +27391,270478 +27391,270500 +27392,270575 +27400,270168 +27400,270229 +27400,270312 +27410,270312 +27411,270312 +27412,270312 +27413,270312 +27413,270478 +27414,270312 +27415,270312 +27416,270312 +27417,270312 +27418,270312 +27419,270312 +27419,270410 +27420,270312 +27421,270594 +27422,270594 +27423,270594 +27424,270594 +27425,270594 +27430,270410 +27437,270410 +27438,270410 +27439,270410 +27440,270594 +27450,270410 +27460,270594 +27466,270594 +27468,270594 +27469,270594 +27470,270410 +27500,270168 +27510,270168 +27511,270168 +27512,270168 +27513,270168 +27514,270168 +27515,270168 +27515,270327 +27516,270168 +27517,270168 +27518,270168 +27519,270168 +27520,270095 +27527,270095 +27528,270095 +27529,270095 +27530,270095 +27531,270095 +27532,270095 +27533,270095 +27533,270168 +27540,270581 +27543,270581 +27544,270581 +27545,270581 +27546,270581 +27547,270581 +27548,270581 +27549,270410 +27549,270581 +27550,270608 +27554,270608 +27555,270608 +27556,270608 +27557,270608 +27558,270608 +27559,270608 +27560,270327 +27568,270327 +27569,270327 +27570,270039 +27576,270039 +27577,270039 +27578,270039 +27579,270039 +27590,270312 +27591,270312 +27592,270312 +27592,270410 +27593,270410 +27594,270581 +27595,270168 +27596,270608 +27600,270575 +27610,270575 +27611,270425 +27612,270425 +27612,270575 +27613,270575 +27614,270266 +27614,270575 +27615,270266 +27615,270575 +27616,270575 +27617,270575 +27618,270575 +27619,270575 +27620,270556 +27623,270556 +27624,270556 +27625,270556 +27626,270556 +27627,270556 +27628,270556 +27630,270620 +27631,270556 +27631,270620 +27632,270620 +27633,270431 +27633,270556 +27634,270620 +27635,270556 +27636,270556 +27637,270575 +27638,270556 +27639,270620 +27640,270060 +27646,270370 +27647,270060 +27648,270060 +27649,270060 +27650,270060 +27650,270348 +27651,270348 +27652,270348 +27653,270348 +27654,270348 +27655,270348 +27656,270348 +27657,270348 +27658,270348 +27659,270121 +27659,270348 +27660,270060 +27661,270060 +27661,270121 +27662,270121 +27663,270060 +27664,270060 +27664,270121 +27665,270121 +27666,270121 +27667,270121 +27668,270060 +27670,270459 +27671,270459 +27672,270459 +27673,270459 +27675,270370 +27676,270370 +27677,270060 +27677,270121 +27677,270370 +27678,270060 +27679,270060 +27680,279019 +27685,279019 +27686,279019 +27687,279019 +27688,279019 +27689,279019 +27690,270575 +27691,270266 +27692,270266 +27693,270266 +27694,270060 +27695,270060 +27695,279019 +27696,279019 +27697,279019 +27698,270060 +27699,270266 +27700,270517 +27700,270636 +27710,270517 +27711,270517 +27712,270517 +27713,270517 +27714,270517 +27715,270517 +27720,270484 +27721,270484 +27722,270484 +27723,270484 +27724,270484 +27725,270484 +27726,270484 +27727,270484 +27728,270484 +27729,270484 +27730,270018 +27737,270018 +27738,270018 +27740,270305 +27742,270305 +27743,270543 +27744,270543 +27745,270543 +27747,270305 +27748,270305 +27749,270305 +27750,270272 +27751,270272 +27752,270305 +27760,270272 +27765,270615 +27766,270615 +27767,270615 +27768,270615 +27770,270636 +27773,270023 +27774,270023 +27775,270023 +27776,270023 +27777,270636 +27778,270023 +27778,270636 +27779,270636 +27780,270193 +27785,270193 +27786,270193 +27787,270193 +27788,270193 +27789,270193 +27790,270057 +27791,270305 +27792,270057 +27793,270057 +27794,270057 +27796,270517 +27797,270517 +27798,270057 +27800,270654 +27810,270654 +27811,270654 +27812,270654 +27813,270654 +27814,270654 +27815,270654 +27816,270654 +27817,270333 +27818,270654 +27820,270654 +27821,270654 +27822,270654 +27823,270654 +27824,270214 +27825,270654 +27826,270214 +27830,270654 +27832,270214 +27833,270214 +27834,270214 +27835,270214 +27836,270333 +27837,270333 +27840,270654 +27841,270654 +27842,270654 +27843,270018 +27843,270654 +27845,270018 +27849,270018 +27850,270667 +27860,270641 +27861,270641 +27861,270667 +27863,270667 +27864,270667 +27865,270333 +27865,270386 +27866,270386 +27866,270667 +27867,270386 +27867,270667 +27868,270641 +27869,270667 +27870,270253 +27876,270253 +27877,270253 +27878,270253 +27879,270253 +27880,279024 +27888,270137 +27889,270137 +27890,270137 +27891,270137 +27892,270193 +27893,270193 +28000,280796 +28001,280796 +28002,280796 +28003,280796 +28004,280796 +28005,280796 +28006,280796 +28007,280796 +28008,280796 +28009,280796 +28010,280796 +28011,280796 +28012,280796 +28013,280796 +28014,280796 +28015,280796 +28016,280796 +28017,280796 +28018,280796 +28019,280796 +28020,280796 +28021,280796 +28022,280796 +28023,280796 +28024,280796 +28024,281150 +28025,280796 +28026,280796 +28027,280796 +28028,280796 +28029,280796 +28030,280796 +28031,280796 +28032,280796 +28033,280796 +28034,280796 +28035,280796 +28036,280796 +28037,280796 +28038,280796 +28039,280796 +28040,280796 +28041,280796 +28042,280796 +28043,280796 +28044,280796 +28045,280796 +28046,280796 +28047,280796 +28048,280796 +28049,280796 +28050,280796 +28051,280796 +28052,280796 +28053,280796 +28054,280796 +28055,280796 +28100,280066 +28108,280066 +28109,280066 +28110,280091 +28120,280091 +28120,280455 +28124,281245 +28130,281625 +28140,280590 +28150,281646 +28160,281454 +28160,281512 +28170,281631 +28180,281512 +28189,280164 +28189,281071 +28189,281533 +28190,190674 +28190,280881 +28190,281185 +28191,280698 +28191,280719 +28191,281179 +28192,280210 +28193,280395 +28194,280203 +28194,281245 +28195,289020 +28196,289020 +28200,281317 +28210,280954 +28210,281603 +28211,280549 +28212,280954 +28213,280421 +28214,280565 +28219,280549 +28220,280800 +28221,280800 +28222,280800 +28223,281150 +28224,281150 +28229,281776 +28231,281277 +28232,281277 +28240,280724 +28248,280724 +28250,280611 +28250,281527 +28260,280611 +28270,280442 +28270,280611 +28280,280549 +28290,281277 +28292,280549 +28292,280611 +28293,281837 +28294,281258 +28295,281599 +28296,281356 +28296,281837 +28297,281356 +28300,280133 +28320,281132 +28330,281322 +28340,281610 +28341,281610 +28342,281610 +28343,281610 +28350,280409 +28359,281473 +28360,281701 +28370,280528 +28380,280437 +28390,280199 +28391,281570 +28400,280474 +28400,280611 +28410,280822 +28411,280908 +28412,280231 +28413,280231 +28420,280611 +28430,280105 +28440,280685 +28450,280468 +28460,280875 +28470,280382 +28480,280685 +28490,280186 +28491,280936 +28492,280231 +28492,280822 +28500,280148 +28510,280339 +28511,281659 +28512,281795 +28514,281006 +28514,281795 +28515,281013 +28521,281230 +28522,281230 +28523,281230 +28524,281230 +28530,280915 +28540,281104 +28550,281467 +28560,280357 +28570,281028 +28580,280112 +28590,281809 +28594,281551 +28595,280552 +28596,280259 +28597,280604 +28598,281739 +28600,280967 +28607,280040 +28609,281415 +28609,281757 +28609,281782 +28610,281744 +28610,281757 +28620,280088 +28630,281718 +28635,280920 +28640,280318 +28648,280318 +28649,281283 +28650,280376 +28660,280225 +28670,281816 +28680,281338 +28690,280262 +28691,281760 +28692,281760 +28693,281198 +28694,280513 +28695,280992 +28696,281090 +28700,281343 +28701,281343 +28702,281343 +28703,281343 +28706,281343 +28707,280455 +28707,281343 +28708,281343 +28709,281343 +28710,280869 +28720,280284 +28721,280297 +28721,281219 +28722,281684 +28723,281087 +28729,280941 +28729,281586 +28729,281697 +28730,280278 +28737,280246 +28737,280647 +28737,281147 +28737,281381 +28739,280626 +28739,280632 +28739,280973 +28739,281821 +28740,281202 +28742,280761 +28743,280344 +28743,280626 +28749,280035 +28749,281126 +28749,281202 +28750,280455 +28750,281296 +28751,280301 +28752,289015 +28753,289015 +28754,289015 +28754,289020 +28755,280014 +28755,280702 +28755,280783 +28755,281261 +28756,281436 +28760,289036 +28770,280455 +28791,281441 +28792,280856 +28794,280679 +28801,280053 +28802,280053 +28803,280053 +28804,280053 +28805,280053 +28806,280053 +28807,280040 +28807,280053 +28810,281723 +28811,280480 +28812,281111 +28812,281662 +28813,281163 +28813,281548 +28814,280534 +28815,280571 +28815,281224 +28816,280323 +28816,281564 +28817,281375 +28818,280127 +28818,281369 +28821,280493 +28822,280493 +28823,280493 +28830,281300 +28840,280843 +28850,281489 +28860,281049 +28861,281049 +28862,281049 +28863,280416 +28864,280029 +28880,280838 +28890,280758 +28891,281678 +28901,280650 +28902,280650 +28903,280650 +28904,280650 +28905,280650 +28906,280650 +28907,280650 +28909,280650 +28911,280745 +28912,280745 +28913,280745 +28914,280745 +28915,280745 +28916,280745 +28917,280745 +28918,280745 +28919,280745 +28921,280072 +28922,280072 +28923,280072 +28924,280072 +28925,280072 +28931,280920 +28932,280920 +28933,280920 +28934,280920 +28935,280920 +28936,280920 +28937,280920 +28938,280920 +28939,280151 +28941,280587 +28942,280587 +28943,280587 +28944,280587 +28945,280587 +28946,280587 +28947,280587 +28950,280894 +28970,280730 +28971,280663 +28976,280170 +28977,280360 +28978,280506 +28979,281408 +28981,281065 +28982,281065 +28983,281065 +28984,281065 +28990,281505 +28991,281492 +29001,290672 +29002,290672 +29003,290672 +29004,290672 +29005,290672 +29006,290672 +29007,290672 +29008,290672 +29009,290672 +29010,290385 +29010,290672 +29011,290672 +29012,290672 +29013,290672 +29014,290672 +29015,290672 +29016,290672 +29017,290672 +29018,290672 +29100,290424 +29108,290580 +29109,290901 +29110,290733 +29120,290081 +29130,290075 +29140,290672 +29150,290115 +29160,290398 +29170,290430 +29180,290831 +29190,290672 +29191,290672 +29193,290672 +29194,290038 +29194,290043 +29195,290445 +29196,290672 +29197,290672 +29197,290923 +29200,290154 +29210,290496 +29220,290477 +29230,290154 +29230,299023 +29240,290939 +29250,290154 +29260,290154 +29300,290173 +29310,290957 +29311,290957 +29312,290960 +29313,290976 +29314,290154 +29314,290173 +29315,290173 +29315,290982 +29320,290326 +29327,290897 +29328,290884 +29329,290884 +29330,290108 +29340,290350 +29350,290206 +29360,290748 +29370,290287 +29380,290461 +29391,290461 +29392,290635 +29394,290846 +29400,290846 +29400,299044 +29410,291009 +29420,290311 +29430,290846 +29430,299039 +29440,290607 +29450,290810 +29451,290770 +29452,290379 +29460,290141 +29461,290521 +29462,290653 +29470,290483 +29471,299044 +29480,290568 +29490,290290 +29490,290461 +29491,290069 +29491,290249 +29492,290574 +29492,290640 +29493,290228 +29494,290213 +29500,290120 +29510,290120 +29520,290555 +29530,290017 +29531,290593 +29532,290727 +29533,290593 +29540,290154 +29550,290189 +29551,290363 +29552,290120 +29552,290189 +29560,290803 +29566,290402 +29567,290136 +29569,290385 +29569,290803 +29570,290385 +29580,290385 +29590,290672 +29591,290672 +29592,290385 +29593,290120 +29601,290691 +29602,290691 +29603,290691 +29604,290691 +29610,290764 +29611,290614 +29612,290764 +29620,290672 +29620,299018 +29630,290252 +29631,290252 +29639,290252 +29640,290542 +29649,290705 +29650,290705 +29651,290705 +29660,290691 +29670,290691 +29679,290234 +29679,290691 +29680,290516 +29688,290516 +29689,290516 +29690,290419 +29691,290688 +29692,290419 +29692,290688 +29693,290516 +29698,290516 +29700,290944 +29710,290799 +29711,290022 +29712,290995 +29713,290022 +29713,290995 +29714,290859 +29715,290878 +29716,290332 +29718,290094 +29718,290265 +29718,290304 +29718,290509 +29718,290944 +29719,290271 +29719,290332 +29719,290878 +29719,290944 +29719,290995 +29720,290672 +29720,290825 +29730,290825 +29738,290712 +29738,290825 +29740,290944 +29749,290944 +29750,290056 +29750,290944 +29751,290944 +29752,290862 +29753,290167 +29753,290192 +29753,290862 +29754,290458 +29755,290347 +29758,290825 +29760,290944 +29770,290918 +29780,290751 +29787,290751 +29788,290537 +29789,290537 +29790,290944 +29791,290666 +29792,290629 +29792,290944 +29793,290918 +29796,290918 +30001,300308 +30002,300308 +30003,300308 +30004,300308 +30005,300308 +30006,300308 +30007,300308 +30008,300308 +30009,300308 +30010,300308 +30011,300308 +30012,300308 +30100,300308 +30107,300308 +30108,300308 +30110,300308 +30120,300308 +30130,300102 +30139,300308 +30140,309012 +30148,309012 +30149,309012 +30150,300308 +30151,300308 +30152,300308 +30153,300308 +30154,300308 +30155,300308 +30156,300308 +30157,300308 +30158,300308 +30160,300308 +30161,300308 +30162,300308 +30163,300308 +30164,300308 +30165,300308 +30166,300308 +30167,300308 +30168,300308 +30169,300308 +30170,300294 +30176,300320 +30177,300294 +30178,300294 +30179,300308 +30180,300124 +30189,300124 +30189,300177 +30190,300047 +30191,300145 +30192,300145 +30193,300294 +30194,300294 +30195,300158 +30201,300161 +30202,300161 +30203,300161 +30204,300161 +30205,300161 +30300,300161 +30310,300161 +30319,300161 +30320,300217 +30330,300161 +30331,300308 +30332,300217 +30333,300217 +30334,300217 +30335,300217 +30335,300269 +30338,300217 +30350,300161 +30351,300161 +30360,300413 +30364,300413 +30365,300161 +30366,300161 +30367,300161 +30368,300161 +30369,300161 +30369,300413 +30370,300161 +30370,300354 +30380,300161 +30380,300354 +30381,300161 +30382,300161 +30383,300161 +30384,300161 +30385,300161 +30385,300308 +30386,300161 +30387,300161 +30387,300281 +30390,300161 +30391,300161 +30392,300161 +30393,300161 +30394,300161 +30395,300161 +30396,300161 +30397,300161 +30398,300161 +30399,300161 +30400,300158 +30410,300158 +30411,300158 +30412,300158 +30413,300158 +30413,300281 +30420,300130 +30420,300177 +30430,300177 +30439,300177 +30440,300281 +30441,300281 +30442,300281 +30500,300275 +30506,300275 +30507,300275 +30508,300275 +30509,300275 +30510,300434 +30520,300222 +30528,300222 +30529,300222 +30530,300196 +30540,300119 +30550,300026 +30559,300026 +30560,300079 +30561,300079 +30562,300183 +30563,300183 +30564,300256 +30565,300389 +30570,300308 +30579,300308 +30580,300308 +30588,300308 +30589,300308 +30590,300308 +30591,300373 +30592,300308 +30592,300354 +30592,300373 +30593,300161 +30594,300161 +30600,300098 +30609,300098 +30610,300341 +30611,300315 +30612,300406 +30613,300428 +30620,300200 +30626,300011 +30626,300200 +30627,300275 +30628,300200 +30629,300200 +30640,300011 +30648,300011 +30649,300011 +30700,300373 +30708,300373 +30709,300373 +30710,300373 +30710,309027 +30720,300354 +30729,300354 +30730,300354 +30739,300354 +30739,300373 +30740,300367 +30800,300243 +30810,300243 +30811,300243 +30812,300243 +30813,300243 +30814,300243 +30815,300243 +30816,300243 +30817,300243 +30818,300243 +30820,300050 +30830,300308 +30831,300308 +30832,300308 +30833,300308 +30834,300243 +30834,300308 +30835,300161 +30835,300308 +30836,300308 +30837,300308 +30840,300085 +30848,300085 +30849,300085 +30850,300392 +30858,300269 +30858,300392 +30859,300063 +30859,300392 +30860,300269 +30868,300161 +30868,300269 +30870,300269 +30875,300269 +30876,300243 +30876,300269 +30877,300269 +30878,300243 +30878,300269 +30879,300269 +30880,300032 +30889,300032 +30889,300243 +30890,300243 +30890,300336 +30891,300336 +30892,300238 +30893,300243 +31001,312016 +31002,312016 +31003,312016 +31004,312016 +31005,312016 +31006,312016 +31007,312016 +31008,312016 +31009,312016 +31010,312016 +31010,319019 +31011,312016 +31012,312016 +31013,310168 +31013,319024 +31013,319030 +31014,312016 +31015,312016 +31016,312016 +31100,312068 +31109,310399 +31110,310885 +31119,310885 +31130,311614 +31131,310749 +31132,312573 +31133,311477 +31133,312460 +31140,310386 +31150,311672 +31151,311831 +31152,311803 +31153,310076 +31153,310898 +31154,310180 +31154,312299 +31154,312346 +31160,319061 +31170,311311 +31170,311939 +31171,311939 +31172,311189 +31172,311311 +31172,311944 +31173,311939 +31174,310522 +31174,310752 +31174,310765 +31174,310832 +31174,310850 +31174,311213 +31174,312536 +31174,312628 +31175,311206 +31175,312140 +31176,311206 +31176,312606 +31177,311542 +31177,312606 +31178,310023 +31179,312606 +31180,319077 +31190,310765 +31191,311094 +31191,319058 +31192,310235 +31192,310863 +31193,310403 +31193,311363 +31194,311017 +31194,311363 +31195,319024 +31200,310977 +31208,310410 +31210,310291 +31219,311666 +31219,311705 +31219,311751 +31219,312042 +31219,312251 +31219,312303 +31220,312191 +31227,310636 +31227,311167 +31227,311419 +31227,311629 +31228,310082 +31228,310351 +31228,310431 +31228,310961 +31228,312303 +31229,310478 +31229,310615 +31229,310790 +31229,312310 +31230,312515 +31239,310266 +31240,310410 +31241,310116 +31241,311252 +31241,311688 +31242,312554 +31243,310364 +31243,310462 +31243,311252 +31243,311607 +31250,312009 +31251,311424 +31252,310538 +31253,311712 +31260,311521 +31261,310155 +31262,310121 +31263,310305 +31263,310804 +31264,310057 +31264,311748 +31270,311430 +31271,310214 +31271,311000 +31272,310137 +31280,310018 +31280,310142 +31280,311770 +31281,310142 +31281,310996 +31281,311483 +31281,311846 +31281,311901 +31282,311666 +31282,311825 +31283,311398 +31284,312652 +31290,310116 +31290,312606 +31291,311206 +31291,311213 +31292,310057 +31292,312573 +31292,312606 +31293,312248 +31300,312270 +31310,310673 +31311,310673 +31312,310692 +31313,311799 +31314,312205 +31315,311786 +31320,311691 +31330,312541 +31340,311635 +31350,312021 +31360,311075 +31370,311043 +31380,310654 +31381,310654 +31382,311640 +31383,311786 +31390,311918 +31391,311786 +31392,312055 +31393,310517 +31394,312074 +31395,310459 +31395,311141 +31395,311509 +31395,311923 +31395,311976 +31396,311923 +31396,312384 +31397,312286 +31398,310569 +31398,312286 +31400,312166 +31409,311350 +31409,312166 +31410,312613 +31411,311350 +31412,310594 +31413,312520 +31414,311136 +31415,312107 +31416,312457 +31417,311287 +31418,312476 +31420,312439 +31421,311326 +31422,312378 +31430,310193 +31438,310288 +31438,311580 +31439,310288 +31439,311580 +31439,311995 +31440,311593 +31448,312093 +31448,312418 +31448,312423 +31449,312423 +31450,311810 +31451,311115 +31451,311810 +31451,311982 +31451,312227 +31452,311192 +31453,310958 +31454,310713 +31454,311810 +31454,312093 +31454,312418 +31460,310095 +31460,311461 +31470,310885 +31471,311727 +31472,311249 +31472,312378 +31473,311249 +31480,312423 +31481,310288 +31481,311580 +31482,311568 +31483,311568 +31484,311568 +31485,311568 +31486,310863 +31487,311555 +31490,310692 +31491,311038 +31491,312129 +31492,311038 +31493,311108 +31494,310945 +31494,311509 +31494,311516 +31495,312172 +31496,312359 +31500,312325 +31510,311081 +31511,310620 +31512,311069 +31513,310327 +31514,312495 +31515,310641 +31520,310689 +31521,311069 +31521,311764 +31522,311733 +31522,312331 +31523,310060 +31523,310484 +31530,310787 +31540,310575 +31550,312080 +31560,310425 +31570,312153 +31579,310667 +31580,311574 +31587,311653 +31588,311458 +31589,312233 +31590,310706 +31591,310771 +31592,310728 +31593,311056 +31600,310608 +31610,312589 +31620,310863 +31620,311228 +31621,310863 +31630,310983 +31638,310924 +31638,310983 +31639,310924 +31639,310983 +31640,310581 +31650,312114 +31660,312482 +31669,312482 +31670,311957 +31671,310333 +31671,310348 +31671,311960 +31671,312567 +31680,311859 +31689,311332 +31690,310930 +31691,311347 +31692,310039 +31692,310044 +31692,311120 +31693,310983 +31693,311154 +31694,310924 +31695,310924 +31696,310924 +31697,310924 +31698,310983 +31699,310924 +31699,310983 +31700,310500 +31708,310174 +31710,312649 +31711,312397 +31712,312397 +31713,310500 +31714,310500 +31715,310500 +31720,310500 +31720,310543 +31730,310500 +31740,312212 +31744,310879 +31745,311290 +31746,312634 +31747,312135 +31748,310902 +31749,311022 +31750,310811 +31751,311878 +31752,312444 +31753,311379 +31754,310240 +31754,311173 +31760,310826 +31770,311537 +31780,312508 +31789,311537 +31789,312508 +31790,310229 +31790,312592 +31791,312264 +31792,310543 +31793,310543 +31794,310500 +31794,311022 +31795,310500 +31796,310500 +31797,312362 +31798,310174 +31798,311402 +31799,311017 +31799,311862 +31799,311884 +31799,312362 +31800,310109 +31809,310734 +31809,311897 +31810,310446 +31810,311304 +31810,312401 +31820,310847 +31829,310919 +31830,311385 +31839,310272 +31840,310370 +31840,311234 +31849,310253 +31849,311271 +31850,310253 +31860,319045 +31866,310497 +31867,310253 +31867,310403 +31867,311265 +31867,311311 +31867,311862 +31868,310253 +31868,311311 +31869,310497 +31869,311265 +31870,319083 +31876,310312 +31877,311445 +31878,311445 +31879,311445 +31880,311496 +31890,310556 +31891,310207 +31891,311445 +31892,311311 +31892,311363 +32001,320548 +32002,320087 +32002,320548 +32003,320548 +32004,320548 +32005,320087 +32005,320548 +32005,320757 +32100,320261 +32101,320874 +32102,320874 +32103,320548 +32110,320551 +32111,320551 +32120,320599 +32120,320874 +32130,320760 +32133,320760 +32134,320760 +32135,320610 +32135,320760 +32136,320760 +32137,320610 +32137,320760 +32138,320610 +32139,320760 +32140,320874 +32141,320760 +32141,320874 +32150,320599 +32151,320599 +32152,320261 +32153,320261 +32153,320599 +32160,320527 +32161,320527 +32162,320527 +32163,320527 +32164,320527 +32170,320028 +32171,320028 +32172,320028 +32172,320548 +32200,320277 +32211,320277 +32212,320338 +32213,320277 +32220,320564 +32226,320564 +32227,320564 +32228,320564 +32229,320564 +32235,320646 +32236,320564 +32300,320090 +32310,320739 +32311,320739 +32312,320739 +32313,320090 +32314,320090 +32315,320090 +32315,320880 +32316,320880 +32317,320090 +32318,320090 +32320,320739 +32329,320179 +32329,320739 +32330,320179 +32334,320179 +32335,320179 +32336,320179 +32337,320179 +32338,320179 +32339,320179 +32340,320880 +32348,320880 +32349,320880 +32350,320723 +32356,320603 +32357,320150 +32357,320381 +32357,320603 +32357,320723 +32357,320837 +32358,320381 +32359,320723 +32360,320837 +32365,320837 +32366,320837 +32367,320837 +32368,320837 +32369,320837 +32370,320381 +32370,320603 +32371,320381 +32371,320603 +32372,320150 +32373,320150 +32374,320150 +32375,320150 +32375,320441 +32400,320697 +32410,320467 +32411,320467 +32412,320185 +32413,320185 +32414,320697 +32415,320697 +32416,320185 +32416,320697 +32417,320034 +32417,320527 +32417,320697 +32418,320697 +32419,320408 +32420,320408 +32425,320408 +32426,320408 +32427,320408 +32428,320408 +32429,320408 +32430,320224 +32431,320104 +32432,320104 +32433,320185 +32434,320185 +32440,320599 +32448,320527 +32449,320599 +32450,320258 +32452,320659 +32453,320744 +32454,320258 +32455,320744 +32456,320343 +32456,320659 +32457,320659 +32459,320258 +32499,320489 +32500,320198 +32510,320198 +32511,320198 +32512,320132 +32513,320198 +32514,320132 +32515,320198 +32515,320744 +32516,320198 +32520,320049 +32520,320111 +32520,320132 +32521,320132 +32522,320132 +32523,320132 +32524,320132 +32525,320132 +32526,320132 +32526,320356 +32530,320132 +32530,320356 +32534,320198 +32535,320356 +32536,320356 +32537,320356 +32538,320356 +32539,320356 +32540,320343 +32545,320343 +32546,320343 +32547,320343 +32547,320929 +32548,320489 +32549,320489 +32550,320868 +32554,320868 +32555,320868 +32556,320868 +32557,320868 +32557,320929 +32558,320868 +32560,320868 +32562,320868 +32563,320868 +32570,320454 +32572,320454 +32572,320659 +32574,320198 +32574,320454 +32575,320454 +32576,320454 +32577,320454 +32578,320454 +32578,320659 +32579,320454 +32590,320489 +32591,320219 +32592,320071 +32592,320551 +32593,320548 +32600,320855 +32610,320718 +32610,320914 +32611,320505 +32611,320718 +32612,320219 +32612,320718 +32613,320533 +32614,320914 +32615,320855 +32616,320914 +32617,320914 +32618,320505 +32619,320855 +32620,320394 +32621,320394 +32622,320394 +32623,320394 +32624,320219 +32624,320505 +32625,320219 +32626,320219 +32630,320322 +32631,320322 +32631,320782 +32631,320821 +32632,320052 +32632,320126 +32632,320322 +32633,320052 +32634,320126 +32635,320322 +32635,320855 +32636,320322 +32636,320782 +32637,320322 +32637,320855 +32640,320322 +32641,320625 +32643,320625 +32644,320163 +32644,320625 +32645,320163 +32645,320625 +32646,320052 +32646,320163 +32647,320163 +32648,320163 +32650,320907 +32651,320907 +32652,320678 +32653,320678 +32654,320678 +32655,320678 +32660,320013 +32664,320013 +32665,320013 +32666,320013 +32667,320013 +32668,320013 +32669,320013 +32670,320369 +32678,320369 +32679,320369 +32680,320283 +32688,320283 +32689,320283 +32690,320013 +32690,320795 +32691,320795 +32692,320776 +32693,320776 +32694,320821 +32695,320821 +32696,320782 +32696,320821 +32697,320855 +32698,320533 +32698,320855 +32699,320855 +32700,320436 +32701,320071 +32702,320893 +32703,320436 +32704,320071 +32705,320071 +32705,320893 +32706,320436 +32707,320436 +32708,320375 +32708,320436 +32710,320586 +32711,320586 +32720,320317 +32720,320375 +32720,320436 +32720,320527 +32730,320375 +32740,320570 +32746,320570 +32747,320570 +32748,320570 +32749,320570 +32750,320492 +32751,320492 +32760,320230 +32764,320230 +32764,320809 +32765,320809 +32766,320230 +32767,320296 +32768,320230 +32768,320296 +32769,320230 +32769,320492 +32770,320701 +32774,320230 +32779,320701 +32780,320631 +32781,320441 +32782,320441 +32782,320631 +32783,320441 +32784,320441 +32785,320441 +32786,320296 +32787,320296 +32787,320631 +32788,320631 +32789,320631 +32789,320868 +32790,320436 +32790,320492 +32791,320527 +32792,320586 +32793,320317 +32793,320586 +32794,320230 +32794,320296 +32794,320701 +32800,320245 +32810,320684 +32811,320684 +32812,320147 +32812,320697 +32813,320842 +32814,320662 +32815,320245 +32815,320684 +32816,320245 +32816,320473 +32817,320245 +32820,320202 +32821,320202 +32822,320202 +32823,320202 +32823,320245 +32824,320202 +32825,320202 +32826,320202 +32827,320245 +32828,320245 +32829,320245 +32830,320473 +32838,320473 +32839,320473 +32840,320065 +32845,320065 +32846,320065 +32846,320415 +32847,320065 +32848,320065 +32849,320065 +32850,320415 +32857,320415 +32858,320415 +32859,320065 +32859,320415 +32860,320300 +32867,320300 +32868,320300 +32869,320300 +32869,320420 +32870,320420 +32879,320420 +32880,320512 +32890,320087 +32891,320065 +32892,320420 +32893,320420 +32893,320570 +32894,320420 +32895,320420 +32896,320512 +32897,320415 +32898,320512 +32899,320512 +32900,320548 +32900,320757 +32901,320757 +32910,320757 +32911,320757 +32920,320087 +32920,320816 +32930,320087 +32930,320816 +32940,320087 +32940,320548 +32940,320816 +32941,320816 +32946,320065 +32950,320261 +32960,320548 +32970,320548 +32971,320548 +32980,320028 +32980,320548 +32981,320548 +32990,320548 +33001,330447 +33002,330447 +33003,330447 +33004,330447 +33005,330447 +33006,330447 +33007,330447 +33008,330447 +33009,330447 +33010,330447 +33010,330668 +33011,330447 +33012,330447 +33013,330447 +33060,330447 +33069,330447 +33110,330729 +33111,330729 +33112,330523 +33114,330523 +33115,330539 +33115,330642 +33116,330523 +33116,330539 +33117,330539 +33118,330539 +33119,330267 +33119,330447 +33120,330518 +33125,330693 +33126,330693 +33127,330447 +33127,330518 +33127,330693 +33128,330518 +33129,330518 +33130,330390 +33138,330390 +33139,330518 +33140,330447 +33150,330215 +33155,330215 +33156,330215 +33157,330215 +33159,330215 +33160,330582 +33161,330387 +33162,330387 +33163,330387 +33170,330447 +33170,330576 +33171,330447 +33171,330576 +33172,330576 +33173,330576 +33174,330447 +33179,330181 +33180,330426 +33186,330668 +33187,330668 +33188,330668 +33189,330668 +33190,330544 +33191,330447 +33191,330544 +33192,330241 +33192,330352 +33192,330544 +33193,330447 +33194,330447 +33195,330447 +33196,330447 +33199,330447 +33199,330668 +33201,330241 +33202,330241 +33203,330241 +33204,330241 +33205,330241 +33206,330241 +33207,330241 +33208,330241 +33209,330241 +33210,330241 +33211,330241 +33212,330241 +33213,330241 +33290,330241 +33299,330241 +33300,330766 +33310,330096 +33310,330766 +33311,330766 +33312,330766 +33313,330766 +33314,330766 +33315,330766 +33316,330766 +33317,330766 +33318,330766 +33320,330194 +33324,330194 +33325,330194 +33326,330194 +33326,330766 +33327,330194 +33328,330194 +33329,330194 +33330,330194 +33340,330194 +33341,330194 +33342,330194 +33343,330138 +33344,330138 +33345,330560 +33346,330560 +33347,330560 +33350,330241 +33390,330241 +33391,330241 +33392,330241 +33393,330241 +33394,330241 +33401,330045 +33401,330169 +33402,330045 +33403,330045 +33404,330208 +33405,330169 +33410,330045 +33410,330169 +33411,330306 +33412,330169 +33412,330208 +33412,330306 +33414,330100 +33414,330306 +33414,330544 +33416,330208 +33417,330045 +33417,330169 +33418,330045 +33418,330254 +33419,330254 +33420,330668 +33422,330352 +33423,330352 +33424,330352 +33425,330352 +33426,330352 +33427,330352 +33428,330352 +33429,330668 +33430,330143 +33438,330143 +33439,330143 +33440,330254 +33448,330254 +33449,330254 +33450,330169 +33456,330100 +33456,330169 +33457,330169 +33458,330693 +33459,330169 +33460,330045 +33468,330208 +33468,330254 +33469,330143 +33470,330045 +33470,330208 +33470,330352 +33476,330707 +33490,330045 +33491,330143 +33492,330143 +33500,330365 +33507,330365 +33509,330365 +33509,330450 +33510,330668 +33518,330655 +33518,330668 +33519,330215 +33519,330668 +33520,330404 +33520,330557 +33527,330061 +33528,330061 +33528,330404 +33529,330096 +33529,330404 +33530,330498 +33534,330498 +33535,330447 +33535,330498 +33536,330498 +33537,330498 +33538,330498 +33539,330498 +33540,330450 +33546,330450 +33547,330122 +33548,330450 +33549,330450 +33550,330122 +33554,330083 +33555,330083 +33556,330122 +33556,330432 +33557,330030 +33557,330501 +33558,330030 +33558,330501 +33559,330122 +33559,330450 +33560,330560 +33566,330560 +33567,330560 +33568,330560 +33569,330560 +33570,330479 +33576,330463 +33577,330463 +33578,330463 +33579,330479 +33580,330668 +33581,330404 +33582,330404 +33583,330498 +33584,330024 +33584,330498 +33585,330450 +33586,330450 +33587,330450 +33588,330560 +33589,330122 +33590,330557 +33591,330365 +33592,330365 +33593,330365 +33594,330365 +33595,330365 +33596,330365 +33598,330365 +33600,330371 +33610,330371 +33611,330371 +33612,330371 +33614,330371 +33615,330371 +33616,330371 +33616,330447 +33617,330371 +33618,330371 +33619,330371 +33620,330334 +33627,330334 +33628,330334 +33629,330334 +33630,330334 +33637,330334 +33638,330334 +33639,330334 +33640,330371 +33650,330371 +33660,330447 +33669,330447 +33670,330024 +33675,330024 +33676,330024 +33677,330024 +33678,330024 +33679,330024 +33680,330024 +33681,330024 +33682,330371 +33683,330024 +33683,330371 +33684,330024 +33685,330024 +33686,330024 +33687,330024 +33688,330024 +33690,330352 +33691,330241 +33692,330334 +33693,330334 +33694,330334 +33695,330334 +33696,330447 +33696,330576 +33697,330241 +33700,330349 +33707,330349 +33708,330349 +33709,330349 +33710,330181 +33710,330411 +33716,330181 +33717,330772 +33718,330772 +33719,330181 +33719,330411 +33720,330077 +33724,330077 +33725,330077 +33726,330077 +33726,330181 +33727,330077 +33728,330077 +33729,330077 +33730,330273 +33731,330077 +33732,330292 +33733,330292 +33734,330292 +33735,330485 +33736,330485 +33740,330707 +33746,330236 +33746,330707 +33747,330707 +33748,330707 +33749,330707 +33750,330236 +33757,330236 +33758,330236 +33759,330236 +33760,330175 +33768,330175 +33769,330175 +33770,330740 +33774,330637 +33775,330714 +33776,330621 +33776,330740 +33777,330485 +33777,330616 +33777,330753 +33778,330175 +33778,330740 +33779,330621 +33779,330740 +33780,330349 +33781,330595 +33782,330349 +33782,330595 +33783,330349 +33784,330349 +33785,330349 +33787,330349 +33788,330349 +33789,330349 +33790,330411 +33791,330349 +33792,330349 +33793,330411 +33794,330175 +33795,330181 +33796,330181 +33797,330181 +33798,330077 +33799,330077 +33800,330117 +33810,330289 +33811,330117 +33811,330289 +33812,330220 +33812,330289 +33813,330117 +33813,330220 +33814,330117 +33815,330019 +33815,330117 +33816,330117 +33817,330117 +33818,330117 +33819,330117 +33820,330267 +33825,330267 +33826,330267 +33826,330788 +33827,330058 +33827,330267 +33828,330100 +33829,330100 +33829,330267 +33830,330058 +33836,330058 +33836,330595 +33837,330058 +33838,330058 +33839,330058 +33840,330680 +33841,330680 +33842,330058 +33842,330680 +33843,330058 +33844,330058 +33845,330058 +33846,330058 +33846,330595 +33847,330058 +33848,330595 +33850,330595 +33857,330595 +33858,330595 +33859,330595 +33860,330595 +33866,330595 +33867,330595 +33868,330595 +33869,330595 +33870,330735 +33873,330735 +33874,330349 +33874,330735 +33875,330735 +33876,330735 +33877,330735 +33878,330735 +33879,330735 +33880,330019 +33885,330019 +33887,330019 +33888,330019 +33889,330019 +33890,330019 +33891,330595 +33900,330313 +33909,330313 +33910,330447 +33919,330447 +33920,330313 +33929,330313 +33930,330313 +33934,330313 +33935,330313 +33936,330668 +33937,330668 +33938,330668 +33939,330313 +33940,330609 +33945,330609 +33946,330609 +33947,330609 +33948,330609 +33950,330609 +33957,330609 +33958,330609 +33959,330609 +33960,330609 +33970,330328 +33979,330328 +33980,330328 +33986,330328 +33987,330328 +33989,330328 +33990,330156 +33991,330328 +33992,330328 +33993,330674 +33995,330156 +33996,330156 +34001,341202 +34002,341202 +34003,341202 +34004,341202 +34005,341202 +34006,341202 +34100,341570 +34110,341296 +34111,341296 +34111,341369 +34111,341570 +34111,342184 +34111,342453 +34112,341697 +34112,342184 +34112,342453 +34113,341261 +34113,342184 +34113,342316 +34114,341436 +34115,341570 +34115,341907 +34116,340382 +34116,341261 +34116,342316 +34117,341570 +34118,349036 +34120,340474 +34126,341473 +34126,342239 +34127,341631 +34127,341929 +34127,349036 +34128,341126 +34128,341436 +34128,341757 +34128,349036 +34129,340395 +34129,340421 +34129,342368 +34131,340474 +34131,342435 +34132,342337 +34159,340105 +34160,340105 +34170,341028 +34170,341258 +34170,342201 +34170,342374 +34190,342257 +34191,340105 +34191,340186 +34191,341202 +34191,341678 +34192,340796 +34192,342374 +34200,340231 +34208,340231 +34208,340698 +34208,341467 +34209,340869 +34209,341776 +34209,341816 +34209,341966 +34210,340698 +34218,340571 +34219,340066 +34219,340513 +34219,340663 +34219,341338 +34219,342012 +34220,340989 +34230,341821 +34239,341893 +34239,342218 +34240,340225 +34246,340506 +34247,340587 +34247,340822 +34247,342051 +34248,340127 +34248,340604 +34248,340702 +34249,340225 +34249,340875 +34249,342380 +34250,341415 +34257,341219 +34257,341782 +34257,342103 +34257,342429 +34258,340604 +34259,340632 +34259,340843 +34259,342131 +34260,093168 +34260,094173 +34260,094461 +34300,341230 +34304,340318 +34305,340246 +34305,340339 +34305,340455 +34305,340534 +34305,341065 +34305,341842 +34305,342407 +34306,340480 +34306,340724 +34306,340817 +34306,341034 +34307,349020 +34309,340468 +34309,340552 +34309,341564 +34309,342244 +34309,342276 +34310,340297 +34310,341277 +34320,340590 +34337,340761 +34338,340014 +34338,340199 +34340,342064 +34347,340915 +34347,340941 +34347,341317 +34347,341375 +34347,341659 +34347,342162 +34348,342048 +34349,340357 +34349,340915 +34349,341090 +34349,342048 +34349,342064 +34350,342321 +34400,340838 +34404,340679 +34405,340719 +34405,340838 +34405,341684 +34406,340284 +34406,340611 +34406,340685 +34406,340838 +34407,340416 +34407,340611 +34407,341132 +34407,341224 +34407,341548 +34407,341760 +34407,342223 +34408,342223 +34409,342223 +34410,341087 +34419,340112 +34419,340777 +34419,340881 +34419,341087 +34419,342178 +34420,340112 +34429,340091 +34429,340992 +34429,341277 +34429,341551 +34429,341599 +34430,341300 +34439,341809 +34440,340745 +34447,341527 +34447,342309 +34449,340151 +34449,340967 +34449,341322 +34449,342159 +34449,342466 +34450,340170 +34460,349015 +34465,341868 +34466,342414 +34467,341049 +34468,340344 +34468,340894 +34468,340920 +34468,341163 +34468,341467 +34469,341013 +34469,341492 +34469,342110 +34469,349015 +34470,340376 +34470,340626 +34470,341408 +34473,340203 +34473,340376 +34473,341795 +34473,341907 +34475,342027 +34475,342086 +34475,342342 +34477,340259 +34477,342282 +34477,349036 +34478,340528 +34480,340053 +34484,340679 +34485,340936 +34485,341071 +34485,341147 +34485,341245 +34486,340040 +34486,340565 +34486,341147 +34486,341394 +34486,341701 +34487,340053 +34487,349041 +34488,340565 +34488,341147 +34490,340170 +34490,341744 +34491,340035 +34491,340719 +34491,341610 +34491,341684 +34491,342110 +34491,342295 +34492,093060 +34492,093734 +34492,340040 +34492,340053 +34570,350206 +34800,340040 +34810,340040 +34810,341586 +34811,340040 +34811,341356 +34813,340040 +34813,341356 +34814,340323 +34814,341356 +34815,340040 +34815,341356 +34820,340278 +34828,340278 +34828,341586 +34828,341603 +34829,340278 +34829,340360 +34830,341586 +34839,340565 +34839,341104 +34839,341603 +34840,340565 +34844,340565 +34844,340679 +34844,341855 +34846,340565 +34846,341343 +34847,349041 +34848,349041 +34849,349041 +34850,340493 +34858,340493 +34859,340493 +34869,341718 +34870,341512 +34870,341718 +34874,341512 +34878,340626 +34878,341512 +34878,341718 +34879,340800 +34879,341718 +34880,340800 +34882,340626 +34882,340800 +34884,341718 +34886,341991 +34887,341855 +34888,341991 +34889,340730 +34889,340800 +34889,341006 +34889,341991 +34889,342146 +35000,350115 +35000,350271 +35000,350326 +35001,350167 +35002,350167 +35003,350167 +35004,350167 +35005,350167 +35006,350167 +35007,350167 +35008,350167 +35009,350167 +35010,350167 +35011,350167 +35012,350167 +35013,350167 +35014,350167 +35015,350167 +35016,350167 +35017,350167 +35018,350167 +35019,350167 +35100,350192 +35106,350192 +35107,350192 +35108,350192 +35109,350192 +35110,350228 +35118,350022 +35119,350022 +35119,350192 +35120,350120 +35120,350192 +35128,350120 +35128,350192 +35129,350120 +35130,350120 +35138,350120 +35139,350120 +35140,350120 +35149,350120 +35188,350094 +35200,350265 +35210,350265 +35211,350265 +35212,350265 +35213,350265 +35214,350115 +35214,350265 +35214,350311 +35215,350265 +35216,350311 +35217,350311 +35218,350265 +35219,350265 +35220,350167 +35220,350265 +35229,350167 +35229,350265 +35240,350115 +35250,350115 +35259,350115 +35260,350022 +35269,350022 +35270,350022 +35280,350192 +35280,350228 +35290,350192 +35299,350192 +35300,350069 +35300,350213 +35307,350213 +35308,350213 +35309,350213 +35310,350213 +35320,350332 +35328,350332 +35329,350332 +35330,350271 +35333,350271 +35338,350271 +35339,350271 +35340,350326 +35349,350326 +35350,350056 +35360,350252 +35368,350252 +35369,350038 +35369,350192 +35370,350347 +35400,350069 +35411,350069 +35412,350069 +35413,350069 +35413,350136 +35414,350069 +35415,350069 +35418,350069 +35420,350094 +35420,350136 +35421,350136 +35422,350136 +35423,350136 +35425,350115 +35430,350081 +35431,350081 +35432,350081 +35435,350081 +35450,350234 +35457,350234 +35458,350234 +35460,350094 +35468,350094 +35469,350094 +35469,350141 +35470,350206 +35478,350206 +35479,350206 +35480,350017 +35488,350094 +35489,350017 +35500,350043 +35500,350173 +35507,350249 +35508,350249 +35509,350189 +35509,350249 +35510,350287 +35520,350108 +35530,350249 +35539,350249 +35540,350234 +35540,350249 +35541,350108 +35542,350108 +35543,350108 +35543,350249 +35544,350249 +35550,350189 +35550,350290 +35558,350249 +35559,350189 +35560,350290 +35561,350249 +35570,350347 +35571,350287 +35572,350287 +35579,350206 +35580,350347 +35600,350173 +35610,350038 +35610,350173 +35611,350173 +35612,350173 +35613,350173 +35620,350304 +35625,350154 +35626,350154 +35627,350141 +35627,350154 +35627,350173 +35627,350304 +35628,350154 +35628,350304 +35628,350311 +35629,350304 +35630,350038 +35637,350075 +35637,350173 +35638,350038 +35639,350038 +35640,350094 +35640,350141 +35649,350141 +35650,350141 +35651,350141 +35660,350141 +36001,360388 +36002,360388 +36003,360388 +36004,360388 +36005,360388 +36110,360078 +36116,369026 +36117,369026 +36118,360078 +36119,360078 +36119,369026 +36120,369026 +36121,369026 +36130,369026 +36139,369026 +36140,360583 +36141,360583 +36142,360583 +36143,360388 +36150,360388 +36151,360388 +36152,360388 +36153,360388 +36154,360388 +36155,360388 +36156,360388 +36157,360388 +36158,360388 +36160,360388 +36161,360388 +36162,360388 +36163,360412 +36164,360388 +36190,360025 +36191,360025 +36192,360280 +36193,360025 +36194,360025 +36201,360577 +36202,360577 +36203,360577 +36204,360577 +36205,360577 +36206,360577 +36207,360577 +36208,360577 +36209,360577 +36210,360577 +36211,360577 +36212,360577 +36213,360577 +36214,360577 +36215,360577 +36216,360577 +36300,360031 +36307,360031 +36308,360031 +36309,360031 +36309,360366 +36310,360577 +36311,360335 +36312,360577 +36313,360577 +36314,360577 +36315,360577 +36316,360216 +36317,360577 +36318,360577 +36320,360451 +36330,360577 +36331,360577 +36340,360353 +36350,360353 +36360,360353 +36370,360353 +36378,360216 +36379,360353 +36380,360216 +36388,360216 +36389,360216 +36390,360577 +36391,360353 +36392,360577 +36393,360031 +36400,360391 +36410,360391 +36411,360391 +36412,360391 +36413,360391 +36414,360391 +36415,360335 +36416,360335 +36417,360335 +36418,360391 +36419,360335 +36420,360144 +36428,360144 +36429,360144 +36430,360010 +36435,360010 +36436,360010 +36437,360010 +36438,360010 +36439,360010 +36440,360340 +36446,360340 +36447,360340 +36448,360340 +36449,360340 +36450,360502 +36455,360502 +36456,360502 +36457,360502 +36458,360502 +36459,360502 +36460,360499 +36460,360558 +36470,360499 +36470,360545 +36471,360499 +36472,360499 +36474,360499 +36475,360391 +36475,360499 +36490,360144 +36491,360144 +36492,360144 +36493,360144 +36494,360010 +36500,360242 +36510,360242 +36511,360242 +36511,360470 +36512,360242 +36514,360209 +36514,360242 +36515,360242 +36516,360160 +36516,360242 +36517,360242 +36518,360160 +36518,360242 +36519,360242 +36520,360209 +36524,360209 +36525,360209 +36526,360209 +36527,360209 +36528,360209 +36529,360209 +36530,360470 +36537,360470 +36538,360470 +36539,360470 +36540,360524 +36543,360524 +36544,360524 +36545,360524 +36546,360524 +36547,360524 +36548,360524 +36549,360182 +36549,360524 +36550,360182 +36555,360182 +36556,360182 +36557,360182 +36558,360182 +36558,369026 +36559,360176 +36560,360182 +36567,360182 +36569,360182 +36570,360524 +36579,360524 +36580,360596 +36581,360596 +36582,360596 +36583,360242 +36583,360596 +36584,360176 +36585,360596 +36586,360596 +36587,360524 +36587,360596 +36588,360176 +36589,360524 +36590,360596 +36596,360242 +36596,360596 +36597,360596 +36598,360242 +36598,360596 +36599,360596 +36600,360600 +36610,360600 +36611,360600 +36612,360101 +36613,360600 +36614,360617 +36615,360059 +36616,360280 +36616,360617 +36617,360600 +36618,360600 +36619,360600 +36620,360617 +36626,369011 +36627,360617 +36628,360617 +36629,360600 +36629,360617 +36630,360062 +36633,360062 +36634,360062 +36635,360062 +36635,360464 +36636,360464 +36637,360280 +36638,360274 +36638,360464 +36639,360062 +36640,360448 +36645,360561 +36646,360561 +36647,360561 +36649,360448 +36650,360059 +36652,360405 +36653,360059 +36654,360059 +36655,360059 +36656,360059 +36657,360405 +36658,360176 +36658,360405 +36659,360059 +36660,360329 +36668,360329 +36669,360329 +36670,360157 +36675,360157 +36676,360176 +36677,360157 +36678,360157 +36679,360157 +36680,360176 +36681,360176 +36682,360176 +36683,360176 +36684,360176 +36685,360176 +36685,360427 +36686,360176 +36687,360176 +36688,360176 +36689,360176 +36690,360388 +36690,360530 +36691,360025 +36691,360530 +36692,360025 +36693,360451 +36700,360558 +36710,360558 +36711,360558 +36712,360558 +36713,360558 +36714,360558 +36715,360558 +36720,360558 +36729,360558 +36730,360545 +36739,360545 +36740,360545 +36746,360545 +36747,360545 +36748,360545 +36749,360545 +36750,360545 +36760,360486 +36770,360486 +36778,360486 +36779,360366 +36780,360237 +36788,360237 +36789,360237 +36790,360545 +36791,360545 +36792,360545 +36794,360366 +36800,360451 +36810,360451 +36811,360451 +36812,360451 +36813,360451 +36814,360451 +36815,360451 +36816,360451 +36817,360372 +36817,360451 +36818,360451 +36820,360433 +36826,360433 +36827,360433 +36828,360433 +36829,360433 +36830,360255 +36835,360255 +36836,360255 +36837,360255 +36838,360255 +36839,360255 +36840,360372 +36841,360372 +36842,360372 +36843,360372 +36844,360372 +36845,360195 +36846,360195 +36847,360195 +36848,360195 +36849,360195 +36850,360255 +36851,360195 +36852,360195 +36853,360255 +36853,360433 +36854,369026 +36855,369026 +36856,369026 +36857,369026 +36858,369026 +36859,369026 +36860,360427 +36861,360427 +36862,360427 +36863,360427 +36864,360427 +36865,360427 +36866,360427 +36867,360427 +36868,360427 +36869,360427 +36870,360307 +36872,360139 +36873,360139 +36874,360307 +36875,360195 +36875,360307 +36876,360139 +36876,360307 +36877,360139 +36877,360307 +36878,360139 +36878,360307 +36879,360307 +36880,360097 +36883,360097 +36884,360097 +36885,360097 +36885,360144 +36886,360097 +36887,360097 +36888,360097 +36889,360097 +36889,360139 +36890,360314 +36891,360427 +36892,360427 +36893,360427 +36895,360427 +36900,360268 +36910,360388 +36911,360268 +36912,360268 +36913,360268 +36914,360268 +36915,360268 +36920,360268 +36930,360046 +36936,330668 +36937,360046 +36938,360046 +36939,360046 +36940,360084 +36945,360084 +36946,360084 +36947,360084 +36948,360084 +36949,360084 +36950,360293 +36954,360293 +36955,360293 +36957,360293 +36958,360293 +36959,360293 +36960,360519 +36966,360519 +36967,360274 +36968,360274 +36969,360274 +36969,360519 +36970,360519 +36979,360519 +36980,360221 +36988,360221 +36989,360221 +36990,360519 +36991,360221 +36992,360412 +36993,360412 +36995,360412 +37001,372745 +37002,372745 +37003,372745 +37004,372745 +37005,372745 +37006,372745 +37007,372745 +37008,370858 +37008,372745 +37100,371703 +37110,370191 +37110,370346 +37110,372920 +37110,372992 +37110,373277 +37110,373795 +37111,370303 +37111,372262 +37111,372920 +37114,371204 +37114,371507 +37114,373697 +37115,370270 +37115,371670 +37115,371703 +37115,373420 +37115,373454 +37116,371703 +37117,371171 +37120,370877 +37120,371171 +37129,370877 +37129,371171 +37129,371298 +37129,371422 +37129,372301 +37130,370798 +37130,371165 +37130,371860 +37130,372702 +37130,373147 +37130,373659 +37140,373701 +37147,373603 +37148,371263 +37148,373296 +37148,373603 +37148,373701 +37149,373296 +37149,373701 +37150,373701 +37159,372626 +37159,373701 +37160,373646 +37169,373646 +37170,370877 +37170,371073 +37170,371514 +37170,371860 +37170,372534 +37170,372908 +37170,373454 +37170,373659 +37170,373809 +37171,371801 +37171,371980 +37172,373013 +37173,370042 +37173,373283 +37174,373646 +37175,372506 +37176,370286 +37181,370690 +37181,372409 +37183,372053 +37183,372091 +37183,372915 +37184,373625 +37185,373420 +37185,373548 +37186,370233 +37186,372091 +37186,372915 +37187,370233 +37187,371921 +37188,370325 +37188,370858 +37189,373625 +37190,373224 +37191,370704 +37191,370858 +37192,370877 +37193,370671 +37200,371358 +37208,371358 +37208,372894 +37209,370592 +37209,372416 +37210,373760 +37214,370652 +37214,372437 +37214,373408 +37214,373492 +37216,371067 +37216,372088 +37216,372480 +37216,372493 +37216,372571 +37217,370423 +37217,370589 +37217,371651 +37217,372800 +37217,373408 +37217,373610 +37217,373662 +37219,371540 +37219,372679 +37219,373776 +37220,371324 +37230,371605 +37240,371731 +37246,373111 +37247,372663 +37248,370037 +37250,370140 +37251,370140 +37251,371844 +37253,370140 +37253,371008 +37253,373816 +37254,371909 +37255,370444 +37256,371232 +37256,371916 +37256,373375 +37256,373678 +37257,373028 +37258,373505 +37259,372758 +37260,373739 +37267,373631 +37270,372856 +37271,370397 +37273,371015 +37281,371134 +37290,370520 +37291,370495 +37291,370554 +37291,371015 +37291,371377 +37292,372231 +37300,372468 +37310,371746 +37311,372967 +37312,370074 +37313,371784 +37314,372761 +37315,371797 +37316,370573 +37317,370227 +37317,370779 +37318,372323 +37318,372650 +37319,370830 +37320,373586 +37329,370129 +37329,373489 +37330,370384 +37336,371648 +37337,371106 +37337,372066 +37338,373757 +37339,373744 +37340,370205 +37340,372881 +37350,370166 +37400,370819 +37405,370824 +37406,372284 +37406,372565 +37406,373512 +37408,373821 +37409,373179 +37410,372395 +37418,370310 +37419,371285 +37419,372318 +37420,371529 +37426,372225 +37426,372297 +37427,372382 +37427,373473 +37428,372246 +37428,372259 +37428,373723 +37429,370172 +37429,370331 +37429,373185 +37430,372072 +37439,370922 +37439,372783 +37440,370401 +37440,370726 +37446,373533 +37447,372719 +37448,370726 +37448,370798 +37449,370877 +37449,371422 +37449,372301 +37450,371876 +37450,373441 +37451,370883 +37452,372112 +37452,373441 +37452,373467 +37453,371876 +37453,372915 +37453,373441 +37454,373467 +37455,372915 +37455,373467 +37456,373441 +37456,373467 +37460,370251 +37460,371494 +37460,372838 +37460,373147 +37465,372730 +37466,370251 +37466,372817 +37468,371067 +37468,372838 +37468,372936 +37468,373684 +37470,370969 +37470,372796 +37478,370093 +37478,370264 +37478,371152 +37479,372796 +37480,371400 +37481,371400 +37488,370153 +37488,370567 +37488,372647 +37488,373570 +37488,373599 +37490,370628 +37490,372549 +37492,372702 +37493,370592 +37493,371358 +37493,372416 +37494,371839 +37495,372679 +37496,370975 +37496,371839 +37497,370055 +37497,370861 +37497,371279 +37497,371456 +37497,373564 +37497,373599 +37500,371073 +37510,370021 +37510,371572 +37510,371818 +37510,372339 +37510,373034 +37515,371190 +37516,371572 +37520,370541 +37521,372698 +37522,373718 +37523,372455 +37524,372344 +37530,373071 +37531,373065 +37532,371993 +37540,371361 +37541,370917 +37542,372210 +37550,370747 +37551,371664 +37552,372587 +37553,372587 +37554,370068 +37555,370114 +37589,373219 +37590,371073 +37590,372040 +37591,370378 +37591,371073 +37591,373782 +37592,370969 +37592,372724 +37593,371073 +37594,371073 +37595,371073 +37596,373065 +37600,373163 +37606,372604 +37607,370418 +37607,372199 +37607,372685 +37607,373202 +37609,370508 +37609,370883 +37609,372112 +37609,373163 +37610,371942 +37617,371588 +37618,371968 +37619,371588 +37619,371762 +37621,370188 +37621,370457 +37621,370613 +37621,370994 +37621,371041 +37621,371778 +37624,370107 +37630,370687 +37638,373049 +37639,370264 +37640,370016 +37650,373052 +37656,370981 +37657,373132 +37658,371475 +37658,373551 +37659,370362 +37659,370900 +37659,372148 +37659,372869 +37660,371937 +37670,372989 +37671,372843 +37680,373317 +37682,372989 +37683,371955 +37684,371128 +37690,371358 +37694,370362 +37700,370460 +37700,371566 +37710,370785 +37711,371092 +37712,371612 +37712,372528 +37713,373322 +37714,370711 +37716,370802 +37716,371633 +37716,372127 +37717,370460 +37717,373436 +37718,370135 +37720,371020 +37720,372632 +37724,371020 +37724,371686 +37724,373343 +37726,371020 +37727,372014 +37727,372442 +37729,372632 +37730,371710 +37740,372973 +37748,372611 +37749,372186 +37749,373198 +37750,371036 +37750,372611 +37751,371469 +37752,373150 +37753,370359 +37754,370359 +37755,370359 +37756,370359 +37759,371591 +37759,373090 +37760,371725 +37762,371250 +37763,372875 +37764,373394 +37765,371247 +37765,371974 +37765,373258 +37766,371247 +37766,371319 +37766,371895 +37767,370896 +37768,371383 +37768,373006 +37770,371566 +37773,370634 +37774,371553 +37775,371330 +37776,372133 +37777,373126 +37778,371566 +37779,370248 +37779,372777 +37780,371882 +37781,372035 +37785,371438 +37786,371438 +37787,372007 +37787,372421 +37788,372376 +37789,370476 +37789,370606 +37789,371345 +37790,371396 +37791,372513 +37791,372590 +37791,373338 +37791,373415 +37792,372376 +37793,370460 +37794,372170 +37794,372822 +37795,370515 +37795,371566 +37795,372007 +37795,372552 +37796,370325 +37796,372091 +37797,370732 +37797,371857 +37798,371857 +37798,372029 +37798,373381 +37799,371302 +37799,372920 +37799,373230 +37799,373356 +37799,373381 +37800,370080 +37810,371481 +37820,372474 +37830,371089 +37840,373245 +37850,372151 +37860,371627 +37861,371149 +37863,370299 +37864,370299 +37865,371699 +37870,370212 +37871,372360 +37872,371417 +37873,371417 +37874,371211 +37874,371417 +37874,371481 +37881,373300 +37882,370080 +37882,372164 +37882,372357 +37882,373224 +37890,370080 +37891,371187 +37891,371443 +37891,371823 +37891,372421 +37891,373369 +37892,370080 +37892,371226 +37892,373104 +37893,370080 +37893,371211 +37893,371759 +37893,373224 +37893,373527 +37894,371759 +37894,373527 +37900,372941 +38001,380380 +38002,380380 +38003,380380 +38004,380380 +38005,380380 +38006,380380 +38007,380380 +38008,380380 +38009,380380 +38010,380380 +38107,380380 +38108,380239 +38108,380380 +38109,380321 +38109,380380 +38110,380380 +38111,380380 +38120,380380 +38129,380380 +38130,380380 +38139,380380 +38140,380380 +38150,380380 +38160,380380 +38170,380380 +38180,380380 +38190,380321 +38201,380239 +38202,380239 +38203,380239 +38204,380239 +38205,380239 +38206,380239 +38207,380239 +38208,380239 +38240,380239 +38250,380239 +38260,380239 +38270,380239 +38280,380466 +38289,380466 +38290,380321 +38291,380239 +38292,380466 +38293,380239 +38293,380466 +38294,380239 +38294,380380 +38296,380239 +38297,380239 +38297,380466 +38300,380260 +38310,380260 +38311,380260 +38312,380260 +38313,380260 +38314,380260 +38315,380260 +38320,380239 +38320,380380 +38329,380239 +38330,380239 +38340,380435 +38350,380435 +38355,380435 +38356,380435 +38357,380435 +38358,380435 +38359,380414 +38360,380414 +38370,380257 +38379,380257 +38380,380511 +38389,380511 +38390,380393 +38398,380393 +38399,380393 +38400,380282 +38410,380316 +38412,380316 +38413,380316 +38414,380316 +38415,380316 +38416,380316 +38417,380316 +38418,380316 +38419,380316 +38420,380342 +38428,380342 +38429,380342 +38430,380223 +38434,380223 +38435,380429 +38435,380440 +38438,380223 +38439,380223 +38440,380184 +38441,380184 +38449,380184 +38450,380159 +38458,380159 +38459,380159 +38460,380159 +38460,380429 +38470,380429 +38479,380103 +38479,380429 +38480,380103 +38489,380103 +38500,380201 +38508,380201 +38509,380048 +38509,380110 +38509,380201 +38510,380110 +38510,380321 +38520,380110 +38530,380110 +38540,380110 +38550,380048 +38560,380201 +38570,380125 +38579,380125 +38580,380051 +38588,380051 +38589,380051 +38590,380201 +38591,380201 +38592,380051 +38593,380051 +38594,380178 +38595,380178 +38600,380178 +38611,380178 +38612,380178 +38613,380526 +38614,380526 +38615,380012 +38615,380526 +38616,380178 +38617,380178 +38618,380178 +38620,380355 +38626,380064 +38627,380064 +38628,380355 +38629,380355 +38629,380526 +38630,380064 +38631,380064 +38632,380064 +38639,380355 +38640,380064 +38649,380064 +38650,380064 +38652,380064 +38660,380012 +38670,380012 +38677,380012 +38678,380012 +38679,380012 +38680,380197 +38683,380407 +38684,380407 +38685,380197 +38686,380197 +38687,380197 +38688,380197 +38689,380197 +38690,380407 +38700,380374 +38710,380086 +38711,380099 +38712,380086 +38712,380099 +38712,380374 +38713,380086 +38713,380374 +38714,380309 +38714,380374 +38715,380309 +38715,380374 +38720,380337 +38726,380070 +38727,380070 +38728,380162 +38729,380337 +38730,380532 +38738,380532 +38739,380532 +38740,380146 +38749,380146 +38750,380276 +38758,380276 +38759,380244 +38759,380276 +38760,380244 +38767,380244 +38768,380244 +38768,380276 +38769,380244 +38769,380276 +38770,380453 +38779,380453 +38780,380472 +38787,380162 +38788,380162 +38789,380295 +38789,380472 +38800,380368 +38801,380368 +38810,380033 +38811,380033 +38811,380368 +38812,380033 +38813,380033 +38820,380218 +38829,380218 +38830,380027 +38840,380504 +38849,380504 +38850,380504 +38852,380491 +38852,380504 +38869,380218 +38869,380504 +38870,380491 +38879,380491 +38890,380027 +38890,380218 +38891,380504 +38892,380491 +38900,380488 +38910,380488 +38911,380131 +38912,380131 +38913,380131 +38914,389013 +38915,380488 +38916,380488 +38917,389013 +39001,390759 +39002,390759 +39003,390759 +39004,390759 +39005,390759 +39006,390759 +39007,390759 +39008,390759 +39009,390759 +39010,390759 +39011,390759 +39012,390759 +39100,390731 +39108,390731 +39110,390731 +39120,390529 +39130,390400 +39140,390612 +39146,390612 +39150,390612 +39160,390612 +39170,390113 +39178,390377 +39180,390475 +39191,390113 +39192,390438 +39193,390067 +39193,390298 +39195,390067 +39197,390054 +39197,390797 +39200,390279 +39200,390591 +39210,390324 +39211,390324 +39212,390279 +39212,390324 +39213,390279 +39213,390324 +39213,390651 +39220,390942 +39229,390942 +39230,390942 +39232,090119 +39232,390942 +39248,390937 +39250,340323 +39250,390942 +39290,390171 +39291,390171 +39291,390279 +39292,390171 +39293,390171 +39294,390171 +39300,390876 +39310,390443 +39311,390187 +39312,390443 +39312,390540 +39313,390540 +39314,390762 +39315,390876 +39316,390876 +39317,390876 +39318,390443 +39320,390015 +39329,390015 +39330,390762 +39340,390857 +39350,390857 +39360,390762 +39360,390857 +39390,390762 +39400,390250 +39407,390211 +39408,390250 +39409,390699 +39410,390921 +39417,390651 +39417,390937 +39418,390921 +39419,390937 +39419,390942 +39420,390106 +39420,390469 +39430,390469 +39438,390469 +39439,390469 +39450,390041 +39451,390036 +39451,390041 +39460,390187 +39460,390250 +39470,390529 +39477,390529 +39478,390529 +39479,390529 +39490,390778 +39491,390279 +39491,390514 +39491,390703 +39491,390778 +39500,390128 +39506,390128 +39507,390128 +39507,390909 +39509,390128 +39509,390417 +39510,390149 +39510,390664 +39511,390149 +39513,390664 +39517,390860 +39518,390149 +39518,390860 +39520,390247 +39525,390015 +39526,390015 +39527,390686 +39528,390247 +39528,390916 +39530,390605 +39530,390762 +39538,390605 +39539,390015 +39539,390605 +39540,390801 +39547,390801 +39548,390801 +39548,390955 +39549,390330 +39549,390801 +39549,390955 +39550,390330 +39550,390345 +39551,390330 +39553,390633 +39554,390633 +39555,390895 +39556,390535 +39557,390535 +39558,390149 +39559,390633 +39560,390955 +39569,390955 +39570,390553 +39571,390134 +39572,390507 +39573,390134 +39574,390134 +39574,390507 +39575,390968 +39577,390968 +39580,390226 +39580,390494 +39580,390882 +39582,390152 +39583,390226 +39584,390226 +39585,390226 +39586,390152 +39587,390152 +39588,390152 +39589,390152 +39590,390015 +39590,390605 +39591,390128 +39591,390605 +39592,390128 +39592,390417 +39592,390916 +39593,390916 +39594,390330 +39594,390955 +39600,390165 +39608,390165 +39609,390165 +39610,390089 +39611,390089 +39612,390529 +39613,390089 +39618,390400 +39619,390422 +39620,390746 +39626,390746 +39627,390481 +39627,390746 +39630,391007 +39638,391007 +39639,390818 +39639,390980 +39640,390980 +39649,390980 +39650,390190 +39650,390746 +39660,390190 +39670,390566 +39679,390566 +39680,390263 +39682,390263 +39682,390396 +39682,390974 +39683,390710 +39683,390974 +39685,390974 +39686,390710 +39687,390396 +39688,390396 +39689,390784 +39690,390993 +39691,390784 +39692,390993 +39694,390746 +39696,390823 +39697,390263 +39698,390784 +39699,390263 +39700,390204 +39706,390204 +39707,390204 +39708,390204 +39709,390204 +39710,390422 +39715,390285 +39716,390285 +39718,390377 +39718,390422 +39719,390285 +39719,390400 +39720,390648 +39722,390377 +39723,390456 +39723,390648 +39724,390422 +39725,390456 +39726,390725 +39727,390377 +39728,390456 +39728,390670 +39728,390725 +39728,390839 +39730,390319 +39738,390319 +39738,390844 +39739,390319 +39740,390797 +39749,390797 +39750,390232 +39760,390092 +39761,390092 +39761,391029 +39762,391029 +39764,391029 +39766,391029 +39770,390358 +39776,390361 +39777,390358 +39778,390302 +39778,390383 +39780,390204 +39780,390302 +39786,390302 +39787,390302 +39788,390302 +39790,390092 +39791,390092 +39791,390844 +39792,390400 +39792,390422 +39793,390627 +39794,390627 +39795,390298 +39798,390204 +39800,390572 +39805,390572 +39805,390839 +39806,390839 +39807,390839 +39808,390839 +39809,390572 +39811,390572 +39812,390670 +39813,390073 +39813,390839 +39815,390572 +39815,390670 +39820,390383 +39840,390020 +39849,390020 +39850,390020 +39860,390588 +39880,390302 +39880,391014 +40001,401945 +40002,401945 +40003,401945 +40004,401945 +40005,401945 +40006,401945 +40100,401811 +40109,401811 +40120,400946 +40121,400175 +40122,401850 +40123,401850 +40130,401193 +40131,401057 +40132,409031 +40133,401180 +40134,401804 +40135,401850 +40136,401850 +40140,402167 +40141,400019 +40141,401885 +40142,401116 +40142,401229 +40142,401312 +40144,400289 +40144,401804 +40145,401351 +40146,401076 +40150,402252 +40151,401044 +40152,402332 +40153,401945 +40154,401945 +40160,402038 +40161,401399 +40162,400077 +40162,400931 +40163,401235 +40164,400208 +40165,401620 +40165,402249 +40170,400595 +40170,401575 +40170,401996 +40171,401885 +40171,402069 +40172,401569 +40173,400194 +40173,401569 +40173,401885 +40174,402206 +40175,401253 +40176,401500 +40176,402213 +40180,400267 +40180,400334 +40180,401575 +40180,401902 +40181,402081 +40182,400349 +40183,401364 +40184,400194 +40184,401636 +40184,401654 +40185,400215 +40185,400621 +40185,402120 +40185,402136 +40190,400313 +40191,400220 +40191,400772 +40192,400024 +40192,402056 +40193,401556 +40194,401556 +40194,402075 +40195,401945 +40196,401121 +40196,401945 +40197,409062 +40200,400637 +40210,400637 +40211,400637 +40212,401771 +40213,402192 +40214,401240 +40215,400637 +40216,400655 +40216,401667 +40217,400788 +40218,400848 +40219,402287 +40220,401497 +40230,400637 +40231,400637 +40232,400637 +40233,401497 +40234,401272 +40235,400138 +40236,401082 +40237,401749 +40238,402154 +40239,409059 +40240,400959 +40241,400637 +40242,400637 +40250,401348 +40260,400864 +40270,400432 +40280,401410 +40290,401734 +40291,400740 +40291,402000 +40292,400122 +40293,402347 +40294,401608 +40295,401826 +40296,401594 +40297,401790 +40298,400812 +40300,401958 +40310,401863 +40310,401958 +40311,401958 +40311,401983 +40312,400707 +40312,401958 +40313,402022 +40314,400910 +40314,402154 +40315,400479 +40315,400485 +40316,400518 +40317,401958 +40317,402108 +40318,400498 +40318,400609 +40318,401620 +40320,400404 +40330,400886 +40331,400447 +40331,401403 +40331,402189 +40332,400560 +40332,401832 +40340,400045 +40340,401930 +40350,400735 +40351,401924 +40352,401109 +40353,401001 +40354,400030 +40354,401581 +40354,409025 +40355,400899 +40356,400371 +40357,400925 +40358,400870 +40359,400833 +40359,402043 +40360,400411 +40370,402081 +40380,400404 +40380,401930 +40389,400061 +40389,400404 +40389,401847 +40389,401958 +40390,402141 +40391,400729 +40392,400352 +40392,400753 +40393,400753 +40394,402056 +40395,402228 +40396,400365 +40400,400766 +40408,401462 +40410,400766 +40418,400791 +40419,400766 +40420,401137 +40420,401811 +40420,409046 +40421,409010 +40422,401522 +40423,402115 +40423,402234 +40424,400766 +40430,400306 +40440,401850 +40441,401288 +40442,401765 +40443,401765 +40444,401266 +40445,401060 +40446,401214 +40447,401484 +40448,401850 +40449,401850 +40450,401386 +40460,401898 +40461,401386 +40462,400100 +40462,400156 +40463,400582 +40464,400582 +40465,401787 +40466,401207 +40466,401641 +40467,402017 +40468,401291 +40469,400693 +40470,401459 +40480,400576 +40490,401018 +40490,401039 +40491,400220 +40492,400181 +40493,402311 +40494,400220 +40494,401850 +40495,400680 +40495,401517 +40496,400576 +40496,400827 +40496,402304 +40500,401706 +40510,401706 +40511,401706 +40512,400241 +40512,401706 +40513,401713 +40514,400241 +40515,401728 +40516,400791 +40517,401706 +40517,401961 +40518,400791 +40520,400241 +40529,400058 +40529,400616 +40529,401689 +40530,400169 +40530,400254 +40531,400169 +40531,400714 +40531,401425 +40532,400096 +40532,401431 +40532,401446 +40533,400143 +40540,400805 +40540,401615 +40541,400997 +40541,402290 +40542,401305 +40542,401327 +40542,402290 +40550,400292 +40550,400523 +40551,400390 +40551,400557 +40552,400390 +40553,400390 +40554,401155 +40555,400083 +40556,401095 +40560,400328 +40567,401543 +40568,400328 +40569,400978 +40590,400450 +40590,401919 +40591,400539 +40592,400539 +40592,400544 +40593,400463 +40594,400241 +41001,410917 +41002,410917 +41003,410917 +41004,410917 +41005,410917 +41006,410917 +41007,410917 +41008,410917 +41009,410917 +41010,410917 +41011,410917 +41012,410917 +41013,410917 +41014,410917 +41015,410917 +41016,410917 +41017,410917 +41018,410917 +41019,410917 +41020,410917 +41089,410384 +41092,410917 +41100,410346 +41110,410166 +41111,410107 +41120,410444 +41130,410798 +41140,419022 +41150,419022 +41200,410055 +41200,410191 +41209,410055 +41210,410495 +41218,410495 +41219,410495 +41220,410191 +41230,410270 +41240,410093 +41250,410802 +41300,410819 +41309,410819 +41310,410188 +41318,411015 +41319,410055 +41320,410233 +41330,410922 +41330,410994 +41339,410248 +41340,410922 +41350,410994 +41359,410994 +41360,410732 +41370,410325 +41380,410021 +41388,410883 +41389,410883 +41390,410482 +41400,410397 +41409,410397 +41410,410248 +41420,410423 +41429,410227 +41430,410567 +41439,410423 +41439,410567 +41439,419017 +41440,410068 +41440,410554 +41449,410068 +41450,410331 +41460,410665 +41470,410747 +41471,410956 +41479,410785 +41489,410129 +41500,410042 +41510,410589 +41520,410042 +41520,411020 +41530,410652 +41540,410779 +41550,410016 +41560,410418 +41563,410397 +41564,410541 +41565,410378 +41565,410460 +41566,410726 +41567,410397 +41567,410508 +41568,410845 +41569,410613 +41570,410140 +41580,410264 +41590,410824 +41599,410140 +41599,410824 +41600,410114 +41610,410711 +41620,410606 +41630,410520 +41640,410687 +41650,410900 +41657,410378 +41658,410628 +41659,410900 +41660,411008 +41661,410080 +41670,410763 +41700,410384 +41701,410384 +41702,410384 +41703,410384 +41704,410384 +41710,410956 +41719,410956 +41720,410690 +41720,410956 +41727,410690 +41727,410956 +41728,410384 +41728,410690 +41728,410956 +41729,410205 +41730,410205 +41730,410325 +41740,410536 +41749,419038 +41750,410634 +41760,410362 +41770,410649 +41780,410359 +41800,410877 +41804,410671 +41805,410153 +41806,410943 +41807,410401 +41808,410981 +41809,410037 +41810,410303 +41820,410251 +41830,410515 +41840,410750 +41849,410129 +41850,410975 +41860,410457 +41870,410135 +41880,410830 +41888,410439 +41888,410883 +41889,410310 +41890,410310 +41897,410573 +41898,410310 +41898,410573 +41899,410310 +41900,410212 +41907,410969 +41908,410286 +41909,410858 +41910,410212 +41920,410861 +41927,410592 +41928,410704 +41930,410172 +41940,410938 +41950,410299 +41960,410476 +41970,410896 +41980,410074 +41989,410074 +42001,421736 +42002,421736 +42003,421736 +42004,421736 +42005,421736 +42100,420047 +42100,421340 +42107,420047 +42107,420341 +42107,420737 +42108,420047 +42108,420578 +42108,420755 +42108,421340 +42109,422175 +42110,421340 +42111,420119 +42111,420243 +42111,421926 +42112,420119 +42112,421003 +42112,421391 +42112,421427 +42112,421767 +42112,422083 +42113,420578 +42113,420933 +42113,421101 +42113,421887 +42113,421932 +42114,420623 +42114,421638 +42114,421963 +42120,420964 +42124,420888 +42124,421329 +42124,421849 +42125,420768 +42126,420217 +42126,420639 +42126,420768 +42127,420217 +42127,420964 +42127,421216 +42127,421715 +42128,420373 +42128,421834 +42129,420161 +42129,420413 +42129,420964 +42129,422138 +42130,420222 +42131,420222 +42132,421329 +42133,420063 +42134,420490 +42134,421545 +42135,420098 +42135,420449 +42136,421405 +42136,421871 +42137,420510 +42137,421486 +42137,421561 +42138,420222 +42138,420392 +42138,420644 +42140,421643 +42141,420807 +42141,421274 +42141,421681 +42142,420807 +42142,420814 +42143,420853 +42143,421274 +42144,420986 +42144,421904 +42145,420618 +42146,420011 +42146,420452 +42147,420452 +42148,420559 +42148,420709 +42148,421255 +42148,421789 +42149,421293 +42149,421736 +42150,422156 +42151,422156 +42152,421736 +42153,421600 +42155,421176 +42156,421176 +42156,421617 +42157,420695 +42158,420780 +42159,421600 +42161,420196 +42161,420275 +42162,420428 +42162,420872 +42162,420891 +42162,420948 +42163,420948 +42164,420196 +42165,421519 +42165,421596 +42165,421741 +42165,421911 +42165,422077 +42166,421741 +42167,420196 +42169,420196 +42169,421412 +42170,420891 +42171,420102 +42171,420281 +42171,420562 +42171,420829 +42171,422117 +42172,421353 +42172,422181 +42173,420145 +42173,421669 +42173,422169 +42174,420145 +42174,421656 +42174,422096 +42175,420601 +42175,421656 +42175,421963 +42176,421669 +42176,422096 +42177,422096 +42177,422181 +42180,420124 +42180,420177 +42180,420546 +42180,420657 +42180,422117 +42181,420546 +42181,420601 +42181,420927 +42181,421062 +42181,421078 +42181,421985 +42182,420130 +42182,420243 +42189,421280 +42189,421545 +42189,421754 +42189,422019 +42190,420951 +42190,421736 +42191,420716 +42191,421499 +42192,420951 +42192,422058 +42193,420367 +42193,420465 +42193,420951 +42193,421242 +42193,421852 +42193,421950 +42194,421583 +42194,421852 +42195,420434 +42196,420434 +42196,421950 +42200,420200 +42210,420308 +42211,420597 +42211,421118 +42212,420200 +42213,420238 +42213,420294 +42214,420294 +42214,422122 +42215,420835 +42216,420032 +42216,420294 +42216,420682 +42216,421237 +42216,421828 +42217,420682 +42218,420389 +42218,421307 +42218,421834 +42218,422045 +42220,420503 +42220,421195 +42222,420183 +42223,420682 +42223,421237 +42224,420793 +42224,421314 +42224,421720 +42225,420158 +42225,421084 +42225,421182 +42225,422024 +42230,421139 +42230,421157 +42240,421139 +42248,421139 +42249,420256 +42249,421139 +42250,420256 +42257,420256 +42258,420183 +42258,420256 +42259,420256 +42260,421675 +42269,420256 +42269,500153 +42269,501725 +42269,502151 +42269,502590 +42290,420716 +42290,420951 +42290,421499 +42291,421448 +42292,421448 +42293,420905 +42293,421448 +42293,421979 +42294,420905 +42294,420951 +42294,421448 +42294,421813 +42294,421979 +42295,420085 +42295,420294 +42296,421157 +42296,422194 +42300,420434 +42310,420434 +42311,420434 +42311,420525 +42311,420531 +42311,420840 +42311,421209 +42312,420434 +42312,422061 +42313,420434 +42313,420970 +42313,421451 +42313,421524 +42313,421950 +42314,421524 +42315,421524 +42315,421558 +42316,420434 +42316,421558 +42317,421789 +42317,421890 +42317,421947 +42318,420434 +42318,421947 +42320,421031 +42320,421622 +42328,420584 +42328,421031 +42328,421160 +42329,421031 +42330,421622 +42339,420866 +42340,421622 +42341,421059 +42341,421209 +42342,420866 +42342,421209 +42342,421622 +42343,421209 +42344,421209 +42344,421558 +42345,421622 +42350,420434 +42351,420079 +42351,420434 +42351,420853 +42351,421622 +42353,420079 +42360,420354 +42366,420320 +42366,420336 +42366,420354 +42366,421773 +42367,420354 +42367,420487 +42368,420269 +42368,420315 +42368,421530 +42368,421577 +42369,420354 +42391,420434 +42391,421622 +42392,422002 +43001,431482 +43002,431482 +43003,431482 +43004,431482 +43005,431482 +43006,431482 +43007,431482 +43008,431482 +43100,431482 +43110,439076 +43120,430477 +43130,431482 +43140,431093 +43141,431665 +43142,431346 +43143,430803 +43143,430831 +43144,431606 +43150,430430 +43151,431009 +43152,431037 +43153,430666 +43154,431444 +43155,431037 +43201,431233 +43202,431233 +43203,431233 +43204,431233 +43205,431233 +43206,431233 +43206,431711 +43207,431233 +43300,430923 +43310,430458 +43311,431671 +43312,431671 +43320,431188 +43320,431508 +43330,431299 +43340,430884 +43350,430311 +43360,430496 +43361,430960 +43362,430496 +43363,431573 +43364,430398 +43364,430574 +43364,430918 +43364,431166 +43365,430094 +43365,430154 +43370,430995 +43371,430751 +43372,430271 +43373,430350 +43374,431747 +43375,431732 +43376,431129 +43379,430960 +43380,431690 +43381,430075 +43382,430810 +43390,431286 +43391,431785 +43392,430424 +43393,430115 +43400,430862 +43410,430862 +43411,430290 +43412,431476 +43413,431016 +43414,430862 +43415,430862 +43420,431397 +43421,080214 +43421,431418 +43422,430213 +43423,431074 +43424,431423 +43425,430614 +43425,431016 +43425,431423 +43426,431303 +43427,430461 +43427,430733 +43427,431439 +43427,431592 +43428,431055 +43428,431423 +43429,430213 +43429,431055 +43429,431397 +43430,431763 +43431,080214 +43439,431589 +43439,431687 +43440,430542 +43442,430213 +43448,431763 +43449,431460 +43449,431763 +43450,431248 +43459,430862 +43459,430918 +43460,430056 +43470,431457 +43479,430038 +43480,431711 +43481,431711 +43490,431726 +43491,431613 +43495,430189 +43500,431554 +43510,431554 +43511,431495 +43512,430252 +43513,431212 +43514,430770 +43515,430635 +43516,430688 +43517,431554 +43519,431042 +43520,431331 +43527,431554 +43528,430081 +43529,431331 +43530,430043 +43540,431362 +43549,430141 +43550,431567 +43558,430629 +43558,431567 +43559,431567 +43560,430445 +43569,430043 +43570,431384 +43580,439018 +43590,431554 +43591,430069 +43592,430521 +43593,431021 +43594,431068 +43595,431172 +43596,430712 +43597,430189 +43635,430094 +43700,431634 +43710,431401 +43711,430206 +43712,430748 +43713,431378 +43714,430017 +43714,430901 +43715,431205 +43716,430022 +43717,430287 +43718,430022 +43718,430799 +43718,430901 +43718,431401 +43719,430249 +43720,430167 +43730,430555 +43730,430764 +43736,430580 +43736,430825 +43736,430859 +43737,430691 +43737,430727 +43737,431541 +43738,430234 +43739,431140 +43740,430939 +43746,431508 +43747,430265 +43747,430846 +43748,430672 +43749,430653 +43750,430607 +43760,430957 +43761,431114 +43762,431264 +43763,430976 +43763,431649 +43764,430430 +43765,431444 +43770,430944 +43771,431270 +43772,430332 +43773,430173 +43773,430537 +43774,431153 +43774,431515 +43775,430764 +43776,430402 +43777,430705 +43780,430640 +43781,430568 +43782,431750 +43783,431107 +43784,430483 +43785,430326 +43786,430228 +43787,430419 +43790,431251 +43791,430192 +43792,431520 +43792,431779 +43800,431613 +43810,431080 +43811,430363 +43811,430593 +43812,430347 +43812,430897 +43812,430901 +43812,431191 +43812,431325 +43813,430108 +43813,431613 +43814,431704 +43815,430017 +43815,430923 +43816,431205 +43817,431135 +43820,430379 +43830,431536 +43839,430509 +43840,439057 +43850,430385 +43860,430136 +43870,430141 +43877,439023 +43878,430786 +43879,430141 +43879,430786 +43879,439023 +43880,431634 +43881,430516 +43882,430379 +43883,431310 +43884,430304 +43885,431359 +43886,431227 +43886,431652 +43887,430982 +43890,431628 +43891,431628 +43892,430923 +43893,430120 +43894,439039 +43895,439060 +43896,439044 +43897,431554 +44001,442160 +44002,442160 +44003,442160 +44100,440099 +44110,441177 +44111,442293 +44112,442353 +44113,441639 +44114,441196 +44114,442577 +44115,441200 +44120,442157 +44121,440099 +44121,440414 +44121,441999 +44121,442160 +44122,441275 +44122,442046 +44122,442433 +44123,440099 +44123,441275 +44123,442176 +44123,442499 +44124,441597 +44125,441986 +44126,440526 +44126,441098 +44130,442638 +44131,442643 +44132,441354 +44132,442340 +44133,441964 +44133,442340 +44134,440197 +44134,440928 +44134,442182 +44134,442502 +44140,440598 +44140,440602 +44141,440889 +44141,441490 +44141,442366 +44142,441269 +44143,441063 +44144,442622 +44145,440218 +44146,441562 +44147,440743 +44150,440178 +44155,440012 +44155,440550 +44155,441853 +44156,440051 +44156,441308 +44157,440178 +44157,441238 +44158,440178 +44159,441503 +44160,440162 +44161,440971 +44161,441755 +44161,441829 +44162,440949 +44162,441814 +44162,442160 +44163,441829 +44164,441367 +44164,442669 +44165,440282 +44166,442003 +44167,440532 +44168,440624 +44168,441158 +44169,440934 +44169,441281 +44169,441487 +44190,442160 +44191,440547 +44191,440645 +44191,440892 +44191,442391 +44192,442160 +44193,440820 +44193,442160 +44194,440756 +44195,442160 +44200,440504 +44210,440504 +44211,440504 +44212,440244 +44212,441256 +44212,441389 +44213,441256 +44213,441840 +44220,440355 +44220,440504 +44221,442221 +44222,442221 +44223,442561 +44230,442195 +44231,440658 +44232,440393 +44233,441682 +44300,441531 +44310,441970 +44311,442583 +44312,441695 +44313,441695 +44314,440429 +44315,441905 +44320,440337 +44330,440472 +44340,441124 +44350,440563 +44357,440342 +44357,440504 +44358,440854 +44358,442274 +44359,440563 +44359,442209 +44360,442097 +44366,441742 +44367,440453 +44368,441578 +44368,441891 +44369,440184 +44369,441807 +44370,440769 +44380,442617 +44381,442280 +44382,440033 +44382,442139 +44382,442268 +44390,442078 +44391,440504 +44392,440504 +44393,442329 +44394,440466 +44394,442519 +44395,440070 +44396,442160 +44397,442160 +44400,441584 +44409,440488 +44409,440700 +44410,441601 +44411,441933 +44412,441373 +44413,442448 +44414,441657 +44415,441130 +44415,442010 +44420,441434 +44421,440260 +44421,442314 +44422,440027 +44422,441434 +44423,441434 +44424,440103 +44424,442101 +44430,442405 +44431,440125 +44432,440125 +44433,441217 +44440,441032 +44441,441032 +44450,441927 +44459,440547 +44460,442101 +44477,440103 +44478,441716 +44479,441716 +44480,442062 +44490,441011 +44491,440321 +44491,440906 +44491,441336 +44492,440239 +44492,440368 +44492,441026 +44492,441320 +44493,441389 +44493,441525 +44494,442524 +44495,440504 +44496,440504 +44497,441644 +44497,442084 +44500,440257 +44509,440223 +44510,441912 +44511,441912 +44520,442059 +44530,441222 +44540,440086 +44547,440295 +44548,441721 +44549,440064 +44550,440146 +44555,441835 +44556,440407 +44556,441510 +44557,440873 +44557,441465 +44557,441737 +44558,441004 +44558,441161 +44559,440965 +44559,442600 +44560,440717 +44561,442123 +44562,440717 +44563,440440 +44563,440717 +44564,441452 +44565,440717 +44566,440048 +44566,441780 +44570,440511 +44579,441079 +44580,442464 +44586,441793 +44587,441145 +44588,440374 +44589,441872 +44589,441948 +44590,440316 +44591,442656 +44591,500212 +44592,440677 +44592,441294 +44593,442372 +44594,442412 +44595,442470 +44596,441085 +44597,442255 +44600,440131 +44610,440491 +44620,442451 +44621,441471 +44622,440276 +44623,440867 +44624,441413 +44630,440683 +44640,440808 +44640,442216 +44641,442307 +44642,440380 +44643,440619 +44643,441183 +44650,441050 +44651,440775 +44652,441546 +44653,442237 +44660,440131 +44661,440131 +44700,441559 +44706,440661 +44707,440630 +44707,442681 +44708,441768 +44709,441559 +44709,442242 +44710,441951 +44711,441119 +44712,441951 +44720,441774 +44721,440201 +44721,440854 +44730,441449 +44730,441774 +44740,442675 +44741,441102 +44742,442675 +44750,441449 +44760,442388 +44761,442388 +44769,442388 +44770,440990 +44779,440990 +44780,441618 +44790,440435 +44791,440841 +44791,441243 +44791,441428 +44792,440110 +44792,441315 +44792,441676 +44793,442031 +44793,442118 +45001,451685 +45002,451685 +45003,451685 +45004,451685 +45005,451685 +45006,451685 +45007,451685 +45008,451685 +45100,451632 +45109,451246 +45109,451632 +45110,450015 +45111,450529 +45112,450232 +45112,451127 +45113,450572 +45114,450968 +45120,450980 +45120,451534 +45121,450980 +45122,450165 +45123,450839 +45124,450422 +45125,451409 +45126,450553 +45126,450968 +45127,451822 +45128,450980 +45130,451133 +45138,451133 +45139,451133 +45140,451127 +45150,451091 +45159,450759 +45159,451091 +45160,450703 +45161,451339 +45162,451164 +45163,451745 +45164,450670 +45165,451513 +45170,451528 +45179,451941 +45180,450319 +45181,450324 +45182,450152 +45183,451838 +45190,451072 +45191,451072 +45200,450818 +45210,452052 +45211,451455 +45211,452052 +45212,450857 +45213,451278 +45214,450475 +45215,451992 +45216,450383 +45217,451761 +45220,452013 +45221,450648 +45222,450211 +45223,451611 +45224,451611 +45225,450187 +45230,451199 +45240,450020 +45250,450149 +45260,451967 +45270,451029 +45276,451035 +45280,451225 +45290,451284 +45291,450514 +45292,451967 +45300,451210 +45310,451989 +45311,450591 +45312,450263 +45313,452028 +45314,450507 +45340,451231 +45350,451151 +45360,451954 +45370,451565 +45370,451954 +45400,451066 +45400,451421 +45410,451936 +45420,450128 +45430,450942 +45440,451908 +45450,451246 +45460,450909 +45460,451442 +45470,452006 +45479,450921 +45480,451777 +45480,452006 +45500,451730 +45510,450664 +45511,450778 +45512,451344 +45513,451571 +45514,451437 +45515,450916 +45516,451360 +45517,450627 +45518,450699 +45519,451186 +45520,451881 +45521,450247 +45522,450036 +45523,450041 +45524,451474 +45525,450187 +45526,459016 +45529,452034 +45530,451587 +45531,450361 +45532,450396 +45533,450377 +45534,450955 +45540,450605 +45540,450664 +45541,451007 +45542,450400 +45543,451262 +45544,450588 +45551,450801 +45560,451259 +45567,450823 +45568,451843 +45569,451259 +45569,451698 +45570,451382 +45571,450073 +45571,450171 +45572,451724 +45572,451796 +45573,451112 +45574,450651 +45575,450106 +45576,450106 +45576,451035 +45577,451395 +45578,450330 +45580,450285 +45580,450302 +45588,450731 +45589,450298 +45590,450882 +45591,452049 +45592,450250 +45593,450190 +45594,451894 +45600,451259 +45600,451650 +45610,451105 +45611,451301 +45612,451817 +45613,451650 +45614,451650 +45620,451053 +45621,451604 +45622,450974 +45630,451148 +45631,450113 +45632,451590 +45633,450797 +45634,450226 +45635,451647 +45636,450937 +45637,450494 +45638,451323 +45640,451442 +45641,450438 +45642,450358 +45643,450686 +45644,451203 +45645,450746 +45646,451549 +45650,450633 +45651,451702 +45652,451468 +45653,451552 +45654,451506 +45660,450204 +45661,450092 +45662,450067 +45662,450974 +45663,450725 +45664,450725 +45670,451088 +45671,451626 +45672,451626 +45673,451626 +45674,451480 +45675,451480 +45676,451480 +45677,451480 +45678,451480 +45680,450469 +45682,450481 +45683,450456 +45684,450860 +45685,451040 +45686,450285 +45687,450054 +45690,451376 +45691,451376 +45692,450895 +45693,450895 +45694,451650 +45695,450285 +45700,450535 +45710,450876 +45720,450345 +45730,451875 +45740,451973 +45749,451915 +45750,450784 +45760,450710 +45770,451493 +45780,451663 +45789,451758 +45790,451416 +45800,451421 +45810,451920 +45820,451679 +45830,451014 +45840,451357 +45850,451869 +45860,451856 +45870,450844 +45880,450540 +45890,450279 +45900,450134 +45908,450089 +45908,451297 +45909,451571 +45910,450612 +45917,451170 +45918,451318 +45919,450762 +45920,451719 +45930,450993 +45940,451800 +45950,450417 +45960,450566 +46001,462508 +46002,462508 +46003,462508 +46004,462508 +46005,462508 +46006,462508 +46007,462508 +46008,462508 +46009,462508 +46010,462508 +46011,462508 +46012,462508 +46013,462508 +46014,461108 +46014,462508 +46015,462508 +46016,462378 +46016,462508 +46017,462508 +46018,462508 +46019,462508 +46020,462508 +46021,462508 +46022,462508 +46023,462508 +46024,462508 +46025,462508 +46026,462508 +46035,462508 +46100,460787 +46110,461350 +46111,462166 +46112,462508 +46113,461712 +46114,462606 +46115,460253 +46116,461712 +46117,460706 +46118,462286 +46119,461786 +46120,460137 +46130,461640 +46131,460749 +46131,462508 +46132,460327 +46133,461666 +46134,461265 +46135,460095 +46135,461173 +46135,462508 +46136,461770 +46137,461995 +46138,462074 +46139,461995 +46140,460018 +46140,460924 +46140,462016 +46141,460924 +46143,462423 +46145,462520 +46146,460885 +46147,460879 +46148,460305 +46149,461347 +46160,461477 +46162,460386 +46162,461419 +46163,461614 +46164,461918 +46165,460765 +46166,461332 +46167,461120 +46168,461496 +46168,462346 +46169,461825 +46169,469024 +46170,462589 +46171,460898 +46172,460180 +46173,460500 +46174,461141 +46175,460790 +46175,461141 +46176,461069 +46177,462476 +46178,460364 +46178,462418 +46178,462628 +46179,460410 +46180,460517 +46181,460673 +46182,461901 +46183,461167 +46184,469030 +46185,462021 +46190,462140 +46191,462567 +46192,461727 +46193,461764 +46194,462129 +46195,461568 +46196,460930 +46197,460266 +46198,461154 +46198,461672 +46199,460996 +46200,461862 +46210,461939 +46220,461944 +46229,461944 +46230,460312 +46240,460850 +46250,460193 +46250,462205 +46260,460116 +46266,460403 +46267,461304 +46268,460174 +46269,462460 +46270,462573 +46290,460155 +46291,460636 +46292,461629 +46293,460168 +46293,460538 +46294,460847 +46294,461000 +46295,462251 +46295,462362 +46300,462495 +46310,462541 +46311,462541 +46312,462495 +46313,462495 +46314,461290 +46315,460958 +46317,462592 +46320,462325 +46321,462495 +46330,460804 +46340,462135 +46350,461081 +46351,461069 +46351,462135 +46352,462135 +46353,462135 +46354,462135 +46355,462135 +46356,462135 +46357,462135 +46360,460771 +46367,462613 +46368,461580 +46369,460121 +46370,461115 +46380,461094 +46388,461363 +46389,462482 +46390,462135 +46391,462135 +46392,462299 +46393,461483 +46400,461056 +46408,461056 +46409,461056 +46410,462359 +46417,462153 +46418,461252 +46419,462359 +46420,462359 +46430,462331 +46439,462331 +46440,460351 +46450,460608 +46460,462303 +46469,460654 +46470,460076 +46470,460945 +46470,461653 +46500,462205 +46501,461923 +46510,461038 +46511,460581 +46512,461228 +46514,460522 +46515,461017 +46520,462205 +46529,460826 +46530,462055 +46530,462205 +46540,462042 +46550,460142 +46560,461635 +46590,461206 +46591,460109 +46592,462248 +46593,460288 +46594,460240 +46595,462457 +46600,460174 +46610,461398 +46611,460641 +46612,460983 +46613,461555 +46614,461234 +46620,460446 +46621,462634 +46622,462397 +46623,461445 +46624,461424 +46625,460977 +46630,461287 +46635,461249 +46640,461705 +46650,460811 +46659,460811 +46660,461607 +46666,462093 +46667,460459 +46668,461516 +46668,462093 +46669,461192 +46669,462227 +46669,462270 +46670,462037 +46680,460291 +46687,460082 +46688,461976 +46689,469045 +46690,460207 +46691,462515 +46692,461748 +46701,461311 +46702,461311 +46703,460667 +46710,461136 +46711,461402 +46711,461688 +46712,461957 +46713,460484 +46714,461884 +46715,460370 +46716,462080 +46717,461271 +46720,462554 +46721,461982 +46722,460556 +46722,460615 +46723,460348 +46724,461878 +46725,460235 +46725,462188 +46726,460333 +46726,460919 +46726,461537 +46727,462114 +46728,461311 +46729,460023 +46730,461311 +46740,460832 +46749,460832 +46750,462310 +46758,460462 +46760,462384 +46770,461430 +46780,461810 +46790,461461 +46791,460594 +46792,460174 +46792,460832 +46800,461458 +46810,461189 +46811,461189 +46812,460425 +46813,460961 +46814,461542 +46814,462439 +46815,461574 +46816,461542 +46816,462172 +46817,461213 +46818,461379 +46818,462536 +46819,461803 +46820,460399 +46821,461075 +46822,460734 +46823,461799 +46824,462068 +46825,460713 +46830,460620 +46837,461043 +46838,460575 +46838,461509 +46838,461960 +46839,460497 +46839,460692 +46839,461385 +46839,462264 +46840,462009 +46841,460902 +46842,460431 +46842,461751 +46842,462191 +46842,462401 +46843,462107 +46843,462212 +46844,460569 +46844,461859 +46850,461831 +46860,460060 +46868,460478 +46869,460039 +46869,460689 +46869,460863 +46870,461846 +46880,460728 +46890,460044 +46891,460752 +46891,461897 +46892,461733 +46893,460272 +46894,461326 +46900,462444 +46901,462444 +46909,462444 +46910,460229 +46910,460543 +46910,461521 +46910,462233 +46920,461691 +46930,461022 +46940,461593 +46950,461108 +46960,460214 +46970,460057 +46980,461901 +46988,461901 +46989,461901 +47001,471868 +47002,471868 +47003,471868 +47004,471868 +47005,471868 +47006,471868 +47007,471868 +47008,471868 +47009,471868 +47010,471868 +47011,471868 +47012,471868 +47013,471868 +47014,471868 +47015,471868 +47016,471868 +47017,471868 +47018,471868 +47100,471659 +47110,470360 +47111,472103 +47112,471132 +47113,471659 +47113,472131 +47114,470838 +47114,471662 +47114,471907 +47115,470170 +47115,470186 +47116,471219 +47120,470973 +47129,470014 +47129,470148 +47129,471420 +47129,471492 +47129,471684 +47130,471610 +47131,470719 +47131,471356 +47131,471914 +47131,472162 +47132,471467 +47132,471659 +47133,470817 +47133,471880 +47134,470698 +47134,471512 +47134,471718 +47134,472257 +47140,470761 +47140,471868 +47150,471935 +47151,470231 +47152,471868 +47153,470761 +47153,471868 +47155,471551 +47160,470066 +47160,471224 +47161,471757 +47162,470072 +47164,471454 +47165,470323 +47166,471940 +47169,470072 +47169,470761 +47169,471757 +47170,471338 +47171,470442 +47172,472244 +47173,471052 +47174,472218 +47175,471179 +47176,470611 +47177,470091 +47180,472064 +47181,472005 +47182,470474 +47183,471697 +47184,470626 +47185,470344 +47186,470604 +47190,472309 +47191,470513 +47192,470416 +47193,470528 +47194,470663 +47194,470989 +47195,470105 +47196,471111 +47197,471868 +47200,471842 +47209,471441 +47210,470112 +47219,471006 +47219,471415 +47219,471473 +47220,471245 +47230,470822 +47231,471599 +47232,471929 +47238,470053 +47238,470745 +47238,470822 +47239,472184 +47240,471821 +47250,470908 +47260,470278 +47270,470506 +47280,470552 +47281,470552 +47282,471744 +47283,471300 +47290,470571 +47300,471147 +47310,470301 +47311,470339 +47311,470632 +47312,470127 +47313,470549 +47313,471147 +47313,471701 +47313,471723 +47314,470777 +47314,470800 +47314,471147 +47315,471163 +47316,470590 +47316,471185 +47316,471198 +47316,471375 +47317,470225 +47317,470565 +47317,471436 +47317,471809 +47318,470382 +47318,471065 +47318,471147 +47319,471317 +47319,471701 +47320,470936 +47320,471757 +47328,471104 +47329,470395 +47329,471953 +47329,472260 +47330,471548 +47330,471739 +47331,471548 +47340,471570 +47350,471296 +47359,471034 +47359,471795 +47360,471277 +47400,470856 +47410,471049 +47418,470029 +47418,470685 +47418,470796 +47419,470088 +47419,470210 +47419,471261 +47420,470758 +47430,471126 +47440,470534 +47440,470875 +47450,471230 +47451,471049 +47452,472321 +47453,471322 +47454,470954 +47460,470318 +47461,470259 +47462,470203 +47463,471893 +47464,471028 +47465,472282 +47470,470357 +47480,470650 +47490,471394 +47491,471586 +47492,470856 +47492,471394 +47493,470856 +47493,471564 +47494,470493 +47494,470679 +47494,470783 +47494,471381 +47500,471013 +47509,471394 +47510,470040 +47511,471603 +47512,470376 +47513,471678 +47520,470455 +47529,472048 +47530,471505 +47600,472146 +47606,470702 +47606,472033 +47607,470730 +47607,471991 +47608,470262 +47608,472086 +47608,472197 +47609,470647 +47609,471533 +47609,471874 +47609,471988 +47610,472316 +47620,472178 +47630,470992 +47639,472125 +47640,471150 +47641,470437 +47650,470587 +47664,470468 +47670,470151 +47670,471760 +47671,471776 +47672,471837 +47673,471283 +47673,471343 +47674,470133 +47675,470246 +47675,472099 +47676,472295 +47680,470843 +47686,470894 +47687,470881 +47688,470915 +47689,470284 +47689,470409 +47689,471408 +47689,472110 +47690,471855 +47691,470941 +47692,470480 +47800,470869 +47801,471868 +47810,472051 +47811,470967 +47811,471527 +47812,471090 +47813,470199 +47813,472223 +47814,470035 +47814,472159 +47815,471625 +47815,471966 +47816,470869 +47816,470920 +47816,471816 +47820,471972 +47830,471646 +47831,471258 +47832,470297 +47840,472070 +47850,472201 +47851,471489 +47860,472239 +47862,471782 +47870,471631 +47880,470164 +47882,470421 +47883,472276 +48001,480209 +48002,480209 +48003,480118 +48003,480209 +48004,480209 +48005,480209 +48006,480209 +48007,480209 +48008,480209 +48009,480209 +48010,480209 +48011,480209 +48012,480209 +48013,480209 +48014,480209 +48015,480209 +48100,480694 +48110,480405 +48111,480530 +48112,480617 +48113,480388 +48114,480101 +48115,480669 +48116,480353 +48120,480643 +48120,480694 +48130,480123 +48140,480062 +48140,480947 +48141,480268 +48142,480237 +48143,480932 +48144,480242 +48145,480887 +48150,489047 +48160,489011 +48170,489011 +48170,489050 +48180,489032 +48190,480865 +48191,480372 +48191,480865 +48192,480427 +48194,480427 +48195,480524 +48196,480813 +48200,480274 +48200,480391 +48210,480720 +48212,480596 +48213,480502 +48215,489102 +48220,480010 +48230,480329 +48240,480195 +48249,480195 +48250,480950 +48260,480340 +48269,480583 +48270,480600 +48276,480600 +48277,480307 +48278,480600 +48278,489158 +48280,480577 +48287,480280 +48288,480499 +48289,480046 +48289,480470 +48289,480638 +48291,480911 +48292,480911 +48300,480464 +48309,480792 +48310,480314 +48311,480280 +48311,480486 +48312,489098 +48313,480335 +48314,480412 +48315,489079 +48320,489119 +48330,480558 +48340,480031 +48348,480031 +48350,480216 +48360,480681 +48370,480176 +48380,480708 +48381,480078 +48382,480622 +48383,489145 +48390,480926 +48390,489145 +48391,480675 +48391,489145 +48392,480675 +48393,489063 +48394,489085 +48395,480767 +48410,480754 +48419,480754 +48450,480293 +48460,480741 +48480,480118 +48480,480979 +48490,480656 +48498,480059 +48498,480097 +48499,480255 +48500,480025 +48508,489130 +48510,480806 +48520,480806 +48530,480834 +48540,480025 +48550,480715 +48600,480852 +48610,480890 +48620,480433 +48620,480561 +48620,480773 +48630,480433 +48640,480160 +48650,480144 +48700,480736 +48710,480182 +48800,480904 +48810,489124 +48820,480451 +48830,480451 +48840,480451 +48850,480963 +48850,489026 +48860,480963 +48869,480865 +48869,480963 +48870,480865 +48879,480084 +48880,480871 +48890,480221 +48891,480221 +48895,480519 +48901,480139 +48902,480139 +48903,480139 +48910,480849 +48920,480789 +48930,480448 +48940,480545 +48950,489026 +48960,480366 +48970,480157 +48980,480828 +48990,480448 +48991,480448 +48992,480448 +48993,480448 +49001,492755 +49002,492755 +49003,492755 +49004,492755 +49005,492755 +49006,492755 +49007,492755 +49008,492755 +49009,492755 +49010,492755 +49011,492755 +49012,492755 +49013,492755 +49014,492755 +49015,492755 +49016,492755 +49017,492755 +49018,492755 +49019,492755 +49020,492755 +49021,492755 +49022,492755 +49023,492755 +49024,492755 +49025,492755 +49026,492755 +49027,492755 +49028,492755 +49029,492755 +49030,492755 +49031,492755 +49032,492755 +49100,492601 +49110,490436 +49120,491197 +49121,491218 +49121,491223 +49122,492222 +49123,490224 +49124,490163 +49125,490473 +49126,490147 +49126,492465 +49127,490420 +49127,491602 +49128,490356 +49129,491906 +49129,492660 +49130,491086 +49131,492525 +49132,492639 +49133,492320 +49134,492487 +49135,491756 +49135,491854 +49135,492367 +49136,492428 +49137,492428 +49137,492682 +49140,492145 +49141,490631 +49142,491414 +49143,491550 +49144,491867 +49145,491532 +49145,492026 +49146,491380 +49147,491380 +49148,491337 +49148,491645 +49149,491239 +49150,491257 +49151,490104 +49151,490394 +49151,490907 +49152,492102 +49153,492341 +49154,491466 +49155,490245 +49156,490935 +49157,491033 +49158,492452 +49159,492618 +49160,490369 +49161,492026 +49162,490090 +49162,491429 +49163,491110 +49164,491355 +49164,492373 +49165,491355 +49165,492373 +49166,492471 +49167,491355 +49170,491511 +49171,491526 +49172,491526 +49173,491526 +49174,490776 +49174,491526 +49176,491491 +49177,490052 +49177,490087 +49177,491260 +49177,491491 +49178,491491 +49180,490071 +49180,492755 +49181,492695 +49182,491949 +49183,491949 +49190,491276 +49191,490441 +49191,490966 +49191,491276 +49191,491488 +49192,490953 +49192,491781 +49192,492275 +49193,492755 +49200,490230 +49210,490087 +49211,490230 +49211,490375 +49211,491808 +49211,491836 +49212,491368 +49213,490646 +49214,490646 +49215,490230 +49215,491012 +49216,490230 +49216,490776 +49220,490659 +49230,492644 +49231,492644 +49232,492644 +49240,492644 +49250,492406 +49250,492657 +49251,490126 +49251,490880 +49252,492217 +49253,491316 +49254,491244 +49255,490230 +49260,490230 +49270,491526 +49271,491526 +49272,491526 +49280,491526 +49281,491526 +49300,491661 +49310,491218 +49317,490489 +49317,491125 +49318,491218 +49318,491504 +49318,491775 +49319,491125 +49319,491342 +49320,491435 +49320,491794 +49321,491435 +49321,491794 +49322,491435 +49322,491815 +49323,491815 +49324,490179 +49324,491815 +49325,490179 +49325,490489 +49326,491775 +49327,490570 +49327,491201 +49327,492256 +49330,491775 +49330,492315 +49331,490322 +49331,492315 +49332,490338 +49332,492315 +49333,491677 +49333,492047 +49333,492597 +49334,490662 +49335,490662 +49335,490678 +49336,491393 +49337,490678 +49337,491393 +49340,490972 +49341,490625 +49341,491342 +49342,490625 +49342,491815 +49343,490972 +49344,491342 +49345,490625 +49346,490625 +49347,490625 +49348,490179 +49349,491815 +49350,490855 +49352,490855 +49357,491794 +49357,491892 +49358,491892 +49358,492243 +49359,491892 +49359,492243 +49360,490855 +49361,490855 +49362,490855 +49390,491661 +49390,491794 +49391,491453 +49392,491453 +49393,491661 +49394,490505 +49394,491743 +49395,490505 +49395,490855 +49396,490505 +49400,490816 +49410,490809 +49419,490408 +49420,492269 +49430,492413 +49440,490343 +49450,492308 +49500,490034 +49510,490718 +49511,490718 +49512,490718 +49512,490874 +49512,491722 +49513,490718 +49513,491841 +49514,490034 +49514,490718 +49514,491579 +49515,491738 +49515,492737 +49516,492238 +49517,490034 +49517,492238 +49517,492737 +49518,490034 +49518,491738 +49518,492238 +49519,491722 +49519,492238 +49520,490697 +49521,490697 +49522,491048 +49523,492098 +49524,492098 +49524,492737 +49525,491738 +49525,492098 +49530,490533 +49539,490065 +49539,490868 +49539,492510 +49540,490684 +49540,490991 +49540,491380 +49541,490988 +49542,490874 +49542,492336 +49543,490988 +49550,490684 +49559,490874 +49560,491048 +49561,491048 +49562,492623 +49563,492623 +49570,491005 +49571,490940 +49572,490940 +49573,491005 +49574,491005 +49580,491547 +49582,491547 +49583,491624 +49590,490760 +49590,491146 +49591,491769 +49592,491769 +49592,492085 +49593,491103 +49594,491103 +49600,490219 +49610,490185 +49610,492063 +49618,490795 +49618,492063 +49618,492449 +49619,490185 +49619,492063 +49620,492004 +49621,490929 +49621,492063 +49622,490283 +49622,490929 +49622,491700 +49622,491717 +49622,492063 +49623,491717 +49623,492562 +49624,491178 +49624,492050 +49625,492050 +49626,490338 +49626,491162 +49626,492011 +49627,490338 +49628,491934 +49629,490277 +49630,492503 +49638,491658 +49638,491696 +49639,490551 +49639,491683 +49639,492161 +49640,490467 +49650,491889 +49660,490415 +49660,492578 +49670,490821 +49680,491928 +49680,492294 +49690,491873 +49691,491873 +49692,491131 +49693,490757 +49693,491282 +49694,491099 +49695,492434 +49696,490049 +49696,490150 +49696,492032 +49697,491309 +49697,491374 +49697,491677 +49697,492562 +49697,492721 +49698,490261 +49698,490296 +49698,490782 +49698,492562 +49699,490111 +49699,491184 +49699,491990 +49699,492578 +49700,490548 +49706,490548 +49707,491971 +49708,490381 +49708,492584 +49709,490317 +49710,490586 +49714,490842 +49715,491585 +49716,490132 +49717,490599 +49717,491913 +49718,491159 +49719,491027 +49719,492559 +49720,491511 +49721,490610 +49722,491511 +49730,490564 +49731,491321 +49740,490914 +49741,490914 +49742,491086 +49743,491867 +49750,492079 +49751,490258 +49760,490198 +49760,492716 +49770,492389 +49780,491598 +49781,492200 +49782,492389 +49783,490527 +49783,491051 +49800,492196 +49810,491295 +49820,492392 +49830,490202 +49831,490300 +49832,491070 +49833,490837 +49834,490028 +49835,491630 +49836,492196 +49840,492354 +49850,491563 +49860,492490 +49870,492709 +49871,492676 +49880,491472 +49881,492196 +49882,492281 +50001,502973 +50002,502973 +50003,502973 +50004,502973 +50005,502973 +50006,502973 +50007,502973 +50008,502973 +50009,502973 +50010,502973 +50011,502973 +50012,502973 +50013,502973 +50014,502973 +50015,502973 +50016,502973 +50017,502973 +50018,502973 +50019,502973 +50020,502973 +50021,502973 +50022,502973 +50057,502973 +50059,502973 +50090,502973 +50100,500251 +50108,500248 +50109,500264 +50120,502973 +50130,500457 +50131,501361 +50132,500858 +50133,500233 +50134,501330 +50134,502339 +50135,501152 +50135,501648 +50136,501396 +50137,502186 +50138,502758 +50139,502973 +50140,500397 +50141,501319 +50142,501149 +50143,501797 +50143,502133 +50144,501710 +50150,501247 +50151,501494 +50152,501670 +50153,502908 +50154,502647 +50155,500055 +50156,502915 +50160,501377 +50161,502066 +50162,509038 +50163,501041 +50164,501703 +50170,501651 +50171,502199 +50172,500172 +50173,501937 +50174,502856 +50175,501993 +50177,500592 +50178,500227 +50180,502724 +50190,502973 +50191,502973 +50193,502973 +50194,502973 +50195,502035 +50196,501823 +50200,500384 +50210,501921 +50211,500763 +50212,500726 +50213,500824 +50213,501731 +50214,500711 +50215,501784 +50216,502875 +50217,502632 +50219,501839 +50219,502777 +50219,502822 +50220,500346 +50227,502468 +50228,500652 +50229,500541 +50230,500205 +50236,501250 +50237,501298 +50238,500704 +50238,501204 +50239,500589 +50239,500877 +50239,500969 +50240,501778 +50246,500573 +50247,501778 +50248,502437 +50249,502437 +50250,501263 +50257,501211 +50258,501302 +50258,501980 +50259,500310 +50259,502148 +50260,501759 +50266,500325 +50267,501664 +50268,500690 +50268,502210 +50268,502663 +50269,500938 +50269,501876 +50269,502549 +50270,502259 +50280,500687 +50290,500994 +50291,501725 +50292,500819 +50293,502534 +50294,501469 +50294,502318 +50295,501507 +50295,502284 +50296,500444 +50296,502112 +50296,502698 +50297,500439 +50297,501232 +50297,502127 +50298,502091 +50299,500671 +50299,502029 +50299,502416 +50300,500671 +50310,502936 +50311,502571 +50312,500798 +50313,500299 +50314,500845 +50315,501553 +50316,500476 +50316,500508 +50316,502604 +50320,501106 +50321,501106 +50322,501106 +50323,501106 +50324,502360 +50325,502552 +50326,500861 +50330,501699 +50331,501627 +50331,501968 +50331,502297 +50332,500460 +50333,502869 +50334,502421 +50335,500671 +50336,500671 +50340,501591 +50341,501942 +50342,502014 +50343,502796 +50344,501762 +50345,500093 +50346,500750 +50347,500021 +50348,500378 +50351,500900 +50360,500943 +50366,500423 +50366,501612 +50366,501844 +50366,501955 +50367,501345 +50367,502246 +50368,500802 +50368,501540 +50368,502587 +50368,502941 +50369,500286 +50369,501383 +50369,501882 +50370,502894 +50371,502730 +50372,502745 +50373,500482 +50373,500917 +50373,501171 +50373,502395 +50374,500166 +50374,502565 +50374,502719 +50375,500016 +50376,500900 +50390,501165 +50391,501746 +50391,502843 +50400,500732 +50408,500042 +50409,500883 +50410,500896 +50420,500665 +50430,501633 +50440,501801 +50441,500567 +50450,501818 +50460,501438 +50461,500188 +50470,500981 +50480,502007 +50481,500074 +50482,502954 +50490,502838 +50490,502920 +50491,500401 +50491,501089 +50491,502278 +50500,502513 +50510,501909 +50511,501572 +50512,502611 +50513,501067 +50513,501226 +50513,502376 +50513,502513 +50513,502817 +50514,502513 +50520,501535 +50529,500107 +50529,501134 +50529,502164 +50530,501916 +50540,500554 +50546,500270 +50546,500606 +50546,502506 +50547,500613 +50547,502493 +50548,500634 +50549,500114 +50549,501566 +50550,501605 +50560,500037 +50561,500520 +50562,501113 +50570,500068 +50580,502800 +50581,501417 +50582,501400 +50583,502650 +50584,502344 +50590,500303 +50591,500140 +50600,500956 +50610,501092 +50610,501514 +50610,502053 +50611,501008 +50611,501092 +50612,500779 +50612,502053 +50612,502442 +50613,500779 +50614,500331 +50614,502203 +50615,501514 +50615,502761 +50616,502072 +50616,509022 +50617,500956 +50619,500362 +50619,500956 +50619,501481 +50619,501974 +50619,509017 +50620,502973 +50629,502474 +50630,500080 +50637,502231 +50638,500649 +50639,501073 +50640,501438 +50640,501475 +50641,500536 +50650,501187 +50660,502528 +50668,502170 +50669,502528 +50670,502301 +50678,502679 +50679,501358 +50679,502301 +50680,502480 +50682,502455 +50683,500359 +50683,501686 +50683,502455 +50684,502323 +50685,500418 +50685,502105 +50685,502702 +50686,312037 +50686,501860 +50687,501285 +50687,501422 +50688,501443 +50689,502480 +50689,502685 +50690,502040 +50691,500135 +50692,501324 +50692,502973 +50693,502626 +50694,500956 +50695,500515 +50696,500785 +50696,502480 +50697,502480 +50700,500747 +50709,500747 +50710,501529 +50720,502973 +50730,500628 +50740,501152 +50750,502088 +50760,502783 +50770,502225 +50780,502409 +50781,500129 +50782,500830 +50783,500191 +50784,502967 +50786,501190 +50790,501015 +50791,501015 +50792,500922 +50793,501020 +50794,501895 +50795,501054 +50800,502989 +50810,502989 +50820,502973 +50830,502881 +50830,502989 +50840,502357 +50850,501857 +50850,502382 +51001,510013 +51002,510013 +51003,510013 +51004,510013 +51005,510013 +52001,520018 +52002,520018 +52003,520018 +52004,520018 +52005,520018 +52006,520018 diff --git a/pms_l10n_es/tests/__init__.py b/pms_l10n_es/tests/__init__.py index ac3fd30c7..9e2aec97c 100644 --- a/pms_l10n_es/tests/__init__.py +++ b/pms_l10n_es/tests/__init__.py @@ -1,3 +1,4 @@ from . import test_wizard_ine from . import test_res_partner from . import test_wizard_traveller_report +from . import test_pms_ses_communication diff --git a/pms_l10n_es/tests/test_pms_ses_communication.py b/pms_l10n_es/tests/test_pms_ses_communication.py new file mode 100644 index 000000000..7610a2b0f --- /dev/null +++ b/pms_l10n_es/tests/test_pms_ses_communication.py @@ -0,0 +1,285 @@ +from odoo import fields +from odoo.tools.safe_eval import datetime + +from .common import TestPms + + +class TestPmsSesCommunication(TestPms): + def setUp(self): + super().setUp() + self.sale_channel_direct1 = self.env["pms.sale.channel"].create( + { + "name": "Door", + "channel_type": "direct", + } + ) + # create room type + self.room_type = self.env["pms.room.type"].create( + { + "name": "Room type test", + "default_code": "DBL_Test", + "class_id": self.room_type_class1.id, + } + ) + # room + self.room_double_1 = self.env["pms.room"].create( + { + "pms_property_id": self.pms_property1.id, + "name": "Room test 1", + "room_type_id": self.room_type.id, + "capacity": 2, + } + ) + self.pms_property1.institution = "ses" + + def test_create_notification_when_create_reservation(self): + # ARRANGE/ACT + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": "2021-01-01", + "checkout": "2021-01-02", + "adults": 2, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + # ASSERT + last_notification = self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ] + ) + self.assertEqual( + last_notification.operation, + "A", + "Creating a reservation should create a notification with operation A", + ) + + def test_not_create_notification_when_cancel_reservation_and_not_sent(self): + # ARRANGE + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": fields.date.today() + datetime.timedelta(days=1), + "checkout": fields.date.today() + datetime.timedelta(days=2), + "adults": 2, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + # ACT + reservation.action_cancel() + # ASSERT + last_notifications = self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ], + order="id", + ) + self.assertFalse( + last_notifications, + "Cancelling a reservation not sent should not create a notification", + ) + + def test_create_notification_when_cancel_reservation_and_is_sent(self): + # ARRANGE + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": fields.date.today() + datetime.timedelta(days=1), + "checkout": fields.date.today() + datetime.timedelta(days=2), + "adults": 2, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + notification_after_create_reservation = self.env[ + "pms.ses.communication" + ].search( + [ + ("reservation_id", "=", reservation.id), + ("operation", "=", "A"), + ] + ) + notification_after_create_reservation.state = "to_process" + # ACT + reservation.action_cancel() + # ASSERT + last_notifications = ( + self.env["pms.ses.communication"] + .search( + [ + ("reservation_id", "=", reservation.id), + ], + order="id", + ) + .mapped("operation") + ) + self.assertEqual( + last_notifications, + ["A", "B"], + "Canceling a reservation should create a notification with operation B", + ) + + def test_create_notification_when_modify_reservation_and_not_sent(self): + # ARRANGE + update_operations = [ + { + "adults": 1, + }, + { + "checkin": fields.date.today() + datetime.timedelta(days=10), + }, + { + "checkout": fields.date.today() + datetime.timedelta(days=12), + }, + ] + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": fields.date.today() + datetime.timedelta(days=1), + "checkout": fields.date.today() + datetime.timedelta(days=13), + "adults": 2, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + # ACT & ASSERT + for _index, update_operation in enumerate(update_operations): + with self.subTest(k=update_operation): + reservation.write(update_operation) + last_notification_operations = ( + self.env["pms.ses.communication"] + .search( + [ + ("reservation_id", "=", reservation.id), + ], + order="id", + ) + .mapped("operation") + ) + self.assertEqual( + ["A"], + last_notification_operations, + "Update adults should create 2 notifications with operations A and B", + ) + + def test_create_notification_when_modify_reservation_and_is_sent(self): + # ARRANGE + update_operations = [ + { + "adults": 1, + }, + { + "checkin": fields.date.today() + datetime.timedelta(days=10), + }, + { + "checkout": fields.date.today() + datetime.timedelta(days=12), + }, + ] + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": fields.date.today() + datetime.timedelta(days=1), + "checkout": fields.date.today() + datetime.timedelta(days=13), + "adults": 2, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + reservation_communications = self.env["pms.ses.communication"].search( + [("reservation_id", "=", reservation.id)] + ) + reservation_communications.state = "to_process" + # ACT & ASSERT + for _index, update_operation in enumerate(update_operations): + with self.subTest(k=update_operation): + reservation.write(update_operation) + reservation_communications = ( + self.env["pms.ses.communication"] + .search( + [ + ("reservation_id", "=", reservation.id), + ], + order="id", + ) + .mapped("operation") + ) + self.assertEqual( + ["A", "B", "A"], + reservation_communications, + "Update adults should create 2 notifications with operations A and B", + ) + + def test_create_notification_when_checkin_partner_on_board(self): + # ARRANGE + partner = self.env["res.partner"].create( + { + "name": "name test", + "firstname": "firstname test", + "lastname": "lastname test", + "lastname2": "lastname2 test", + "birthdate_date": "1995-12-10", + "gender": "male", + "nationality_id": self.env.ref("base.es").id, + "residence_street": "street test", + "residence_city": "city test", + "residence_zip": "zip test", + "residence_country_id": self.env.ref("base.us").id, + } + ) + reservation = self.env["pms.reservation"].create( + { + "pms_property_id": self.pms_property1.id, + "room_type_id": self.room_type.id, + "checkin": fields.date.today(), + "checkout": fields.date.today() + datetime.timedelta(days=13), + "adults": 1, + "children": 0, + "sale_channel_origin_id": self.sale_channel_direct1.id, + "partner_name": "Test reservation", + } + ) + document_type_dni = self.env["res.partner.id_category"].search( + [("code", "=", "D")], limit=1 + ) + checkin_partner = self.env["pms.checkin.partner"].create( + { + "reservation_id": reservation.id, + "partner_id": partner.id, + "document_number": "11111111H", + "document_type": document_type_dni.id, + "document_expedition_date": fields.date.today() + + datetime.timedelta(days=1), + "support_number": "123456", + } + ) + checkin_partner.action_on_board() + # ACT + self.env[ + "traveller.report.wizard" + ].create_pending_notifications_traveller_report() + # ASSERT + last_notification = self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ("operation", "=", "A"), + ("state", "=", "to_send"), + ("entity", "=", "PV"), + ], + ) + self.assertTrue( + last_notification, + "Notification should be created when checkin partner is on board", + ) diff --git a/pms_l10n_es/tests/test_wizard_ine.py b/pms_l10n_es/tests/test_wizard_ine.py index 9f00d4731..cb3f8305f 100644 --- a/pms_l10n_es/tests/test_wizard_ine.py +++ b/pms_l10n_es/tests/test_wizard_ine.py @@ -250,6 +250,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_1.id, "reservation_id": self.reservation_1.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) @@ -257,6 +260,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_2.id, "reservation_id": self.reservation_1.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create reservation 2 @@ -275,12 +281,18 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_3.id, "reservation_id": self.reservation_2.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) self.checkin4 = self.env["pms.checkin.partner"].create( { "partner_id": self.partner_4.id, "reservation_id": self.reservation_2.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create reservation 3 @@ -299,6 +311,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_5.id, "reservation_id": self.reservation_3.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create reservation property 2 @@ -317,6 +332,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_5.id, "reservation_id": self.reservation_property_2.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) @@ -350,6 +368,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_6.id, "reservation_id": self.reservation_4.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) @@ -357,6 +378,9 @@ class TestWizardINE(TestPms): { "partner_id": self.partner_7.id, "reservation_id": self.reservation_4.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # checkin partners on board @@ -387,6 +411,9 @@ class TestWizardINE(TestPms): "residence_country_id": self.country_russia.id, "birthdate_date": "2000-06-25", "gender": "male", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) self.partner_russia_2 = self.env["res.partner"].create( @@ -397,6 +424,9 @@ class TestWizardINE(TestPms): "residence_country_id": self.country_russia.id, "birthdate_date": "2000-06-25", "gender": "male", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) self.partner_russia_3 = self.env["res.partner"].create( @@ -407,6 +437,9 @@ class TestWizardINE(TestPms): "residence_country_id": self.country_russia.id, "birthdate_date": "2000-06-25", "gender": "male", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create document for 3 checkin partners (russia) @@ -670,38 +703,38 @@ class TestWizardINE(TestPms): [("name", "=", "Pontevedra")] ) - self.checkin1.nationality_id = country_spain - self.partner_1.nationality_id = country_spain + self.checkin1.residence_country_id = country_spain + self.partner_1.residence_country_id = country_spain self.checkin1.residence_state_id = state_ourense self.partner_1.residence_state_id = state_ourense - self.checkin2.nationality_id = country_spain - self.partner_2.nationality_id = country_spain + self.checkin2.residence_country_id = country_spain + self.partner_2.residence_country_id = country_spain self.checkin2.residence_state_id = state_pontevedra self.partner_2.residence_state_id = state_pontevedra - self.checkin3.nationality_id = country_spain - self.partner_3.nationality_id = country_spain + self.checkin3.residence_country_id = country_spain + self.partner_3.residence_country_id = country_spain self.checkin3.residence_state_id = state_ourense self.partner_3.residence_state_id = state_ourense - self.checkin4.nationality_id = country_spain - self.partner_4.nationality_id = country_spain + self.checkin4.residence_country_id = country_spain + self.partner_4.residence_country_id = country_spain self.checkin4.residence_state_id = state_ourense self.partner_4.residence_state_id = state_ourense - self.checkin5.nationality_id = country_spain - self.partner_5.nationality_id = country_spain + self.checkin5.residence_country_id = country_spain + self.partner_5.residence_country_id = country_spain self.checkin5.residence_state_id = state_madrid self.partner_5.residence_state_id = state_madrid - self.checkin6.nationality_id = country_spain - self.partner_6.nationality_id = country_spain + self.checkin6.residence_country_id = country_spain + self.partner_6.residence_country_id = country_spain self.checkin6.residence_state_id = state_madrid self.partner_6.residence_state_id = state_madrid - self.checkin7.nationality_id = country_spain - self.partner_7.nationality_id = country_spain + self.checkin7.residence_country_id = country_spain + self.partner_7.residence_country_id = country_spain self.checkin7.residence_state_id = state_madrid self.partner_7.residence_state_id = state_madrid @@ -914,7 +947,7 @@ class TestWizardINE(TestPms): """ # ARRANGE self.ideal_scenario() - self.reservation_1.checkin_partner_ids[1].nationality_id = False + self.reservation_1.checkin_partner_ids[1].residence_country_id = False start_date = datetime.date(2021, 2, 1) end_date = datetime.date(2021, 2, 4) @@ -969,38 +1002,38 @@ class TestWizardINE(TestPms): [("name", "=", "Ourense (Orense)")] ) - self.checkin1.nationality_id = country_spain - self.partner_1.nationality_id = country_spain + self.checkin1.residence_country_id = country_spain + self.partner_1.residence_country_id = country_spain self.checkin1.residence_state_id = state_ourense self.partner_1.residence_state_id = state_ourense - self.checkin2.nationality_id = country_spain - self.partner_2.nationality_id = country_spain + self.checkin2.residence_country_id = country_spain + self.partner_2.residence_country_id = country_spain self.checkin2.residence_state_id = False self.partner_2.residence_state_id = False - self.checkin3.nationality_id = country_spain - self.partner_3.nationality_id = country_spain + self.checkin3.residence_country_id = country_spain + self.partner_3.residence_country_id = country_spain self.checkin3.residence_state_id = state_ourense self.partner_3.residence_state_id = state_ourense - self.checkin4.nationality_id = country_spain - self.partner_4.nationality_id = country_spain + self.checkin4.residence_country_id = country_spain + self.partner_4.residence_country_id = country_spain self.checkin4.residence_state_id = state_ourense self.partner_4.residence_state_id = state_ourense - self.checkin5.nationality_id = country_spain - self.partner_5.nationality_id = country_spain + self.checkin5.residence_country_id = country_spain + self.partner_5.residence_country_id = country_spain self.checkin5.residence_state_id = state_madrid self.partner_5.residence_state_id = state_madrid - self.checkin6.nationality_id = country_spain - self.partner_6.nationality_id = country_spain + self.checkin6.residence_country_id = country_spain + self.partner_6.residence_country_id = country_spain self.checkin6.residence_state_id = state_madrid self.partner_6.residence_state_id = state_madrid - self.checkin7.nationality_id = country_spain - self.partner_7.nationality_id = country_spain + self.checkin7.residence_country_id = country_spain + self.partner_7.residence_country_id = country_spain self.checkin7.residence_state_id = state_madrid self.partner_7.residence_state_id = state_madrid diff --git a/pms_l10n_es/tests/test_wizard_traveller_report.py b/pms_l10n_es/tests/test_wizard_traveller_report.py index 4b3bc6ebb..a1b7ac26b 100644 --- a/pms_l10n_es/tests/test_wizard_traveller_report.py +++ b/pms_l10n_es/tests/test_wizard_traveller_report.py @@ -124,6 +124,9 @@ class TestWizardTravellerReport(TestPms): "reservation_id": self.reservation_1.id, "firstname": "John", "lastname": "Doe", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create reservation 2 @@ -144,6 +147,9 @@ class TestWizardTravellerReport(TestPms): "reservation_id": self.reservation_2.id, "firstname": "Martha", "lastname": "Stewart", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # checkin partners on board @@ -188,6 +194,9 @@ class TestWizardTravellerReport(TestPms): "firstname": "John", "lastname": "Doe", "nationality_id": self.country_italy.id, + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # Create reservation 2 @@ -208,6 +217,9 @@ class TestWizardTravellerReport(TestPms): "reservation_id": self.reservation_2.id, "firstname": "Martha", "lastname": "Stewart", + "residence_street": "Test street 1", + "residence_city": "Test city", + "residence_zip": "08001", } ) # checkin partners on board diff --git a/pms_l10n_es/views/pms_property_views.xml b/pms_l10n_es/views/pms_property_views.xml index bd2130bc6..1df453b0d 100644 --- a/pms_l10n_es/views/pms_property_views.xml +++ b/pms_l10n_es/views/pms_property_views.xml @@ -18,7 +18,12 @@
+ +
@@ -31,6 +36,7 @@ class="btn btn-primary btn-sm" type="object" string="Test user/password" + attrs="{'invisible': [('institution','=','ses')]}" />
diff --git a/pms_l10n_es/views/pms_reservation_views.xml b/pms_l10n_es/views/pms_reservation_views.xml new file mode 100644 index 000000000..015bef956 --- /dev/null +++ b/pms_l10n_es/views/pms_reservation_views.xml @@ -0,0 +1,34 @@ + + + + Rerservation Form l10n_es + pms.reservation + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pms_l10n_es/views/pms_ses_communication_views.xml b/pms_l10n_es/views/pms_ses_communication_views.xml new file mode 100644 index 000000000..3268b5e1b --- /dev/null +++ b/pms_l10n_es/views/pms_ses_communication_views.xml @@ -0,0 +1,90 @@ + + + + pms.ses.communication.form + pms.ses.communication + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + pms.ses.communication.tree + pms.ses.communication + + + + + + + + + + + + + + + + + + + + pms.ses.communication.search + pms.ses.communication + + + + + + + + + + + + + + + SES Communications + pms.ses.communication + tree,form + + +
diff --git a/pms_l10n_es/wizards/traveller_report.py b/pms_l10n_es/wizards/traveller_report.py index 533fd3bca..707a0bc90 100644 --- a/pms_l10n_es/wizards/traveller_report.py +++ b/pms_l10n_es/wizards/traveller_report.py @@ -1,13 +1,18 @@ import base64 +import csv import datetime +import io import json import logging import re import time +import xml.etree.cElementTree as ET +import zipfile import requests from bs4 import BeautifulSoup as bs from dateutil.relativedelta import relativedelta +from requests.packages.urllib3.exceptions import InsecureRequestWarning from odoo import _, api, fields, models from odoo.exceptions import MissingError, ValidationError @@ -15,6 +20,305 @@ from odoo.modules.module import get_module_resource _logger = logging.getLogger(__name__) +CODE_SPAIN = "ES" +CODE_PASSPORT = "P" +CODE_DNI = "D" +CODE_NIE = "N" + +REQUEST_CODE_OK = "0" +XML_OK = "1" +XML_PROCESSING = "4" +XML_PENDING = "5" + +DELETE_OPERATION_CODE = "B" + +# Disable insecure request warnings +requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + + +def _string_to_zip_to_base64(string_data): + zip_buffer = io.BytesIO() + with zipfile.ZipFile(zip_buffer, "w", zipfile.ZIP_DEFLATED) as zip_file: + zip_file.writestr("data.xml", string_data.encode("utf-8")) + zip_buffer.seek(0) + zip_data = zip_buffer.read() + zip_base64 = base64.b64encode(zip_data) + return zip_base64.decode() + + +def _ses_xml_payment_elements(contrato, reservation): + pago = ET.SubElement(contrato, "pago") + payments = reservation.folio_id.payment_ids.filtered(lambda x: x.state == "posted") + tipo_pago = "DESTI" + if payments: + payment = payments[0] + tipo_pago = "EFECT" if payment.journal_id.type == "cash" else "PLATF" + ET.SubElement(pago, "tipoPago").text = tipo_pago + + +def _ses_xml_contract_elements(comunicacion, reservation): + contrato = ET.SubElement(comunicacion, "contrato") + ET.SubElement(contrato, "referencia").text = reservation.name + ET.SubElement(contrato, "fechaContrato").text = str(reservation.date_order)[:10] + ET.SubElement( + contrato, "fechaEntrada" + ).text = f"{str(reservation.checkin)[:10]}T00:00:00" + ET.SubElement( + contrato, "fechaSalida" + ).text = f"{str(reservation.checkout)[:10]}T00:00:00" + ET.SubElement(contrato, "numPersonas").text = str(reservation.adults) + _ses_xml_payment_elements(contrato, reservation) + + +def _ses_xml_text_element_and_validate(parent, tag, text, error_message): + if text: + ET.SubElement(parent, tag).text = text + else: + raise ValidationError(error_message) + + +def _ses_xml_map_document_type(code): + if code == CODE_DNI: + return "NIF" + elif code == CODE_NIE: + return "NIE" + elif code == CODE_PASSPORT: + return "PAS" + else: + return "OTRO" + + +def _ses_xml_person_names_elements(persona, reservation, checkin_partner): + if reservation: + name = False + if reservation.partner_id.firstname: + name = reservation.partner_id.firstname + elif reservation.partner_name: + name = reservation.partner_name.split(" ")[0] + _ses_xml_text_element_and_validate( + persona, + "nombre", + name, + _("The reservation does not have a name."), + ) + + if reservation.partner_id.lastname: + firstname = reservation.partner_id.lastname + elif reservation.partner_name and len(reservation.partner_name.split(" ")) > 1: + firstname = reservation.partner_name.split(" ")[1] + else: + firstname = "No aplica" + ET.SubElement(persona, "apellido1").text = firstname + + elif checkin_partner: + _ses_xml_text_element_and_validate( + persona, + "nombre", + checkin_partner.firstname, + _("The guest does not have a name."), + ) + _ses_xml_text_element_and_validate( + persona, + "apellido1", + checkin_partner.lastname, + _("The guest does not have a lastname."), + ) + + if checkin_partner.document_type.code == CODE_DNI: + _ses_xml_text_element_and_validate( + persona, + "apellido2", + checkin_partner.partner_id.lastname2, + _("The guest does not have a second lastname."), + ) + + +def _ses_xml_person_personal_info_elements(persona, checkin_partner): + ET.SubElement(persona, "rol").text = "VI" + + _ses_xml_person_names_elements( + persona, reservation=False, checkin_partner=checkin_partner + ) + + if checkin_partner.document_type.code: + document_type = _ses_xml_map_document_type(checkin_partner.document_type.code) + ET.SubElement(persona, "tipoDocumento").text = document_type + else: + raise ValidationError(_("The guest does not have a document type.")) + + _ses_xml_text_element_and_validate( + persona, + "numeroDocumento", + checkin_partner.document_number, + _("The guest does not have a document number."), + ) + + if checkin_partner.document_type.code in [CODE_DNI, CODE_NIE]: + _ses_xml_text_element_and_validate( + persona, + "soporteDocumento", + checkin_partner.support_number, + _("The guest does not have a support number."), + ) + _ses_xml_text_element_and_validate( + persona, + "fechaNacimiento", + str(checkin_partner.birthdate_date)[:10], + _("The guest does not have a birthdate."), + ) + + +def _ses_xml_municipality_code(residence_zip): + with open( + get_module_resource( + "pms_l10n_es", "static/src/", "pms.ine.zip.municipality.ine.relation.csv" + ), + "r", + newline="", + ) as f: + lector = csv.reader(f) + for fila in lector: + if residence_zip in fila[0]: + return fila[1][:5] + raise ValidationError(_("The guest does not have a valid zip code.")) + + +def _ses_xml_person_address_elements(persona, checkin_partner): + direccion = ET.SubElement(persona, "direccion") + _ses_xml_text_element_and_validate( + direccion, + "direccion", + checkin_partner.residence_street, + _("The guest does not have a street."), + ) + + if checkin_partner.residence_country_id.code == CODE_SPAIN: + municipio_code = _ses_xml_municipality_code(checkin_partner.residence_zip) + if municipio_code: + ET.SubElement(direccion, "codigoMunicipio").text = municipio_code + else: + _ses_xml_text_element_and_validate( + direccion, + "nombreMunicipio", + checkin_partner.residence_city, + _("The guest does not have a city."), + ) + + _ses_xml_text_element_and_validate( + direccion, + "codigoPostal", + checkin_partner.residence_zip, + _("The guest does not have a zip code."), + ) + _ses_xml_text_element_and_validate( + direccion, + "pais", + checkin_partner.residence_country_id.code_alpha3, + _("The guest does not have a country."), + ) + + +def _ses_xml_person_contact_elements(persona, reservation, checkin_partner=False): + partner = reservation.partner_id + contact_methods = [] + if checkin_partner: + contact_methods.extend( + [ + checkin_partner.mobile, + checkin_partner.phone, + checkin_partner.email, + ] + ) + contact_methods.extend( + [ + partner.mobile, + partner.phone, + partner.email, + reservation.email, + reservation.pms_property_id.partner_id.email, + reservation.pms_property_id.partner_id.phone, + ] + ) + + for contact in contact_methods: + if contact: + tag = "telefono" if "@" not in contact else "correo" + ET.SubElement(persona, tag).text = contact + break + else: + raise ValidationError( + _( + "The guest/reservation partner and property does not " + "have a contact method (mail or phone)" + ) + ) + + +def _ses_xml_person_elements(comunicacion, checkin_partner): + persona = ET.SubElement(comunicacion, "persona") + _ses_xml_person_personal_info_elements(persona, checkin_partner) + _ses_xml_person_address_elements(persona, checkin_partner) + _ses_xml_person_contact_elements( + persona, checkin_partner.reservation_id, checkin_partner + ) + + +def _get_auth_headers(communication): + user = communication.reservation_id.pms_property_id.institution_user + password = communication.reservation_id.pms_property_id.institution_password + + user_and_password_base64 = "Basic " + base64.b64encode( + bytes(user + ":" + password, "utf-8") + ).decode("utf-8") + + return { + "Authorization": user_and_password_base64, + "Content-Type": "text/xml; charset=utf-8", + } + + +def _generate_payload(lessor_id, operation, entity, data): + return f""" + + + + + + + {lessor_id} + Roomdoo + {operation} + {entity} + + {data} + + + + + """ + + +def _handle_request_exception(communication, e): + if isinstance(e, requests.exceptions.RequestException): + if isinstance(e, requests.exceptions.ConnectionError): + if communication.state == "to_send": + communication.sending_result = "Cannot establish the connection." + else: + communication.processing_result = "Cannot establish the connection." + elif isinstance(e, requests.exceptions.Timeout): + if communication.state == "to_send": + communication.sending_result = "The request took too long to complete." + else: + communication.processing_result = ( + "The request took too long to complete." + ) + else: + if communication.state == "to_send": + communication.sending_result = f"Request error: {e}" + else: + communication.processing_result = f"Request error: {e}" + class TravellerReport(models.TransientModel): _name = "traveller.report.wizard" @@ -22,10 +326,26 @@ class TravellerReport(models.TransientModel): txt_filename = fields.Text() txt_binary = fields.Binary(string="File Download") - txt_message = fields.Char(string="File Preview") + txt_message = fields.Char( + string="File Preview", + readonly=True, + store=True, + compute="_compute_txt_message", + ) date_target = fields.Date( string="Date", required=True, default=lambda self: fields.Date.today() ) + date_from = fields.Date( + string="From", + required=True, + default=lambda self: fields.Date.today(), + ) + date_to = fields.Date( + string="To", + required=True, + default=lambda self: fields.Date.today() + relativedelta(days=1), + ) + pms_property_id = fields.Many2one( comodel_name="pms.property", string="Property", @@ -33,6 +353,35 @@ class TravellerReport(models.TransientModel): default=lambda self: self.env.user.get_active_property_ids()[0], ) + is_ses = fields.Boolean( + string="Is SES", + readonly=True, + compute="_compute_is_ses", + ) + + report_type = fields.Selection( + string="Report Type", + required=True, + default="reservations", + help="Report type (reservation/traveller report)", + selection=[ + ("reservations", "Reservations Report"), + ("travellers", "Travellers Report"), + ], + ) + + @api.depends( + "pms_property_id", "date_target", "date_from", "date_to", "report_type" + ) + def _compute_txt_message(self): + for record in self: + record.txt_message = False + + @api.depends("pms_property_id.institution") + def _compute_is_ses(self): + for record in self: + record.is_ses = record.pms_property_id.institution == "ses" + def generate_file_from_user_action(self): pms_property = self.env["pms.property"].search( [("id", "=", self.pms_property_id.id)] @@ -45,22 +394,64 @@ class TravellerReport(models.TransientModel): or not pms_property.institution_password ): raise ValidationError( - _("The guest information sending settings is not property updated.") + _("The guest information sending settings is not property set up.") ) + content = False # build content - content = self.generate_checkin_list( - pms_property_id=pms_property.id, - date_target=self.date_target, - ) + if self.is_ses: + if self.report_type == "travellers": + content = self.generate_ses_travellers_list( + pms_property_id=pms_property.id, + date_target=self.date_target, + ) + elif self.report_type == "reservations": + content = self.generate_ses_reservation_list( + pms_property_id=pms_property.id, + date_from=self.date_from, + date_to=self.date_to, + ) + else: + content = self.generate_checkin_list( + pms_property_id=pms_property.id, + date_target=self.date_target, + ) if content: - self.txt_filename = pms_property.institution_property_id + ".999" + if self.is_ses: + if self.report_type == "travellers": + self.txt_filename = ( + pms_property.institution_property_id + + "-" + + self.date_target.strftime("%Y%m%d") + ) + else: + self.txt_filename = ( + pms_property.institution_property_id + + "-" + + self.date_from.strftime("%Y%m%d") + + "-" + + self.date_to.strftime("%Y%m%d") + ) + self.txt_filename = self.txt_filename + ".xml" + + else: + self.txt_filename = ( + pms_property.institution_property_id + + "-" + + self.date_target.strftime("%Y%m%d") + + ".999" + ) + self.txt_binary = base64.b64encode(str.encode(content)) self.txt_message = content return { - "name": _("Traveller Report"), + "name": _( + "Travellers Report" + if self.report_type == "travellers" or not self.is_ses + else "Reservations Report" + ), "res_id": self.id, "res_model": "traveller.report.wizard", "target": "new", @@ -450,3 +841,290 @@ class TravellerReport(models.TransientModel): if prop.institution: self.send_file_institution(pms_property=prop, offset=offset) time.sleep(0.5) + + # SES RESERVATIONS + def generate_ses_reservation_list(self, pms_property_id, date_from, date_to): + reservation_ids = ( + self.env["pms.reservation"] + .search( + [ + ("pms_property_id", "=", pms_property_id), + ("state", "!=", "cancel"), + ("reservation_type", "!=", "out"), + "|", + ("date_order", ">=", date_from), + ("date_order", "<=", date_to), + ] + ) + .mapped("id") + ) + return self.generate_xml_reservations(reservation_ids) + + def generate_xml_reservation(self, solicitud, reservation_id): + reservation = self.env["pms.reservation"].browse(reservation_id) + + if not reservation.pms_property_id.institution_property_id: + raise ValidationError( + _("The property does not have an institution property id.") + ) + + # SOLICITUD > COMUNICACION + comunicacion = ET.SubElement(solicitud, "comunicacion") + + # SOLICITUD > COMUNICACION > ESTABLECIMIENTO + establecimiento = ET.SubElement(comunicacion, "establecimiento") + + # SOLICITUD > COMUNICACION > ESTABLECIMIENTO > CODIGO + ET.SubElement( + establecimiento, "codigo" + ).text = reservation.pms_property_id.institution_property_id + + # SOLICITUD > COMUNICACION > CONTRATO + _ses_xml_contract_elements(comunicacion, reservation) + + # SOLICITUD > COMUNICACION > PERSONA + persona = ET.SubElement(comunicacion, "persona") + + # SOLICITUD > COMUNICACION > PERSONA > ROL + ET.SubElement(persona, "rol").text = "TI" + + # SOLICITUD > COMUNICACION > PERSONA > NOMBRE + _ses_xml_person_names_elements(persona, reservation, checkin_partner=None) + _ses_xml_person_contact_elements(persona, reservation) + + def generate_xml_reservations(self, reservation_ids): + if not reservation_ids: + raise ValidationError(_("Theres's no reservation to generate the XML")) + + # SOLICITUD + solicitud = ET.Element("solicitud") + for reservation_id in reservation_ids: + ET.SubElement( + solicitud, + self.generate_xml_reservation(solicitud, reservation_id), + ) + xml_str = ET.tostring(solicitud, encoding="unicode") + + xml_str = ( + '' + + xml_str + + "" + ) + return xml_str + + # SES RESERVATIONS TRAVELLER REPORT + def generate_ses_travellers_list(self, pms_property_id, date_target): + reservation_ids = ( + self.env["pms.reservation"] + .search( + [ + ("pms_property_id", "=", pms_property_id), + ("checkin", "=", date_target), + ] + ) + .mapped("id") + ) + return self.generate_xml_reservations_travellers_report(reservation_ids) + + def generate_xml_reservation_travellers_report(self, solicitud, reservation_id): + reservation = self.env["pms.reservation"].browse(reservation_id) + comunicacion = ET.SubElement(solicitud, "comunicacion") + _ses_xml_contract_elements(comunicacion, reservation) + + for checkin_partner in reservation.checkin_partner_ids.filtered( + lambda x: x.state == "onboard" + ): + _ses_xml_person_elements(comunicacion, checkin_partner) + + def generate_xml_reservations_travellers_report(self, reservation_ids): + if not reservation_ids: + raise ValidationError(_("Theres's no reservation to generate the XML")) + + if ( + len( + self.env["pms.reservation"] + .browse(reservation_ids) + .mapped("pms_property_id") + ) + > 1 + ): + raise ValidationError(_("The reservations must be from the same property.")) + if not any( + state == "onboard" + for state in self.env["pms.reservation"] + .browse(reservation_ids) + .mapped("checkin_partner_ids") + .mapped("state") + ): + raise ValidationError( + _("There are no guests to generate the travellers report.") + ) + + # SOLICITUD + solicitud = ET.Element("solicitud") + + pms_property = ( + self.env["pms.reservation"].browse(reservation_ids[0]).pms_property_id + ) + + if not pms_property.institution_property_id: + raise ValidationError( + _("The property does not have an institution property id.") + ) + + # SOLICITUD -> CODIGO ESTABLECIMIENTO + ET.SubElement( + solicitud, "codigoEstablecimiento" + ).text = pms_property.institution_property_id + + for reservation_id in reservation_ids: + ET.SubElement( + solicitud, + self.generate_xml_reservation_travellers_report( + solicitud, reservation_id + ), + ) + xml_str = ET.tostring(solicitud, encoding="unicode") + + xml_str = ( + '' + + xml_str + + "" + ) + return xml_str + + @api.model + def ses_send_communications(self, entity): + for communication in self.env["pms.ses.communication"].search( + [ + ("state", "=", "to_send"), + ("entity", "=", entity), + ] + ): + data = False + if communication.entity == "RH": + data = self.generate_xml_reservations([communication.reservation_id.id]) + elif communication.entity == "PV": + data = self.generate_xml_reservations_travellers_report( + [communication.reservation_id.id] + ) + communication.communication_xml = data + data = _string_to_zip_to_base64(data) + payload = _generate_payload( + communication.reservation_id.pms_property_id.institution_lessor_id, + communication.operation, + communication.entity, + data, + ) + communication.communication_soap = payload + communication.communication_time = fields.Datetime.now() + try: + soap_response = requests.request( + "POST", + communication.reservation_id.pms_property_id.ses_url, + headers=_get_auth_headers(communication), + data=payload, + verify=False, + ) + root = ET.fromstring(soap_response.text) + communication.sending_result = root.find(".//descripcion").text + communication.response_communication_soap = soap_response.text + result_code = root.find(".//codigo").text + if result_code == REQUEST_CODE_OK: + communication.communication_id = root.find(".//lote").text + if communication.operation == "A": + communication.state = "to_process" + else: + communication.state = "processed" + else: + communication.state = "error_sending" + + except requests.exceptions.RequestException as e: + _handle_request_exception(communication, e) + + @api.model + def ses_process_communications(self): + for communication in self.env["pms.ses.communication"].search( + [ + ("state", "=", "to_process"), + ("operation", "!=", DELETE_OPERATION_CODE), + ] + ): + var_xml_get_batch = f""" + + {communication.communication_id} + + """ + communication.query_status_xml = var_xml_get_batch + data = _string_to_zip_to_base64(var_xml_get_batch) + payload = _generate_payload( + communication.reservation_id.pms_property_id.institution_lessor_id, + "C", + "", + data, + ) + communication.query_status_soap = payload + communication.query_status_time = fields.Datetime.now() + try: + soap_response = requests.request( + "POST", + communication.reservation_id.pms_property_id.ses_url, + headers=_get_auth_headers(communication), + data=payload, + verify=False, + ) + root = ET.fromstring(soap_response.text) + communication.response_communication_soap = soap_response.text + result_code = root.find(".//codigo").text + communication.response_query_status_soap = soap_response.text + if result_code == REQUEST_CODE_OK: + result_status = root.find(".//codigoEstado").text + if result_status == XML_OK: + communication.state = "processed" + communication.processing_result = root.find( + ".//descripcion" + ).text + elif result_status in [XML_PROCESSING, XML_PENDING]: + communication.state = "to_process" + communication.processing_result = "Not processed yet" + else: + communication.state = "error_processing" + communication.processing_result = root.find(".//error").text + # request errors + else: + communication.state = "error_processing" + communication.processing_result = root.find(".//descripcion").text + except requests.exceptions.RequestException as e: + _handle_request_exception(communication, e) + + @api.model + def create_pending_notifications_traveller_report(self): + + domain = [ + ("state", "=", "onboard"), + ("checkin", "=", fields.Datetime.today().date()), + ("pms_property_id.institution", "=", "ses"), + ] + for reservation in ( + self.env["pms.reservation"] + .search(domain) + .filtered( + lambda x: any( + state == "onboard" + for state in x.checkin_partner_ids.mapped("state") + ) + ) + ): + self.env["pms.ses.communication"].search( + [ + ("reservation_id", "=", reservation.id), + ("entity", "=", "PV"), + ("state", "=", "to_send"), + ] + ).unlink() + self.env["pms.reservation"].create_communication( + reservation.id, + "A", + "PV", + ) diff --git a/pms_l10n_es/wizards/traveller_report.xml b/pms_l10n_es/wizards/traveller_report.xml index 9dadfe3f9..971ebeed1 100644 --- a/pms_l10n_es/wizards/traveller_report.xml +++ b/pms_l10n_es/wizards/traveller_report.xml @@ -9,10 +9,40 @@
+ - + + + + - + @@ -25,26 +55,30 @@
-
-
-
-
-
+
-