Reorganiza dados e adiciona modelo OAMRP
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
chave;status;tipo_ica;tipo_relatorio;nivel_ica;nivel_relatorio;intervalo_horas_ica;intervalo_horas_relatorio;intervalo_meses_ica;intervalo_meses_relatorio;duracao_ica;duracao_relatorio;hxh_ica;seq_relatorio;observacoes
|
||||
PRE VOO;somente_ica;PRÉ VOO;;Base;;;;;;1 H;;1;;Não encontrada no relatório de ciclo
|
||||
TRANSITO;somente_ica;TRÂNSITO;;Base;;;;;;1 H;;1;;Não encontrada no relatório de ciclo
|
||||
DIARIA;somente_ica;DIÁRIA;;Base;;;;;;1 H;;1;;Não encontrada no relatório de ciclo
|
||||
SERV 72H;somente_ica;SERV 72H;;Base;;72;;;;4 H;;16;;Não encontrada no relatório de ciclo
|
||||
OPERACIONAL 300FH;divergente;OPERACIONAL 300FH;CHECK OPERACIONAL DE 300FH;Base;Orgânico;300;300;;;1 D;6 H;14;6;"nível ICA=Base relatório=Orgânico; duração ICA=1 D relatório=6 H"
|
||||
OPERACIONAL 400FH;divergente;OPERACIONAL 400FH;CHECK OPERACIONAL DE 400FH;Base;Orgânico;400;400;;;1 D;6 H;14;7;"nível ICA=Base relatório=Orgânico; duração ICA=1 D relatório=6 H"
|
||||
OPERACIONAL 600FH;somente_ica;OPERACIONAL 600FH;;Base;;600;;;;1 D;;14;;Não encontrada no relatório de ciclo
|
||||
CHECK 1A;compatível;CHECK 1A;INSPEÇÃO CHECK 1A;Base;Base;300;300;8;8;3 D;3 D;16;2;
|
||||
CHECK 2A;compatível;CHECK 2A;INSPEÇÃO CHECK 2A;Base;Base;600;600;16;16;4 D;4 D;28;3;
|
||||
CHECK 3A;compatível;CHECK 3A;INSPEÇÃO CHECK 3A;Base;Base;900;900;24;24;5 D;5 D;76;4;
|
||||
CHECK 1C;divergente;CHECK 1C;INSPEÇÃO CHECK 1C;Base;Parque;2400;2400;48;48;65 D;65 D;526;15;nível ICA=Base relatório=Parque
|
||||
CHECK 2C;divergente;CHECK 2C;INSPEÇÃO GERAL CHECK 2C;Base;Parque;4800;4800;96;96;5 D;10 D;17;16;"nível ICA=Base relatório=Parque; duração ICA=5 D relatório=10 D"
|
||||
CALENDARICA 2Y;compatível;CALENDÁRICA 2Y;INSPEÇÃO CALENDÁRICA DE 2 YEARS;Base;Base;;;24;24;5 D;5 D;30;5;
|
||||
CALENDARICA 4Y;compatível;CALENDÁRICA 4Y;INSPEÇÃO CALENDÁRICA DE 4 YEARS;Parque;Parque;;;48;48;10 D;10 D;123;17;
|
||||
CALENDARICA 8Y;compatível;CALENDÁRICA 8Y;INSPEÇÃO CALENDÁRICA DE 8 YEARS;Parque;Parque;;;96;96;20 D;20 D;336;14;
|
||||
;somente_relatorio;;INSPEÇÃO AOL 295-019;;Base;;;;;;1 D;;8;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INSPEÇÃO AOL 295-019;;Base;;;;;;1 D;;9;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INSPEÇÃO AOL 295-019;;Base;;;;;;1 D;;10;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INSPEÇÃO DE 100 FH;;Orgânico;;100;;;;1 H;;18;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INPEÇÃO 2400FH;;Orgânico;;2400;;;;3 H;;19;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INSPEÇÃO 3000FH;;Base;;3000;;;;1 D;;20;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INPEÇÃO 1000FH;;Base;;1000;;;;1 D;;22;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
;somente_relatorio;;INSPEÇÃO 50 FH;;Base;;50;;;;1 D;;23;Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação
|
||||
|
@@ -0,0 +1,26 @@
|
||||
# Comparação ICA 66-31/2023 x Relatório de Ciclo C-105 2805
|
||||
|
||||
Fonte ICA: `raw/ICA 66-31 2023.pdf`, Anexo D - Projeto C/SC-105.
|
||||
|
||||
Observação: a comparação foi feita com o Anexo D textual do PDF completo da ICA.
|
||||
|
||||
## Resumo
|
||||
|
||||
- `compatível`: 6
|
||||
- `divergente`: 4
|
||||
- `somente_ica`: 5
|
||||
- `somente_relatorio`: 8
|
||||
|
||||
## Principais Achados
|
||||
|
||||
- `CHECK 1A`, `CHECK 2A`, `CHECK 3A`, `CALENDÁRICA 2Y`, `CALENDÁRICA 4Y` e `CALENDÁRICA 8Y` estão compatíveis nos intervalos e durações.
|
||||
- `CHECK 1C` bate em intervalo e duração, mas diverge no nível: ICA indica Base na tabela D.2, enquanto o relatório de ciclo indica Parque.
|
||||
- `CHECK 2C` diverge em nível e duração: ICA indica Base e 5 D; relatório de ciclo indica Parque e 10 D.
|
||||
- `OPERACIONAL 300FH` e `OPERACIONAL 400FH` batem no intervalo de horas, mas divergem em nível e duração: ICA indica Base e 1 D; relatório de ciclo indica Orgânico e 6 H.
|
||||
- `OPERACIONAL 600FH`, `PRÉ VOO`, `TRÂNSITO`, `DIÁRIA` e `SERV 72H` aparecem na ICA, mas não apareceram no relatório de ciclo processado.
|
||||
- Inspeções como AOL, 50FH, 100FH, 1000FH, 2400FH e 3000FH aparecem no relatório de ciclo, mas não na tabela C/SC-105 da ICA usada na comparação.
|
||||
|
||||
## Arquivo Detalhado
|
||||
|
||||
- `pre_process\comparacao_ica_66_31_c105_2023\comparacao_ica_66_31_c105_2023_vs_relatorio_ciclo.csv`
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
import csv
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
RELATORIO_JSON = (
|
||||
ROOT
|
||||
/ "pre_process"
|
||||
/ "relatorio_ciclo_inspecoes_c105_2805_2026-06-15"
|
||||
/ "relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json"
|
||||
)
|
||||
OUTPUT_DIR = Path(__file__).resolve().parent
|
||||
CSV_PATH = OUTPUT_DIR / "comparacao_ica_66_31_c105_2023_vs_relatorio_ciclo.csv"
|
||||
MD_PATH = OUTPUT_DIR / "comparacao_ica_66_31_c105_2023_vs_relatorio_ciclo.md"
|
||||
|
||||
|
||||
ICA_C105 = [
|
||||
{"chave": "PRE VOO", "tipo_ica": "PRÉ VOO", "nivel_ica": "Base", "intervalo_horas_ica": "", "intervalo_meses_ica": "", "duracao_ica": "1 H", "hxh_ica": 1},
|
||||
{"chave": "TRANSITO", "tipo_ica": "TRÂNSITO", "nivel_ica": "Base", "intervalo_horas_ica": "", "intervalo_meses_ica": "", "duracao_ica": "1 H", "hxh_ica": 1},
|
||||
{"chave": "DIARIA", "tipo_ica": "DIÁRIA", "nivel_ica": "Base", "intervalo_horas_ica": "", "intervalo_meses_ica": "", "duracao_ica": "1 H", "hxh_ica": 1},
|
||||
{"chave": "SERV 72H", "tipo_ica": "SERV 72H", "nivel_ica": "Base", "intervalo_horas_ica": 72, "intervalo_meses_ica": "", "duracao_ica": "4 H", "hxh_ica": 16},
|
||||
{"chave": "OPERACIONAL 300FH", "tipo_ica": "OPERACIONAL 300FH", "nivel_ica": "Base", "intervalo_horas_ica": 300, "intervalo_meses_ica": "", "duracao_ica": "1 D", "hxh_ica": 14},
|
||||
{"chave": "OPERACIONAL 400FH", "tipo_ica": "OPERACIONAL 400FH", "nivel_ica": "Base", "intervalo_horas_ica": 400, "intervalo_meses_ica": "", "duracao_ica": "1 D", "hxh_ica": 14},
|
||||
{"chave": "OPERACIONAL 600FH", "tipo_ica": "OPERACIONAL 600FH", "nivel_ica": "Base", "intervalo_horas_ica": 600, "intervalo_meses_ica": "", "duracao_ica": "1 D", "hxh_ica": 14},
|
||||
{"chave": "CHECK 1A", "tipo_ica": "CHECK 1A", "nivel_ica": "Base", "intervalo_horas_ica": 300, "intervalo_meses_ica": 8, "duracao_ica": "3 D", "hxh_ica": 16},
|
||||
{"chave": "CHECK 2A", "tipo_ica": "CHECK 2A", "nivel_ica": "Base", "intervalo_horas_ica": 600, "intervalo_meses_ica": 16, "duracao_ica": "4 D", "hxh_ica": 28},
|
||||
{"chave": "CHECK 3A", "tipo_ica": "CHECK 3A", "nivel_ica": "Base", "intervalo_horas_ica": 900, "intervalo_meses_ica": 24, "duracao_ica": "5 D", "hxh_ica": 76},
|
||||
{"chave": "CHECK 1C", "tipo_ica": "CHECK 1C", "nivel_ica": "Base", "intervalo_horas_ica": 2400, "intervalo_meses_ica": 48, "duracao_ica": "65 D", "hxh_ica": 526},
|
||||
{"chave": "CHECK 2C", "tipo_ica": "CHECK 2C", "nivel_ica": "Base", "intervalo_horas_ica": 4800, "intervalo_meses_ica": 96, "duracao_ica": "5 D", "hxh_ica": 17},
|
||||
{"chave": "CALENDARICA 2Y", "tipo_ica": "CALENDÁRICA 2Y", "nivel_ica": "Base", "intervalo_horas_ica": "", "intervalo_meses_ica": 24, "duracao_ica": "5 D", "hxh_ica": 30},
|
||||
{"chave": "CALENDARICA 4Y", "tipo_ica": "CALENDÁRICA 4Y", "nivel_ica": "Parque", "intervalo_horas_ica": "", "intervalo_meses_ica": 48, "duracao_ica": "10 D", "hxh_ica": 123},
|
||||
{"chave": "CALENDARICA 8Y", "tipo_ica": "CALENDÁRICA 8Y", "nivel_ica": "Parque", "intervalo_horas_ica": "", "intervalo_meses_ica": 96, "duracao_ica": "20 D", "hxh_ica": 336},
|
||||
]
|
||||
|
||||
|
||||
RELATORIO_KEYS = {
|
||||
"CHECK 1A": "CHECK 1A",
|
||||
"CHECK 2A": "CHECK 2A",
|
||||
"CHECK 3A": "CHECK 3A",
|
||||
"CHECK 1C": "CHECK 1C",
|
||||
"CHECK 2C": "CHECK 2C",
|
||||
"CALENDÁRICA DE 2 YEARS": "CALENDARICA 2Y",
|
||||
"CALENDÁRICA DE 4 YEARS": "CALENDARICA 4Y",
|
||||
"CALENDÁRICA DE 8 YEARS": "CALENDARICA 8Y",
|
||||
"OPERACIONAL DE 300FH": "OPERACIONAL 300FH",
|
||||
"OPERACIONAL DE 400FH": "OPERACIONAL 400FH",
|
||||
}
|
||||
|
||||
|
||||
def key_from_relatorio(row):
|
||||
descricao = row["descricao_mnt"].upper()
|
||||
for needle, key in RELATORIO_KEYS.items():
|
||||
if needle in descricao:
|
||||
return key
|
||||
return ""
|
||||
|
||||
|
||||
def equal_or_blank(left, right):
|
||||
return left == "" or right == "" or left == right
|
||||
|
||||
|
||||
def compare_row(ica, rel):
|
||||
if rel is None:
|
||||
return "somente_ica", ["Não encontrada no relatório de ciclo"]
|
||||
|
||||
issues = []
|
||||
if not equal_or_blank(ica["nivel_ica"], rel["nivel_descricao"]):
|
||||
issues.append(f"nível ICA={ica['nivel_ica']} relatório={rel['nivel_descricao']}")
|
||||
if not equal_or_blank(ica["intervalo_horas_ica"], rel["intervalo_horas_voo_valor"]):
|
||||
issues.append(f"horas ICA={ica['intervalo_horas_ica']} relatório={rel['intervalo_horas_voo_valor']}")
|
||||
if not equal_or_blank(ica["intervalo_meses_ica"], rel["intervalo_meses_continuos_valor"]):
|
||||
issues.append(f"meses ICA={ica['intervalo_meses_ica']} relatório={rel['intervalo_meses_continuos_valor']}")
|
||||
if not equal_or_blank(ica["duracao_ica"], rel["duracao"]):
|
||||
issues.append(f"duração ICA={ica['duracao_ica']} relatório={rel['duracao']}")
|
||||
|
||||
return ("divergente" if issues else "compatível"), issues
|
||||
|
||||
|
||||
def main():
|
||||
payload = json.loads(RELATORIO_JSON.read_text(encoding="utf-8"))
|
||||
relatorio_by_key = {}
|
||||
relatorio_unmatched = []
|
||||
|
||||
for row in payload["inspecoes"]:
|
||||
key = key_from_relatorio(row)
|
||||
if key:
|
||||
relatorio_by_key[key] = row
|
||||
else:
|
||||
relatorio_unmatched.append(row)
|
||||
|
||||
rows = []
|
||||
for ica in ICA_C105:
|
||||
rel = relatorio_by_key.get(ica["chave"])
|
||||
status, issues = compare_row(ica, rel)
|
||||
rows.append(
|
||||
{
|
||||
"chave": ica["chave"],
|
||||
"status": status,
|
||||
"tipo_ica": ica["tipo_ica"],
|
||||
"tipo_relatorio": rel["descricao_mnt"] if rel else "",
|
||||
"nivel_ica": ica["nivel_ica"],
|
||||
"nivel_relatorio": rel["nivel_descricao"] if rel else "",
|
||||
"intervalo_horas_ica": ica["intervalo_horas_ica"],
|
||||
"intervalo_horas_relatorio": rel["intervalo_horas_voo_valor"] if rel else "",
|
||||
"intervalo_meses_ica": ica["intervalo_meses_ica"],
|
||||
"intervalo_meses_relatorio": rel["intervalo_meses_continuos_valor"] if rel else "",
|
||||
"duracao_ica": ica["duracao_ica"],
|
||||
"duracao_relatorio": rel["duracao"] if rel else "",
|
||||
"hxh_ica": ica["hxh_ica"],
|
||||
"seq_relatorio": rel["seq"] if rel else "",
|
||||
"observacoes": "; ".join(issues),
|
||||
}
|
||||
)
|
||||
|
||||
for rel in relatorio_unmatched:
|
||||
rows.append(
|
||||
{
|
||||
"chave": "",
|
||||
"status": "somente_relatorio",
|
||||
"tipo_ica": "",
|
||||
"tipo_relatorio": rel["descricao_mnt"],
|
||||
"nivel_ica": "",
|
||||
"nivel_relatorio": rel["nivel_descricao"],
|
||||
"intervalo_horas_ica": "",
|
||||
"intervalo_horas_relatorio": rel["intervalo_horas_voo_valor"],
|
||||
"intervalo_meses_ica": "",
|
||||
"intervalo_meses_relatorio": rel["intervalo_meses_continuos_valor"],
|
||||
"duracao_ica": "",
|
||||
"duracao_relatorio": rel["duracao"],
|
||||
"hxh_ica": "",
|
||||
"seq_relatorio": rel["seq"],
|
||||
"observacoes": "Não encontrada na tabela C/SC-105 da ICA 66-31/2023 usada nesta comparação",
|
||||
}
|
||||
)
|
||||
|
||||
fields = list(rows[0].keys())
|
||||
with CSV_PATH.open("w", newline="", encoding="utf-8-sig") as csv_file:
|
||||
writer = csv.DictWriter(csv_file, fieldnames=fields, delimiter=";")
|
||||
writer.writeheader()
|
||||
writer.writerows(rows)
|
||||
|
||||
counts = {status: sum(1 for row in rows if row["status"] == status) for status in sorted({row["status"] for row in rows})}
|
||||
lines = [
|
||||
"# Comparação ICA 66-31/2023 x Relatório de Ciclo C-105 2805",
|
||||
"",
|
||||
"Fonte ICA: `raw/ICA 66-31 2023.pdf`, Anexo D - Projeto C/SC-105.",
|
||||
"",
|
||||
"Observação: a comparação foi feita com o Anexo D textual do PDF completo da ICA.",
|
||||
"",
|
||||
"## Resumo",
|
||||
"",
|
||||
]
|
||||
for status, count in counts.items():
|
||||
lines.append(f"- `{status}`: {count}")
|
||||
lines.extend(
|
||||
[
|
||||
"",
|
||||
"## Principais Achados",
|
||||
"",
|
||||
"- `CHECK 1A`, `CHECK 2A`, `CHECK 3A`, `CALENDÁRICA 2Y`, `CALENDÁRICA 4Y` e `CALENDÁRICA 8Y` estão compatíveis nos intervalos e durações.",
|
||||
"- `CHECK 1C` bate em intervalo e duração, mas diverge no nível: ICA indica Base na tabela D.2, enquanto o relatório de ciclo indica Parque.",
|
||||
"- `CHECK 2C` diverge em nível e duração: ICA indica Base e 5 D; relatório de ciclo indica Parque e 10 D.",
|
||||
"- `OPERACIONAL 300FH` e `OPERACIONAL 400FH` batem no intervalo de horas, mas divergem em nível e duração: ICA indica Base e 1 D; relatório de ciclo indica Orgânico e 6 H.",
|
||||
"- `OPERACIONAL 600FH`, `PRÉ VOO`, `TRÂNSITO`, `DIÁRIA` e `SERV 72H` aparecem na ICA, mas não apareceram no relatório de ciclo processado.",
|
||||
"- Inspeções como AOL, 50FH, 100FH, 1000FH, 2400FH e 3000FH aparecem no relatório de ciclo, mas não na tabela C/SC-105 da ICA usada na comparação.",
|
||||
"",
|
||||
"## Arquivo Detalhado",
|
||||
"",
|
||||
f"- `{CSV_PATH.relative_to(ROOT)}`",
|
||||
"",
|
||||
]
|
||||
)
|
||||
MD_PATH.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||||
|
||||
print(f"Gerado: {CSV_PATH.relative_to(ROOT)}")
|
||||
print(f"Gerado: {MD_PATH.relative_to(ROOT)}")
|
||||
print(counts)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,267 @@
|
||||
import csv
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
import pdfplumber
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
BASE_NAME = "relatorio_ciclo_inspecoes_c105_2805_2026-06-15"
|
||||
OUTPUT_DIR = Path(__file__).resolve().parent
|
||||
PDF_PATH = ROOT / "raw" / f"{BASE_NAME}.pdf"
|
||||
TXT_PATH = OUTPUT_DIR / f"{BASE_NAME}_texto.txt"
|
||||
JSON_PATH = OUTPUT_DIR / f"{BASE_NAME}_inspecoes.json"
|
||||
CSV_PATH = OUTPUT_DIR / f"{BASE_NAME}_inspecoes.csv"
|
||||
|
||||
ROW_START_RE = re.compile(r"^(?P<seq>\d+)\s+")
|
||||
INTERVAL_RE = re.compile(
|
||||
r"(?P<intervalo>\d+(?::\d+)?\s*(?:HORAS DE V[ÔO]O|MESES CONT[ÍI]NUOS|POUSOS))",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
|
||||
def extract_text(pdf_path):
|
||||
pages = []
|
||||
with pdfplumber.open(pdf_path) as pdf:
|
||||
for page in pdf.pages:
|
||||
pages.append(page.extract_text(x_tolerance=1, y_tolerance=3) or "")
|
||||
return "\n\n".join(pages).strip()
|
||||
|
||||
|
||||
def normalize_interval(value):
|
||||
return re.sub(r"\s+", " ", value.replace("VÔO", "VOO")).strip()
|
||||
|
||||
|
||||
def interval_number(intervalo):
|
||||
if not intervalo:
|
||||
return ""
|
||||
first_token = intervalo.split()[0]
|
||||
if ":" in first_token:
|
||||
return int(first_token.split(":", 1)[0])
|
||||
if first_token.isdigit():
|
||||
return int(first_token)
|
||||
return ""
|
||||
|
||||
|
||||
def parse_control_fields(tokens):
|
||||
nivel_descricao = {
|
||||
"B": "Base",
|
||||
"P": "Parque",
|
||||
"O": "Orgânico",
|
||||
}
|
||||
fields = {
|
||||
"zera_tso": "",
|
||||
"letra": "",
|
||||
"nivel": "",
|
||||
"nivel_descricao": "",
|
||||
"var_media": "",
|
||||
"duracao": "",
|
||||
"duracao_valor": "",
|
||||
"duracao_unidade": "",
|
||||
}
|
||||
|
||||
if tokens:
|
||||
fields["zera_tso"] = tokens[0]
|
||||
tokens = tokens[1:]
|
||||
|
||||
if len(tokens) >= 2 and tokens[-1] in {"D", "H"} and tokens[-2].isdigit():
|
||||
duracao_valor = tokens[-2]
|
||||
duracao_codigo = tokens[-1]
|
||||
tokens = tokens[:-2]
|
||||
fields["duracao"] = f"{duracao_valor} {duracao_codigo}"
|
||||
fields["duracao_valor"] = int(duracao_valor)
|
||||
fields["duracao_unidade"] = "dias" if duracao_codigo == "D" else "horas"
|
||||
|
||||
if len(tokens) == 1:
|
||||
if tokens[0] in nivel_descricao:
|
||||
fields["nivel"] = tokens[0]
|
||||
else:
|
||||
fields["letra"] = tokens[0]
|
||||
elif len(tokens) >= 2:
|
||||
if tokens[1] in nivel_descricao:
|
||||
fields["letra"] = tokens[0]
|
||||
fields["nivel"] = tokens[1]
|
||||
fields["var_media"] = " ".join(tokens[2:])
|
||||
elif tokens[0] in nivel_descricao:
|
||||
fields["nivel"] = tokens[0]
|
||||
fields["var_media"] = " ".join(tokens[1:])
|
||||
else:
|
||||
fields["letra"] = tokens[0]
|
||||
fields["nivel"] = tokens[1]
|
||||
fields["var_media"] = " ".join(tokens[2:])
|
||||
|
||||
fields["nivel_descricao"] = nivel_descricao.get(fields["nivel"], "")
|
||||
|
||||
return fields
|
||||
|
||||
|
||||
def split_records(text):
|
||||
records = []
|
||||
current = []
|
||||
|
||||
for raw_line in text.splitlines():
|
||||
line = re.sub(r"\s+", " ", raw_line).strip()
|
||||
if not line:
|
||||
continue
|
||||
if ROW_START_RE.match(line) and " Término da Anterior " in line:
|
||||
if current:
|
||||
records.append(" ".join(current))
|
||||
current = [line]
|
||||
elif current:
|
||||
current.append(line)
|
||||
|
||||
if current:
|
||||
records.append(" ".join(current))
|
||||
|
||||
return records
|
||||
|
||||
|
||||
def parse_header(text):
|
||||
header = {}
|
||||
|
||||
patterns = {
|
||||
"data_relatorio": r"Data:\s*(\d{2}/\d{2}/\d{4})",
|
||||
"hora_relatorio": r"Hora:\s*(\d{2}:\d{2}:\d{2})",
|
||||
"pn": r"PN:\s*(.*?)\s+CFF:",
|
||||
"cff": r"CFF:\s*(.*?)\s+Nomenclatura:",
|
||||
"nomenclatura": r"Nomenclatura:\s*(.*?)\s+SN:",
|
||||
"sn": r"SN:\s*(.*?)\s+Matrícula:",
|
||||
"matricula": r"Matrícula:\s*(.*?)\s+Modelo:",
|
||||
"modelo": r"Modelo:\s*(.*?)\s+Ciclo Atual:",
|
||||
"ciclo_atual": r"Ciclo Atual:\s*(\S+)",
|
||||
}
|
||||
|
||||
compact_text = re.sub(r"\s+", " ", text)
|
||||
for key, pattern in patterns.items():
|
||||
match = re.search(pattern, compact_text)
|
||||
if match:
|
||||
header[key] = match.group(1).strip()
|
||||
|
||||
return header
|
||||
|
||||
|
||||
def parse_record(record):
|
||||
record = record.replace("- Tipo D)", " - Tipo D)")
|
||||
has_tipo_d = " - Tipo D)" in record
|
||||
left, right = record.split(" Término da Anterior ", 1)
|
||||
|
||||
seq_match = ROW_START_RE.match(left)
|
||||
seq = int(seq_match.group("seq"))
|
||||
left_body = left[seq_match.end() :]
|
||||
|
||||
intervalos = [normalize_interval(m.group("intervalo")) for m in INTERVAL_RE.finditer(right)]
|
||||
right_before_interval = INTERVAL_RE.split(right, maxsplit=1)[0].strip()
|
||||
tokens = right_before_interval.split()
|
||||
|
||||
controle_tokens = tokens
|
||||
controle = " ".join(controle_tokens)
|
||||
control_fields = parse_control_fields(controle_tokens)
|
||||
|
||||
especial_marker = " Especial (a contar dela mesma"
|
||||
if especial_marker in left_body:
|
||||
before_ref, referencia = left_body.split(especial_marker, 1)
|
||||
referencia = "Especial (a contar dela mesma"
|
||||
if has_tipo_d:
|
||||
referencia += " - Tipo D)"
|
||||
else:
|
||||
ref_match = re.search(r"(Última .*)$", left_body)
|
||||
referencia = ref_match.group(1).strip() if ref_match else ""
|
||||
before_ref = left_body[: ref_match.start()].strip() if ref_match else left_body
|
||||
|
||||
upper_before_ref = before_ref.upper()
|
||||
desc_idx = upper_before_ref.find("INSPEÇÃO")
|
||||
if desc_idx == -1:
|
||||
desc_idx = upper_before_ref.find("INPEÇÃO")
|
||||
if desc_idx == -1:
|
||||
desc_idx = upper_before_ref.find("CHECK OPERACIONAL")
|
||||
|
||||
if desc_idx != -1:
|
||||
sigla = before_ref[:desc_idx].strip()
|
||||
descricao = before_ref[desc_idx:].strip()
|
||||
else:
|
||||
parts = before_ref.split(maxsplit=1)
|
||||
sigla = parts[0] if parts else ""
|
||||
descricao = parts[1] if len(parts) > 1 else ""
|
||||
|
||||
intervalo_horas_voo = next((item for item in intervalos if "HORAS DE VOO" in item), "")
|
||||
intervalo_meses_continuos = next((item for item in intervalos if "MESES CONTÍNUOS" in item), "")
|
||||
intervalo_pousos = next((item for item in intervalos if "POUSOS" in item), "")
|
||||
|
||||
return {
|
||||
"seq": seq,
|
||||
"sigla_mnt": sigla,
|
||||
"descricao_mnt": descricao,
|
||||
"referencia": referencia,
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": control_fields["zera_tso"],
|
||||
"letra": control_fields["letra"],
|
||||
"nivel": control_fields["nivel"],
|
||||
"nivel_descricao": control_fields["nivel_descricao"],
|
||||
"var_media": control_fields["var_media"],
|
||||
"duracao": control_fields["duracao"],
|
||||
"duracao_valor": control_fields["duracao_valor"],
|
||||
"duracao_unidade": control_fields["duracao_unidade"],
|
||||
"controle_original": controle,
|
||||
"intervalo_horas_voo": intervalo_horas_voo,
|
||||
"intervalo_horas_voo_valor": interval_number(intervalo_horas_voo),
|
||||
"intervalo_meses_continuos": intervalo_meses_continuos,
|
||||
"intervalo_meses_continuos_valor": interval_number(intervalo_meses_continuos),
|
||||
"intervalo_pousos": intervalo_pousos,
|
||||
"intervalo_pousos_valor": interval_number(intervalo_pousos),
|
||||
"intervalos": intervalos,
|
||||
"linha_original": record,
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
text = extract_text(PDF_PATH)
|
||||
TXT_PATH.write_text(text + "\n", encoding="utf-8")
|
||||
|
||||
payload = {
|
||||
"fonte": str(PDF_PATH.relative_to(ROOT)),
|
||||
"metadados": parse_header(text),
|
||||
"inspecoes": [parse_record(record) for record in split_records(text)],
|
||||
}
|
||||
|
||||
JSON_PATH.write_text(json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
|
||||
fields = [
|
||||
"seq",
|
||||
"sigla_mnt",
|
||||
"descricao_mnt",
|
||||
"referencia",
|
||||
"tipo_vencimento",
|
||||
"zera_tso",
|
||||
"letra",
|
||||
"nivel",
|
||||
"nivel_descricao",
|
||||
"var_media",
|
||||
"duracao",
|
||||
"duracao_valor",
|
||||
"duracao_unidade",
|
||||
"controle_original",
|
||||
"intervalo_horas_voo",
|
||||
"intervalo_horas_voo_valor",
|
||||
"intervalo_meses_continuos",
|
||||
"intervalo_meses_continuos_valor",
|
||||
"intervalo_pousos",
|
||||
"intervalo_pousos_valor",
|
||||
"intervalos",
|
||||
]
|
||||
with CSV_PATH.open("w", newline="", encoding="utf-8-sig") as csv_file:
|
||||
writer = csv.DictWriter(csv_file, fieldnames=fields, delimiter=";")
|
||||
writer.writeheader()
|
||||
for row in payload["inspecoes"]:
|
||||
csv_row = {key: row[key] for key in fields}
|
||||
csv_row["intervalos"] = " | ".join(row["intervalos"])
|
||||
writer.writerow(csv_row)
|
||||
|
||||
print(f"Gerado: {TXT_PATH.relative_to(ROOT)}")
|
||||
print(f"Gerado: {JSON_PATH.relative_to(ROOT)}")
|
||||
print(f"Gerado: {CSV_PATH.relative_to(ROOT)}")
|
||||
print(f"Inspeções extraídas: {len(payload['inspecoes'])}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,19 @@
|
||||
seq;sigla_mnt;descricao_mnt;referencia;tipo_vencimento;zera_tso;letra;nivel;nivel_descricao;var_media;duracao;duracao_valor;duracao_unidade;controle_original;intervalo_horas_voo;intervalo_horas_voo_valor;intervalo_meses_continuos;intervalo_meses_continuos_valor;intervalo_pousos;intervalo_pousos_valor;intervalos
|
||||
2;INSP 1A;INSPEÇÃO CHECK 1A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;3;3 D;3;dias;N A B 3 3 D;300:00 HORAS DE VOO;300;8 MESES CONTÍNUOS;8;;;300:00 HORAS DE VOO | 8 MESES CONTÍNUOS
|
||||
3;INSP 2A;INSPEÇÃO CHECK 2A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;10;4 D;4;dias;N A B 10 4 D;600:00 HORAS DE VOO;600;16 MESES CONTÍNUOS;16;;;600:00 HORAS DE VOO | 16 MESES CONTÍNUOS
|
||||
4;INSP 3A;INSPEÇÃO CHECK 3A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;10;5 D;5;dias;N A B 10 5 D;900:00 HORAS DE VOO;900;24 MESES CONTÍNUOS;24;;;900:00 HORAS DE VOO | 24 MESES CONTÍNUOS
|
||||
5;INSP 2Y;INSPEÇÃO CALENDÁRICA DE 2 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;B;Base;5;5 D;5;dias;N B B 5 5 D;;;24 MESES CONTÍNUOS;24;;;24 MESES CONTÍNUOS
|
||||
6;CHECK 300;CHECK OPERACIONAL DE 300FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;Orgânico;;6 H;6;horas;N A O 6 H;300:00 HORAS DE VOO;300;;;;;300:00 HORAS DE VOO
|
||||
7;CHECK 400;CHECK OPERACIONAL DE 400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;Orgânico;;6 H;6;horas;N A O 6 H;400:00 HORAS DE VOO;400;;;;;400:00 HORAS DE VOO
|
||||
8;1-INSP AOL;INSPEÇÃO AOL 295-019;Última inspeção;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;3800 POUSOS;3800;3800 POUSOS
|
||||
9;2-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 8 1-INSP AOL;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;2000 POUSOS;2000;2000 POUSOS
|
||||
10;3-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 9 2-INSP AOL;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;2000 POUSOS;2000;2000 POUSOS
|
||||
14;INSP 8Y;INSPEÇÃO CALENDÁRICA DE 8 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;Parque;15;20 D;20;dias;N B P 15 20 D;;;96 MESES CONTÍNUOS;96;;;96 MESES CONTÍNUOS
|
||||
15;INSP 1C;INSPEÇÃO CHECK 1C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;Parque;10;65 D;65;dias;N C P 10 65 D;2400:00 HORAS DE VOO;2400;48 MESES CONTÍNUOS;48;;;2400:00 HORAS DE VOO | 48 MESES CONTÍNUOS
|
||||
16;INSP 2C;INSPEÇÃO GERAL CHECK 2C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;Parque;60;10 D;10;dias;N C P 60 10 D;4800:00 HORAS DE VOO;4800;96 MESES CONTÍNUOS;96;;;4800:00 HORAS DE VOO | 96 MESES CONTÍNUOS
|
||||
17;INSP 4Y;INSPEÇÃO CALENDÁRICA DE 4 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;Parque;10;10 D;10;dias;N B P 10 10 D;;;48 MESES CONTÍNUOS;48;;;48 MESES CONTÍNUOS
|
||||
18;INSP 100FH BR01;INSPEÇÃO DE 100 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;Orgânico;;1 H;1;horas;N O 1 H;100:00 HORAS DE VOO;100;;;;;100:00 HORAS DE VOO
|
||||
19;INSP 2400F BR01;INPEÇÃO 2400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;Orgânico;;3 H;3;horas;N O 3 H;2400:00 HORAS DE VOO;2400;;;;;2400:00 HORAS DE VOO
|
||||
20;INSP 3000F BR01;INSPEÇÃO 3000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;3000:00 HORAS DE VOO;3000;;;;;3000:00 HORAS DE VOO
|
||||
22;INSP 1000F;INPEÇÃO 1000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;1000:00 HORAS DE VOO;1000;;;;;1000:00 HORAS DE VOO
|
||||
23;INSP 50FH;INSPEÇÃO 50 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;50:00 HORAS DE VOO;50;;;;;50:00 HORAS DE VOO
|
||||
|
@@ -0,0 +1,489 @@
|
||||
{
|
||||
"fonte": "raw\\relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf",
|
||||
"metadados": {
|
||||
"data_relatorio": "15/06/2026",
|
||||
"hora_relatorio": "13:23:38",
|
||||
"pn": "ANV C-105",
|
||||
"cff": "0117B",
|
||||
"nomenclatura": "AERONAVE, ASA FIXA, CASA 295 (C-105 AMAZONAS)",
|
||||
"sn": "038",
|
||||
"matricula": "2805",
|
||||
"modelo": "C-105",
|
||||
"ciclo_atual": "3650007082"
|
||||
},
|
||||
"inspecoes": [
|
||||
{
|
||||
"seq": 2,
|
||||
"sigla_mnt": "INSP 1A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 1A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "3",
|
||||
"duracao": "3 D",
|
||||
"duracao_valor": 3,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 3 3 D",
|
||||
"intervalo_horas_voo": "300:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 300,
|
||||
"intervalo_meses_continuos": "8 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 8,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"300:00 HORAS DE VOO",
|
||||
"8 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "2 INSP 1A INSPEÇÃO CHECK 1A Especial (a contar dela mesma Término da Anterior N A B 3 3 D 300:00 HORAS DE VÔO - Tipo D) 8 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 3,
|
||||
"sigla_mnt": "INSP 2A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 2A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "10",
|
||||
"duracao": "4 D",
|
||||
"duracao_valor": 4,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 10 4 D",
|
||||
"intervalo_horas_voo": "600:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 600,
|
||||
"intervalo_meses_continuos": "16 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 16,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"600:00 HORAS DE VOO",
|
||||
"16 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "3 INSP 2A INSPEÇÃO CHECK 2A Especial (a contar dela mesma Término da Anterior N A B 10 4 D 600:00 HORAS DE VÔO - Tipo D) 16 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"sigla_mnt": "INSP 3A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 3A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "10",
|
||||
"duracao": "5 D",
|
||||
"duracao_valor": 5,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 10 5 D",
|
||||
"intervalo_horas_voo": "900:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 900,
|
||||
"intervalo_meses_continuos": "24 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 24,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"900:00 HORAS DE VOO",
|
||||
"24 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "4 INSP 3A INSPEÇÃO CHECK 3A Especial (a contar dela mesma Término da Anterior N A B 10 5 D 900:00 HORAS DE VÔO - Tipo D) 24 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"sigla_mnt": "INSP 2Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 2 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "5",
|
||||
"duracao": "5 D",
|
||||
"duracao_valor": 5,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B B 5 5 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "24 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 24,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"24 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "5 INSP 2Y INSPEÇÃO CALENDÁRICA DE 2 YEARS Especial (a contar dela mesma Término da Anterior N B B 5 5 D 24 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 6,
|
||||
"sigla_mnt": "CHECK 300",
|
||||
"descricao_mnt": "CHECK OPERACIONAL DE 300FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "6 H",
|
||||
"duracao_valor": 6,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N A O 6 H",
|
||||
"intervalo_horas_voo": "300:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 300,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"300:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "6 CHECK 300 CHECK OPERACIONAL DE 300FH Especial (a contar dela mesma Término da Anterior N A O 6 H 300:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"sigla_mnt": "CHECK 400",
|
||||
"descricao_mnt": "CHECK OPERACIONAL DE 400FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "6 H",
|
||||
"duracao_valor": 6,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N A O 6 H",
|
||||
"intervalo_horas_voo": "400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 400,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"400:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "7 CHECK 400 CHECK OPERACIONAL DE 400FH Especial (a contar dela mesma Término da Anterior N A O 6 H 400:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 8,
|
||||
"sigla_mnt": "1-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última inspeção",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "3800 POUSOS",
|
||||
"intervalo_pousos_valor": 3800,
|
||||
"intervalos": [
|
||||
"3800 POUSOS"
|
||||
],
|
||||
"linha_original": "8 1-INSP AOL INSPEÇÃO AOL 295-019 Última inspeção Término da Anterior N B 1 D 3800 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 9,
|
||||
"sigla_mnt": "2-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última Inspeção Específica 8 1-INSP AOL",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "2000 POUSOS",
|
||||
"intervalo_pousos_valor": 2000,
|
||||
"intervalos": [
|
||||
"2000 POUSOS"
|
||||
],
|
||||
"linha_original": "9 2-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 8 1-INSP AOL Término da Anterior N B 1 D 2000 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"sigla_mnt": "3-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última Inspeção Específica 9 2-INSP AOL",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "2000 POUSOS",
|
||||
"intervalo_pousos_valor": 2000,
|
||||
"intervalos": [
|
||||
"2000 POUSOS"
|
||||
],
|
||||
"linha_original": "10 3-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 9 2-INSP AOL Término da Anterior N B 1 D 2000 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"sigla_mnt": "INSP 8Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 8 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "15",
|
||||
"duracao": "20 D",
|
||||
"duracao_valor": 20,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B P 15 20 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "96 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 96,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"96 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "14 INSP 8Y INSPEÇÃO CALENDÁRICA DE 8 YEARS Especial (a contar dela mesma Término da Anterior N B P 15 20 D 96 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 15,
|
||||
"sigla_mnt": "INSP 1C",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 1C",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "C",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "10",
|
||||
"duracao": "65 D",
|
||||
"duracao_valor": 65,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N C P 10 65 D",
|
||||
"intervalo_horas_voo": "2400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 2400,
|
||||
"intervalo_meses_continuos": "48 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 48,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"2400:00 HORAS DE VOO",
|
||||
"48 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "15 INSP 1C INSPEÇÃO CHECK 1C Especial (a contar dela mesma Término da Anterior N C P 10 65 D 2400:00 HORAS DE VÔO - Tipo D) 48 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"sigla_mnt": "INSP 2C",
|
||||
"descricao_mnt": "INSPEÇÃO GERAL CHECK 2C",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "C",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "60",
|
||||
"duracao": "10 D",
|
||||
"duracao_valor": 10,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N C P 60 10 D",
|
||||
"intervalo_horas_voo": "4800:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 4800,
|
||||
"intervalo_meses_continuos": "96 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 96,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"4800:00 HORAS DE VOO",
|
||||
"96 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "16 INSP 2C INSPEÇÃO GERAL CHECK 2C Especial (a contar dela mesma Término da Anterior N C P 60 10 D 4800:00 HORAS DE VÔO - Tipo D) 96 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"sigla_mnt": "INSP 4Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 4 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "10",
|
||||
"duracao": "10 D",
|
||||
"duracao_valor": 10,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B P 10 10 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "48 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 48,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"48 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "17 INSP 4Y INSPEÇÃO CALENDÁRICA DE 4 YEARS Especial (a contar dela mesma Término da Anterior N B P 10 10 D 48 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 18,
|
||||
"sigla_mnt": "INSP 100FH BR01",
|
||||
"descricao_mnt": "INSPEÇÃO DE 100 FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "1 H",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N O 1 H",
|
||||
"intervalo_horas_voo": "100:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 100,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"100:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "18 INSP 100FH BR01 INSPEÇÃO DE 100 FH Especial (a contar dela mesma Término da Anterior N O 1 H 100:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 19,
|
||||
"sigla_mnt": "INSP 2400F BR01",
|
||||
"descricao_mnt": "INPEÇÃO 2400FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "3 H",
|
||||
"duracao_valor": 3,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N O 3 H",
|
||||
"intervalo_horas_voo": "2400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 2400,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"2400:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "19 INSP 2400F BR01 INPEÇÃO 2400FH Especial (a contar dela mesma Término da Anterior N O 3 H 2400:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 20,
|
||||
"sigla_mnt": "INSP 3000F BR01",
|
||||
"descricao_mnt": "INSPEÇÃO 3000FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "3000:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 3000,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"3000:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "20 INSP 3000F BR01 INSPEÇÃO 3000FH Especial (a contar dela mesma Término da Anterior N B 1 D 3000:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 22,
|
||||
"sigla_mnt": "INSP 1000F",
|
||||
"descricao_mnt": "INPEÇÃO 1000FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "1000:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 1000,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"1000:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "22 INSP 1000F INPEÇÃO 1000FH Especial (a contar dela mesma Término da Anterior N B 1 D 1000:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"sigla_mnt": "INSP 50FH",
|
||||
"descricao_mnt": "INSPEÇÃO 50 FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "50:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 50,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"50:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "23 INSP 50FH INSPEÇÃO 50 FH Especial (a contar dela mesma Término da Anterior N B 1 D 50:00 HORAS DE VÔO - Tipo D)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
SISTEMA INTEGRADO DE LOGÍSTICA DE MATERIAL E DE SERVIÇOS Pág.: 1 de 1
|
||||
BASE AÉREA DE MANAUS Data: 15/06/2026
|
||||
Hora: 13:23:38
|
||||
RELATÓRIO DE CICLO DE INSPEÇÕES DO EQUIPAMENTO
|
||||
CTR0142R v.10.5
|
||||
PN: ANV C-105 CFF: 0117B Nomenclatura: AERONAVE, ASA FIXA, CASA 295 (C-105 AMAZONAS)
|
||||
SN: 038 Matrícula: 2805 Modelo: C-105 Ciclo Atual: 3650007082
|
||||
Seq. Sigla da MNT Descrição da MNT Referência Referência Tipo"E" Vencimento Zera TSO Letra Nível Var. Média Duração Intervalo Controle
|
||||
2 INSP 1A INSPEÇÃO CHECK 1A Especial (a contar dela mesma Término da Anterior N A B 3 3 D 300:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
8 MESES CONTÍNUOS
|
||||
3 INSP 2A INSPEÇÃO CHECK 2A Especial (a contar dela mesma Término da Anterior N A B 10 4 D 600:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
16 MESES CONTÍNUOS
|
||||
4 INSP 3A INSPEÇÃO CHECK 3A Especial (a contar dela mesma Término da Anterior N A B 10 5 D 900:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
24 MESES CONTÍNUOS
|
||||
5 INSP 2Y INSPEÇÃO CALENDÁRICA DE 2 YEARS Especial (a contar dela mesma Término da Anterior N B B 5 5 D 24 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
6 CHECK 300 CHECK OPERACIONAL DE 300FH Especial (a contar dela mesma Término da Anterior N A O 6 H 300:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
7 CHECK 400 CHECK OPERACIONAL DE 400FH Especial (a contar dela mesma Término da Anterior N A O 6 H 400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
8 1-INSP AOL INSPEÇÃO AOL 295-019 Última inspeção Término da Anterior N B 1 D 3800 POUSOS
|
||||
9 2-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 8 1-INSP AOL Término da Anterior N B 1 D 2000 POUSOS
|
||||
10 3-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 9 2-INSP AOL Término da Anterior N B 1 D 2000 POUSOS
|
||||
14 INSP 8Y INSPEÇÃO CALENDÁRICA DE 8 YEARS Especial (a contar dela mesma Término da Anterior N B P 15 20 D 96 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
15 INSP 1C INSPEÇÃO CHECK 1C Especial (a contar dela mesma Término da Anterior N C P 10 65 D 2400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
48 MESES CONTÍNUOS
|
||||
16 INSP 2C INSPEÇÃO GERAL CHECK 2C Especial (a contar dela mesma Término da Anterior N C P 60 10 D 4800:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
96 MESES CONTÍNUOS
|
||||
17 INSP 4Y INSPEÇÃO CALENDÁRICA DE 4 YEARS Especial (a contar dela mesma Término da Anterior N B P 10 10 D 48 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
18 INSP 100FH BR01 INSPEÇÃO DE 100 FH Especial (a contar dela mesma Término da Anterior N O 1 H 100:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
19 INSP 2400F BR01 INPEÇÃO 2400FH Especial (a contar dela mesma Término da Anterior N O 3 H 2400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
20 INSP 3000F BR01 INSPEÇÃO 3000FH Especial (a contar dela mesma Término da Anterior N B 1 D 3000:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
22 INSP 1000F INPEÇÃO 1000FH Especial (a contar dela mesma Término da Anterior N B 1 D 1000:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
23 INSP 50FH INSPEÇÃO 50 FH Especial (a contar dela mesma Término da Anterior N B 1 D 50:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
1
db/processed/.gitkeep
Normal file
1
db/processed/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
BIN
db/raw/ESCALA DE MISSÕES 2024.xlsx
Normal file
BIN
db/raw/ESCALA DE MISSÕES 2024.xlsx
Normal file
Binary file not shown.
BIN
db/raw/ICA 66-31 2023.pdf
Normal file
BIN
db/raw/ICA 66-31 2023.pdf
Normal file
Binary file not shown.
483
db/raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf
Normal file
483
db/raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf
Normal file
@@ -0,0 +1,483 @@
|
||||
%PDF-1.4
|
||||
1 0 obj
|
||||
<<
|
||||
/Creator (Oracle11gR1 AS Reports Services)
|
||||
/CreationDate (D:20260615132342)
|
||||
/ModDate (D:20260615132342)
|
||||
/Producer (Oracle PDF driver)
|
||||
/Title ()
|
||||
/Author (Oracle Reports)
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<</Length 6 0 R
|
||||
/Filter [/ASCII85Decode /FlateDecode]
|
||||
>>
|
||||
stream
|
||||
Gb!Sn962&m&\d:,9_h)SN7GRbQa\9NPRs#YKnYoHE=Q1uUk/ss9ScSq?Rc:\%R/RVjHdq3j](J/
|
||||
UjH_IJ\g[cP%hnWJL,//:J^`:O6IMjM^Tm$)Gp!/q"o7(LHcDDD?_TM#uQ:CM'T@U&XPoWLaHZE
|
||||
+N<8V^iU2\8sH38cpUbH`LJW:Z[h([jE>Jt*sbM90N1V"592jHUP)KLE;jlsFHRA!ao4?E1NJqJ
|
||||
MenQi-pB$MD[6)cn/Sf["b0<FN`IkaT].40gra%W3Qt/88qs>O6a\Ib`Gt^7=4+;3;?B9`a)lF0
|
||||
Y]Gr.acOV8-YD;D]J&X\St_oG*jO)?l3Z!:39Al`1@bd;QSd]PNDNKpLnZ:2('#c`c-+uQmYHP"
|
||||
"K\AY^,+_o9qEofN1=e,F$s3Y.+M_<NYEV,J2k,u1a%K#E@MCNJ5R"F],2@Ur$!BGaZP&6b>+r@
|
||||
qYBdJpVhMBEZUV2ZZ1.`Er7EXg"#lR1uOM.JX.c`S1&(_:3`!KKQ0tmEIPm%N5GJ5M.8/u71p6Z
|
||||
FGfK_;FV(I910*B$SF'5\Ib8d@.#R1cfRI9`l?6MG][j&1S,;Iq7FE'"TeMlk:aiAfgS)m:\V8)
|
||||
*GGOOJ8#UnA518aKH9i*"^.N1#5bqX1"[N4egM0XJK.Olj7%o2+LLNXjA-p'Wc?D$IH*:raqX\Q
|
||||
.>B#)8,9L9f#=_V(gfX\XFX\ZCnpfb1<F1iD$4f,)rrDJ`%@s8l(qmB2[H6nVd\VF<,T4iU`iO\
|
||||
I@*L@URDlXP!NF)U9_;'l6%qo;Nj"=+g+@14fZbS7YAoY"sl&?<13!DI4VH@9>]aH8EMa&k$bQo
|
||||
6MPG[RQ/5P+UM+)pkX,mdkN\UOu@b?(3`W[#]m<Y80-=Hf()#e'k(5V,W!I=1#@kG^3O&hboJsj
|
||||
7pclp_\h'(feLX(7WLCM%n6Qf)RaW1qIc;6,cn?VC"-Xo5Lom-p;s-&lrj':#:.U+LB5B.@FdZE
|
||||
WhiGR\KJ/^V\E=m`EpLq%_h&*<Cq(#E\WseK+PI0-rE,nR(rOAPZ[t[KO]q@-SSb04X"RNZL`Ha
|
||||
qWF:$8NHSrcXoUAE)&(X=Z.0o-a;FD"OZJM+M6u_\BtQ`PjhW].J)kt4HttWUdP`PU^)j):?Ag$
|
||||
G*&0].H#/O\ZS#"6@-]o4\fBXC_d%`LjIJMZ/`6n]\=151/4'Wq96.K4r,M8eS:M"K/A1o];kO#
|
||||
m(jKE_Gr/'KKEJP^>:LBp!6?>d`GU[-9n#CiQMR?<LEM+BQEeh<J*lK7m]2$_Ei7k@#B-uAckc3
|
||||
icpjA/4!+Y(\cZ>N+=ECS*N?1j?[m8I1J\cq>o*0?u#R<g;A7TP^=:tf;J0\#p4$'5ud1G,cT*l
|
||||
i;"'+Eo6I'9@39opMUkKT]bh^"D>=VceIT!-ud"GHV&kb33pl4g-X4)s4M0n>@!=DgU5eL9,a%Z
|
||||
4m=tknC5.\aX^HuXUV%I<Gj%%n^G`<S0SFE@rc]W78AJmb<<Ge>]oNpFG-];hB:ba>g\?+"LbX%
|
||||
lQi`*V`XOEn/G074/5rib6CEtN33E(T!Dej`.?J[9Xg,c*MBRi5p>cu_iGKkWiGLSl-6Yibpe#h
|
||||
`/M64@7'4`li-uoUSDce3:<.nXQ[%oFDHmsQ+,ncPMWM^W83jG-b2U4$q>alf<Q;J1pVL6AM`Dm
|
||||
p<B[lL<m/qmL@P!!H#O+*0p1L1sPPgp>@C3!!UDecUr=V[p#.0%VoSarNL1?[hmc*H]5APZmSf&
|
||||
,;tidgB?&,DnjcLe6FVL`:E]sI^+<*Xod!eeCqZQ8o8=].6;iNZr!Xfg@+;r8AmuiE#(R*cE[N+
|
||||
frH3=2Tj_[(O;,ZA2Kk$^Rr0+(;V^$R6p+)6M/)\H?a26FY.\p_r^MZd/c[TLd!Z]kG\@D4nWMS
|
||||
rWO-4R[SV;RWkdZ/3co\Sm\.M2RiG8c"_63RT@k:1l\=cf5"*L<Xi!HTp.7e;2`>/PVks'nS$D2
|
||||
W;=f.KA,.b`M)<4))>'\*pt:U0sEK#K3A[tCVh!M[OlYBG#pWQGf%+6FD$&SB[3@Za$.e`s.Ol(
|
||||
dFmO@@f,WKlVM@6L*,O)(:ZKgjrSrK8lgk)X(;5+]*5:G,2XB*j;Qf\DTU.4<Kd%7ot"rC?]60`
|
||||
p4d+lr,+ks^\POuIT?.%O"!nSW'J<D=^[kVkp'F1Mokknl@-8ramp5.<Xkm44WVl$nIVJ5qj5Ll
|
||||
10>n7B)bjUrp(*Ko`%bEs(5#o%9@0!\fK6,J"$%&I*E9fr@ahVY8=\B#<0Mb]R"5NjqmIA&heqm
|
||||
=)3Y5hV)-)lc$:Xo:g+:UnG421a9aIk3j5=]&?q)rmQ&(]JUM')7K7^br0f;J!c9=aENHQVEapq
|
||||
I!)-0R#aG.]E@hRCk)B7E.0XXK\K-;iSN]:9nI?[<.5s.UVKAulO`QboMFD;g^g[W&ZdsJ3g;J?
|
||||
ra)D;h:lD@8ZGsX9s2QNaJaHeOi2K*TWYjI;9!'lM_1aC?RtX:`,/+5.nXML'AesmSsh`FKs.$q
|
||||
iA#d8o)boAVPbjY7(gSUFZHSs)4d<=moSs>GKJkJZNQ>[^0mVNIafP8EY8qAPusHpB%4JIn\LpD
|
||||
,GMf$K_8/[Hj`C5715dQX!!h;4H6k:%Mp):'K8>L"Qrero>?d=k1PqG]]Lq%idB]IEBa"?F*p_1
|
||||
/%$,2B\mf%Ck#IR:qOBt^;#-'._?\<C[lq'5]PtSYk0.#(]Ygn``VPGI%e";Dui&+me$9b"0KB3
|
||||
Wk<hf%;W*h=Rd8s<B[3&eMT5Qp,[:;/[&4pP23l%=5iA+p_8YT\?$EO:#;:kCJl\+B@BFqQ%)**
|
||||
+sUa\he-;X&cS,p$@46ZO(9'[f>(Cr(((D6`7TW!RFcjZX/SVql$T)^m[FOQ?DuL<H\V2UkrDS0
|
||||
?LG/t1K%Z.ELoo_[QrIOR<NC4e*>GdloVTS!3#pF4TGH^~>
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
2935
|
||||
endobj
|
||||
7 0 obj
|
||||
<</Type /Font
|
||||
/Name /F0
|
||||
/Subtype /Type1
|
||||
/Encoding /WinAnsiEncoding
|
||||
/BaseFont /#43#6F#75#72#69#65#72#2D#42#6F#6C#64
|
||||
>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<</Type /Font
|
||||
/Name /F1
|
||||
/Subtype /Type1
|
||||
/Encoding /WinAnsiEncoding
|
||||
/BaseFont /#43#6F#75#72#69#65#72
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</Type /Font
|
||||
/Name /F2
|
||||
/Subtype /Type1
|
||||
/Encoding /WinAnsiEncoding
|
||||
/BaseFont /#69#74#63#61#76#61#6E#74#67#61#72#64#65#67#6F#74#68#69#63
|
||||
/FirstChar 24
|
||||
/LastChar 255
|
||||
/Widths 10 0 R
|
||||
/FontDescriptor 11 0 R
|
||||
>>
|
||||
endobj
|
||||
10 0 obj
|
||||
[1000 1000 1000 1000 1000 1000 1000 1000 250 250
|
||||
250 500 500 750 750 375 375 375 375 625
|
||||
250 625 250 125 500 500 500 500 500 500
|
||||
500 500 500 500 250 250 625 625 625 625
|
||||
875 750 625 875 750 500 500 875 625 250
|
||||
500 625 500 875 750 875 625 875 625 500
|
||||
375 625 750 1000 625 625 500 375 625 375
|
||||
625 500 375 625 625 625 625 625 375 625
|
||||
625 250 250 500 250 1000 625 625 625 625
|
||||
250 375 375 625 500 875 500 500 375 375
|
||||
625 375 625 1000 1000 1000 1000 1000 1000 1000
|
||||
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
|
||||
250 375 1000 500 500 1000 500 250 1000 1000
|
||||
375 1000 1000 500 250 500 1000 250 500 500
|
||||
500 500 625 625 375 750 375 375 625 250
|
||||
750 500 375 625 375 375 375 625 625 625
|
||||
375 375 375 375 875 875 875 625 750 750
|
||||
750 750 750 750 1000 875 500 500 500 500
|
||||
250 250 250 250 750 750 875 875 875 875
|
||||
875 625 875 625 625 625 625 625 625 500
|
||||
625 625 625 625 625 625 1125 625 625 625
|
||||
625 625 250 250 250 250 625 625 625 625
|
||||
625 625 625 625 625 625 625 625 625 500
|
||||
625 500 ]
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Type /FontDescriptor
|
||||
/FontName /#69#74#63#61#76#61#6E#74#67#61#72#64#65#67#6F#74#68#69#63
|
||||
/Ascent 1000
|
||||
/CapHeight 1000
|
||||
/Descent -250
|
||||
/Flags 32
|
||||
/FontBBox [0 0 0 0]
|
||||
/ItalicAngle 0
|
||||
/StemV 0
|
||||
/AvgWidth 625
|
||||
/MaxWidth 1250
|
||||
>>
|
||||
endobj
|
||||
12 0 obj
|
||||
<<
|
||||
/Type /XObject
|
||||
/Subtype /Image
|
||||
/Name /im1
|
||||
/Width 105
|
||||
/Height 129
|
||||
/BitsPerComponent 8
|
||||
/ColorSpace /DeviceRGB
|
||||
/Filter [/ASCII85Decode /DCTDecode]
|
||||
/Length 13 0 R
|
||||
>>
|
||||
stream
|
||||
s4IA0!"_al8O`[\!<<*#!!*'"s4[N@!!**$!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%
|
||||
!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!WUmS6NI2g!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%
|
||||
!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<E3%!<N59!"fJ:JH0Bd!?qLF&HMtG!WU(<
|
||||
*rl9A"T\W)!<E3$z!!!!"!WrQ/"pYD?$4HmP!4<@<!W`B*!X&T/"U"r.!!.KK!WrE*&Hrdj0gQ!W
|
||||
;.0\RE>10ZOeE%*6F"?A;UOtZ1LbBV#mqFa(`=5<-7:2j.Ps"@2`NfY6UX@47n?3D;cHat='/U/
|
||||
@q9._B4u!oF*)PJGBeCZK7nr5LPUeEP*;,qQC!u,R\HRQV5C/hWN*81['d?O\@K2f_o0O6a2lBF
|
||||
daQ^rf%8R-g>V&OjQ5OekiqC&o(2MHp@n@XqZ"J6*ru?D!<E3%!<E3%!<<*"!!!!"!WrQ/"pYD?
|
||||
$4HmP!4<C=!W`?*"9Sc3"U"r.!<RHF!<N?8"9fr'"qj4!#@VTc+u4]T'LIqUZ,$_k1K*]W@WKj'
|
||||
(*k`q-1Mcg)&ahL-n-W'2E*TU3^Z;(7Rp!@8lJ\h<``C+>%;)SAnPdkC3+K>G'A1VH@gd&KnbA=
|
||||
M2II[Pa.Q$R$jD;USO``Vl6SpZEppG[^WcW]#)A'`Q#s>ai`&\eCE.%f\,!<j5f=akNM0qo(2MH
|
||||
p@n@XqZ#7L$j-M1!YGMH!'^JUJ(^Uj<;hgCrr?LMfPAHpa6[%-,'_/I5!8e/IKoS*`L\CGO6l9'
|
||||
ZX3/+^#BFWKRXO*/Q5s*op`,oIq\,Y`j;W/\$u4JVl<qWhWbo`8Tf#7cRc@nl+c`5?a4hR(bb57
|
||||
rr@kin>$!`RG-l>B@$B-+8@3brL*,iJ,N:&$`j+mrL1+,DD0Y7iV'>ArrBoB#k8.\`f#<"27JMr
|
||||
@#%7cSc!o96[!TVjD/P-8@6CKQ53]$F$*8g"G$;DnGX)?DhZ^?O*hner)_j`j8LIQpkQhRR:<F+
|
||||
?c<mX.hRQqmh3.N0>YMiE&DXBX&c'`i:%V5'+7SBLP2YSO#:6l.Xj1nH,kcs7H<hYn37BWRucKD
|
||||
K8/qL$HM)/fKL>!1TGGdA\pP]M8`AH$IpgfU8qcY\?'76Y7k5[XPGj5C3PI)1&h4^jnfjDd=VA8
|
||||
J,"s%!"(sdSYQ0%bP!Rg!2B_rLAq8D(]G+uo/g=,?gYn0fRLdd=mB<SphQWpnMe_^]uTiUJ@&P8
|
||||
rr<OR+'b.6did7TT>[tf^aq<Z9#aMp"tOOkk'Lmg?N1"#JchrW=kRO=pfjW[\(\is@AN.2ZeoM$
|
||||
V<,.XVqG9DdbJ-bhFs7/[a7Em]TZ,RM&^3%ZTA-f-GQ@(2t0o4q8^-(N8cBiKm6oF=aiE?',cP,
|
||||
`Va/&V1s[D[kH!3C:MJW5:_[l0Y)m%X=muGd&BdA-!F3#73B=X<UgaCD[grl"2bt*(%Z;fSn"&D
|
||||
ZRdDK=Un;qib'fK2]7.#&m9TrAl=V<Dh4+K'o8+?;l`Msc456"PCLJ1I`:4:@)&r'rZ_@B_N4\/
|
||||
B`A'eErCp2keVaW^\gP#!/2NmcI__2n?Y[\<Vnmmrr</9B&=3:U#1+X`a0_<YO8SHX_]UPm=$1h
|
||||
VPGTOSgAKeeMS;::IsujI?Ip>P.%TM\jfd!5Q.P[%pf)Ept+OJ"e.HYd&+L+&9p*<3J-_:>1D$I
|
||||
V&O\*N\`B<SM%9"[gGuT/LL0:Gu?@JT0)$+LAq6D:-7Gt`up_%ZuUY-7h^d%Yr0&'N@Rd`_dRNl
|
||||
Psm/>S5*?^L+-#aPd'p&AoC9YS-FCnQ7(EtGil`4`4Yj/!TDW<AR%e(?H6]"WJSK'ge!%6A@W-c
|
||||
_c`im/u+K&L9$-)naj]HI,'VnM8J@kd_o]6Ps^`p_Spn2rr<Jhq\Ob0K)WZ;pl#.P$:"?WU]).S
|
||||
p+H@FUBUUNrrDR*rY0kR4(#Cfn4N($9[ru9nVCp`FbZP4d!R$G(Y4oH@O!4nY&?%Oj-.Y>YrD'i
|
||||
mAlcE)#(f!oAM$SqaUK:n2H6=)H^0/iZAR+=Hh_+UB[!#Vahc+f">E-_p*Te-kWQA&#T,jb='(R
|
||||
P$+MM[#(]n\4*a6>O,WPM"i4YkJFlYNo<+`_?putCqCL9_d^-9Nu.?C0"!ZJZ>?9mQ6G>!<E_!l
|
||||
HC;GrFf?qFiZ810Nm0"NW=1*u%hDTnZ%#:S/F^[da-eT>H&a+0a'eL$Ae0QmODsjtLlPK+j)UU\
|
||||
l/sqo<83Z$jmp@,:F]>0._ZQKWDXAI;oHlTf`(r+ErCp2keVaW^\gP#!/2NmcI)Xl%-@@&J'ilI
|
||||
_ghH>rr<Bjq44_TgV>j__i6lXeNOUZ)E*G$^Bm"SnG`JZ^UUf&X=(c7I8`egNJ3CgI_cF^n7Z!3
|
||||
OfLU+%k:-CLr.1<5oBT)[F@aT]j`tK@u`]R:e9V8#`+=]19)Os$EC*-Wi,q`!!!1K^(ts#i"q5P
|
||||
]ZUf_*5Z75^sg6ESOi:k(Zoii<P[`s1;%KH&P?'ofO=&RnPl"mkZ>dOXQ*1,Wp+jk[Ci+K\<k5H
|
||||
$*[PJ0E*1kA],5,/(^IqS2bF6b:2C]7h(3k_Gk;ljtanBU8o]M<fRNh04u>P>k=piO,ne.3I\s)
|
||||
oO,G<hu4i"!5afrB5%;FL3!6N^Z`L`@DD_/rr@`pr6EpeLTG_Fi@g%:#P]D"rrA'1]KN(EHr0=I
|
||||
L3sT.>r@V4S\t5olbZP8\i?q*7CO_G_'XdeTr#cXVqX':4*r7e962'cr9<],i:Z9Mhq:ZrL%%Tl
|
||||
ZqVTK'DPbsishfqK%WS6*TS=3JSFkI<iMtQ?.qYhp,D\$g>D/c9,5,(%.T0^Jp!5%r7_I1qE3bX
|
||||
/.Q;W")nr14N>*:/1+-i8`JF7R:\Z/c*Nl6n#\Q9YI2/qA^eLr_lNs6<i/'6WFO\\MPj,?$tfqB
|
||||
rr@f"B9uQegGHi[1bu/]'oL;3_3mDl)`>gDfiAlK;-*n*Z[u>6%)q6\fXHl@<BLa@2)$I?2(O/@
|
||||
4otVHIpsK7Gc+<`YQ"T1YLo-K>K"3fQI#86pdUIB>?KZd-IXo-kDp%u"^kgfCE*mNYOacXoe?.u
|
||||
rr=>Y6N7%gHFNmAn*BnXlV8tgIM_MBa"B4-SdijhP@RJ,577"Cm+C@i/9M6\GlAoWEs[fF60<F9
|
||||
D-D(%3,GoSUK`nW@lWEqhD^/7A&+*\idO#ZUCWr9DJ`H9c)G^?(1hUXfSVXl23n=RO`3K3%u,R5
|
||||
Tne<#d]\\Me:Wus,qAN\XO:J?D>QMHaajBk_)f?tc[Gur!:#mF?!jgC$@clAftU2YRX@!^#NFWm
|
||||
IO06-daq1'YjjTRM.NMLV.p#*Wq4/P@ae;cn_],pUe%:s)'+iUSY_'3=@mC7c2<%hT)L/;cef1]
|
||||
?m#.k?i2Qa'\mqKqePmgp^dB)#e,qlGdgZLDt\CkDh[*'S%mntd<1Kpm,)a02Z:8SrbnBWbNF.p
|
||||
*`lAA!"DHu!!N9#!2?<>rr@_=`P;C]lf>\_nL#ZEJUAQV3QH^N!(m/BNt1\=MKNTP08?&1B7*:f
|
||||
R>]<P:u`O<=QPtM)-"H70uBs[^uN+n36MVs@558@9:gi1Y7`rLnL]")`k66+r*/+a?\@@NO+_QM
|
||||
fj>Y;,Ud7:_VfZ'LN"!%N6:77R\B-7i+c5eV,jC-i2]bT.&C"25H%p)^MOL4kOs,L5A0urJA2Qk
|
||||
A"dS)V4H2&&b1;!&__JQ_Y_7Zi[mWH7iiuHG-A&S?es&-,]R1+<Y4ND>t&^qh-4)9R/[.CI`Pk2
|
||||
^(Yl-pmWqTIu5.?M`&,+)bIQKn9(@WoXu>D(:qM_YA&?a?T,$ik_g,.Bhre_@iQ]]b`bqniJkL9
|
||||
<p_Q_TCC?[n5%s<.TcWMpdoj;rrD16O8*HSpa>P/'eB:ar$9!.rrDX,?ajHk>N*dQ:S6_?^5]m%
|
||||
QFNB\)Hk?s56:PFH*/cc(;%L`_bUuu,d?m29NnP*P\2Jma5^T+D,so6RH(ptnXhPq4rWEc:EBBU
|
||||
ID6%a=FM=7..LjU)(o23e!2smUR0EPTVGD;<%;>3C8fLN%ghU_(f6/5l;rjmi2N=`7u6iSi4fKo
|
||||
4`:Uc;Y0l"[dcP8i^NALdCf5QcT9_,]R"\IWVrH%gA\s<bNEg75YM3prn1YcpVBYZ=2Nf&]^Y*=
|
||||
r,nZ[8+<Y1Lt<QZQ/TQRgut37\j!Bp9<-Y>K'-+Fq[TH>Blg#p/t!,?NN)?Q[$+CL`VJQo!"DHu
|
||||
!!N9#!2?<>rr@_=`P;C]kl1X;U]1=GIfBDq;SW53_FrnGrr=crQ64(0'#<Q&Iko3]N.4PQ[iNB:
|
||||
.Fk,J_>"DVn>hVL#goP1k#86/Z`<O4G[`A:V1t9K31MU0O.fQG'k""aAf_]^q4)#$8!<%A-hnLJ
|
||||
AXlCfd_t*#%PseVQ3&P<9LUW$V,&\>ok@k)&tt-!9!?ed)Yb9e8A8gokPLbB,5nB$"oC5o57hrJ
|
||||
*GKsReD]puR@m\sbMcY7-N7,DddFM'mMbV<?#rD)j(,fY6=G4qAe#h+!D@bUm,@hdGW4S6^[\2U
|
||||
`VM6G[3#PHlf(]r4sB\]1`\59Rp4>/]L/Z(^8#VK6[PtMYV<]<@aPO@I7j#\DX;9$Lg3Aok=,2b
|
||||
rr<Kurr<3#rrAdiJ,]M%Qc6`=@d*glL84bKJq!_"d8IaZ!5_Cghu<[2FD"o/n?.,,B6hKYkgB%Q
|
||||
=R>m/$FmXnn/I3m$8ll%2ID'4;[Z>mUgWIqo'0>'b-/:,NEYqO)HEV/XXN/c$%-gQI'\R5S>X;4
|
||||
!GUK%=8Q97d&Y0+W@H9?Yo)7s16stN;2`@kN[Gc,oFt:Q:8KL)guD,KJ#NAIZ^:(@i@b6,X5e\h
|
||||
4tUJT1t;2jMV]r5r'Os1Kl$CP>2)WQe"G5C/[T_k>O`Je3a6;V(HR#5V5c,fqA#/ENuK2Nq2;7Y
|
||||
7sh6#2mETiY4&O]UKIYT(-@G2,s^Ele2UM1K"EFIJBU#1^Yu-k!8sKaoMi$o!:Z0H\,QHP>p&Rc
|
||||
J+-7kqC5SH!;K-5>Q4]c0"h`/nWS]P0,okiA3WO*VIg_*k^?\#eN<omHFR3;#?j"@/2TBI35sC+
|
||||
?0]t@,aG+PDZ2R2p_2[P*9ESh=2]P5p`5<kPi=Eb\i?)I]fK9>7OK3(4AC37AX9jWSOp@bh5<tR
|
||||
:"ecLdXTt4p<E(c`;]ghrr<D=&b,A;a1;M8rZ1d?^qM3kDcO$hFSd"mY6ao->LGskPC'2%O&Wjj
|
||||
Cc]!&Q/.'c@;`eY1.rmSb)$OupT4Ap_+Qs.pqPbT^YsYSpd<)f*^&s?J2R?,%dG.h3d6AJ4>.bj
|
||||
Wp"Z<>2<B>?$Msa;dCkWRH(kiP=]Pj3+RAY>NUKL\GTY4!/@9K!.o\"!7=]ZrrBo/insb90m%o_
|
||||
;?$X45C_mr?iL,b-1PpR!1:@nGk&6E_^!:o#^mRSRh3EsQtlCI*GG3[`/>L3#@9B7]IkhO/[7.2
|
||||
rEW&)l;RDdBi`2FNCZ0<,MIRI3$7Ao%-p"$(PuH!4ALB!#7Q&&>[7YD<D3g@&>P*!d!->qfSMs/
|
||||
;Ab8>W1f'$0^?:uokZ^dl2L_f^Z;,&?hM`GrrCM2rI:,]J#SdNYE%MG(QJD;kaidh;rc'7DoXfA
|
||||
C9hP7Cq^tcKjbtk>%oq)>*Chp^Yt_F9973D@_8!6milCX_EoN9OuE=?/DBlhl]6PT,5C9?=mu3N
|
||||
i\pl7%h1WLb<N7Z:Z2/#"Ruq>X77!aplFe^5#I]iFmETrrjV5Jf_EYC<lJKeZm5%uVLF6X-\hH+
|
||||
L#*[)pj5$Gph)Y,@^t$Io6=a>=#X:5>8e?KRt@l+Ti2`*@FR#nWI_*2Zoso>V,E!BT=)!(l+T1X
|
||||
!6Kck!5TsGm*C%]rrB''p3j-!C[Q,$J+?u3n4?FQ1Z&34!:#mKT53DSrn.&KrrC1kpjN/BAJ^:i
|
||||
qYL+Y3kSSp!0Ze.rrB8E)ufoh?R?,h@s@Vc\8K%*Bm?nL&mF0X/hLrbQ8XV6Ak]"X,`1>Tin@U`
|
||||
b?52.=P[0;6NtD./,-OP#m(&+"KAg-WNTCsLAde;Mtm8Opj5nS?O6F!;feiq`Z9NJ8RoJ[mk*\2
|
||||
^5'Lq*kI2FodT66-h.\L-./iuA%0oEW8IGuN4>W-i=(>XS8e^NB7Z!fLQ)RTM9"5M$*&4i,sH!'
|
||||
R#:-'es%COS8)-+;O&/#.RW06(d(PT'i'Jr4OmZu;Kks8(pr+&P-gH^(MgIMgPfU<.7Pu\e&)+b
|
||||
$haN"NB6"F^'=?G`uZc$C""_XSPS5-LU::C'j]JEkrMhX`iH(`HM^M87]38#PA1]eRk5RXe"P@b
|
||||
\F9>WiO`r.a1B4@>/]=H8,O%prWmZ9_Umb,RIU%FnrHgeNF0S!ig@FdC>,Na!5lJ`iTGu^%7^#u
|
||||
O,Eo[drgX/`+N3k37Bb<]KWofKC/RIjPT3N22>DLHegVHrN5Tka5;[P!4*]gHm8>cq]^L;?7aO;
|
||||
0kXo-l(>;cm+ZSqnFK>6>6^PEcUmXR\Ne"#!p``SCBQ?H^P0(4C'tuK@Bn="/[&(3#X9=oi2D,I
|
||||
5A2.n$fT-ZrXSiSrK=qRTRICGHR77JXF+$rY(('PLcS=f4A4Zs4`o`B%3"34(q&6.pkuq6-D360
|
||||
?c78<^*1"oeTLXL+ff:]b9hjWX$urON:C\BGe.!P(s-N&\5O]U3YTHoYfo>?ppUKnE`L%VG`5?G
|
||||
@'S5G=2V*r0Goa@UR5Pk;mn>Ca3,3(Z1dh\9EkZ#``MkYlqA(3_n'2U^s9:IL[OE@H?C.)Wk+=i
|
||||
j[L]/e&,&V8dk'VNB@+FB;q<u(WdKk'?);Z:H%cK>0ZPP9>*%G=H%3H9sU)1mS.7\^c0rZ>2&78
|
||||
Y09<-dMT_QrrCuQrrDOU4TiJ@$LpX,T@h.J&C%-JAd-aJ>PgYBggBiJl44D/_(!qmc\?lle1PY:
|
||||
8#XV+`=*ZMkCWV#2S#i&<faB>k^FfS?'^Q0rCca?>5adO0])fS)E5Q<+8@58m3cK8?Uq\_`A_*b
|
||||
L\?&mU1U^Ce90#*dnK99Q(tJ;RCQ%<*t.=>'=khoAcps?YAASn#(raT?B5V4)UIeHr"ET6T_RjM
|
||||
1&Mj&pabm$p,DrbHr6[&](?e'#N`5c"n=[n4t"f9/QU+0;XdJ>F[$^Gpc$%C*g`PcG/:g7IA1Hl
|
||||
*ZpS7eYJO9e%@2NVqjpkiFP%,'l^9;<t]K?1QL\LauI!naKmK?j!sk21BYR@2HO)iYe3neQ<Tkk
|
||||
&>bTRQs<m3@4PEQ:E>f!4N]XB<YhQ<2i?t?iG]XS9+-V[<9&eXYh6Nh]XerK2/lR\`bqXT\(5M_
|
||||
)oQ/t*a4Yaj[QF2-VcO!?et_^.sh3qJ8Y>qlGlNl_;Lq$Btcd?LI9T8pg<%<&,;d5!m9*VpJRI=
|
||||
4FD9eIh-dp,.l=rr@RC.NsGJ4WbGcfP5"qhmgEp&)S".:0."-<P3Pt&Wrfhl)"DN]D.aX:+cZ[L
|
||||
$V6qD8BDdWdYRhUM2[c;%kY`*b5VJ*S)LQ/?OB#64)IdP(WIQM/*$AY/2]L>a^;rX[+F[#WnVb_
|
||||
:ptrZP'`+*)sO?^?\^[3VZ_R;9hX@[kh[JGp=1d;3+dZE>tb*jJ&,=g!8s5G+0en+mCjur,-o`V
|
||||
0A2u<g5B/!K'I]b:Aa!GMf)_di-5c7e8FE[^XTV0]/U8OK02`)cRtu8$oclM]/@m7V-E8W-N2-*
|
||||
0,O3)--p=;=oKKVQ1628:,Og'[<"qXN^o#%UWfrF*2l2a)[.._&ueV<N\8%RkbquI>](nuKVoo[
|
||||
c13p*9JWf*SN>Ca1?GO27W`V]PBMpZ8t2'FaXP4^8\u2;S#8T;-Th;_;+25u&:CbW0DlKAr_Dq@
|
||||
^\retGQ.ZA-]"hu>-I@\rX$RD!%3![hu:IK49#<1'?!oK/Q_atoS*;FPb-n7!;ePN%Y*eOj+7)7
|
||||
%"HA,Q%.I[`8CEpiD]WNpuhYW-3O8J"I/odZT[dgri'hhp:_`VJfC3&95C$o9eP;^jp3?ao`9<g
|
||||
)K[aWOir6#\p^FRqc[-t29!YAYe@\'`o>_#k&$3pgV4a.!9CqFi0'`+B>+EH!7`[u51dcb*j9YD
|
||||
rG,!VCuEc[Y4QR'a&KLUehkPZDb7I1_WEqYT[`U^;@BTc<Nqc[PqM_+qe>Ec+DEFq+d+8p:[VRU
|
||||
"c.XrXpA,g'oR@hN9^i5dXoD%)>m"u%W04"79/GiDA,TJnWM;tkDJ&qO)m6*gjZ0=4NVL$riBY>
|
||||
93&#o[]@q#XoAA5^YkY=r%.?pKt\l2,s"!PBCPcprXheq*lHrR9f0U)pj"]e5>B`,A#K5ee3olP
|
||||
n87g31UFU)dO_0`:W&52Gb;h(g5gs[qbIK54sQV0^AIZB5O`ZjL\qV?bmV@Z'E*Qjrr<K&A&=[0
|
||||
TAeZ<G]uaXTVL!.bn!:km:*<K[&XQOIKCcqQBi;J7;W4>,)E"R<uD4VaO36oC#9a)+5pRa3\Q5(
|
||||
r#`%c^VX/mM.H-(^n6FkqF/>Pn<$o,laiCMXUQn0rr<@M]&!a^c#8dB_^T#9cq_tYIiZb^&!FXN
|
||||
rlO";puc].Z`Q[n4+(-KX@[b_(Q\3\(]MYY!#p$^67WoFS#nbOpqbo+oc"oM;XhTWbGEne?X<Fm
|
||||
2hptgm3Als_g61FT-WIpfC6]BeOL4i=l0L5.C_;qj%:1IDi'KY`E6A7D349o<D',3@"5J%S3Me4
|
||||
P%5P*Ku#;dWFhPTZ@tb)nJJ:UoA"4tN6U\fS!j%k22&m0*#Y/QYS+l_Bhl)PXVs'9<UCN$<i(_E
|
||||
0fY[N[$>>uf])"LCYD^]Wo<2>V+*@mi[*LYZEO2Yn,EA!oRFeP^\)/Fq6AiV+m\*:M*LK&c\-`d
|
||||
e\!W6hgA](TC=%C(L8YGiTngISd=iC`D;6Bmu2,f]Tt`'e%RM`1=uF^ejAaVTn^ka`;]fGHoa+m
|
||||
a'1WM')ggpQfHEH/,fkHnTX[X[.&OXj.?qY'?-OUna5`CTAc>Z_HNf4hT9o<>![@R(8p-iDb\[Q
|
||||
.o2=2!o-oX!,C0+d&LDY>"s9N("`9iiP-F^$+s?a1<bN+F"/$0+O/]m#:%H.G_;5jlUh_2)MGF8
|
||||
oIs8ZUWT8k34cK^<NAV#$+r]AFJ\f)D3t$OP2Y]d1%_:N'cBIs`RBiK>)REaMG\Jj.ZLDdFi^#1
|
||||
APo9u3M3^/nIk<h=]\kgr\?R<0q\97rN\6DOm>O87(`I!<`T/"RiVM/iZ>f=DhS)o+7MrLnN1u.
|
||||
9KK5!3;D#WQJ)kWYDU*RBJtNk7/)h)[Z*rW,W:H(RW:Wtb3<>!ZV4E[jR:aMrX&,bDt_VbnV4g:
|
||||
NtQ[V_B'<Y*VG/Xi]VM)\qZsR96mJj4k(&-\e^."l?\HDX=ArtMm)LE7X9Z1f,$2.HFB>K$-"&V
|
||||
DCOQ%(AP4lpelJC_ql"#WPkAEk4tm"`8!_:_rJ!>%88<%k1!mkbpq;>:E$Jj;SbCoWaR,EV+K:<
|
||||
8i*GB>g!;ipafJWi39`QR,YW2L[sjU_U5'0_GZX[=bLP43-dR7UD_@@V'P3!UJ\GAPBK0*J)Vd3
|
||||
qQd=&f^Jh?&G=%j6iR.=Kfg+?K>E!ZphB73p&WThCZ+(dfrgaFG\:7Uq/*1sqN;5R0!*5uh>@8_
|
||||
L$pR8)ga_<9:SE%(0[Q2Sb8aJF_qPDni+H.pa-NfmhP-%-e%^kN#r]35!O^=kO@)ZDuLFF0>g!^
|
||||
^):T*2q-j#9io5YT>j*PIN\//]59FlDQNL]Y75k8nH\boUBJ/Ng]p`7I6K<oINEs\4s0P9EH/!l
|
||||
?gu@u#`bNq-0;Kt!7LdVqb2BSeo)VVl#:@JGK%lCrr?V5C%qTQRe#3,]^WXjn:iS)h]&h7-\f#Z
|
||||
]BCV,M0P6VY5/t(Ae,[P)hmm5&U93C):&J?_rb3>_RUo0;hV/JqX/d'f7kX\7\rXJSLXCsRkj-*
|
||||
:0b&$FQG`[b'5SX*6+_558f7!W+kXIXXjZ,'VOj<m-pBWE`FD&2(;";W@5a_nr$CCr8[QBrr<2V
|
||||
e35AHSgX;unV7!,AT*>Xg1mke$H'g6)J686rr<Vd?c1kTCW#^f_L;D&dB,9S#2&1/0!2!aILGXf
|
||||
rr@t[1_!)Mdej^9D\0(NGe]DcO@*l1F_tuFBrYClgs6*ASUe@W%7V22GiHKD>t3:=e/$L&'lGUW
|
||||
onA[hL-uh9QIG;V5I<"8iU3'%J&2+5pmpCT%GCNK;t,9ioe.$(iie?U4&'U+mCY)fWGD3ng*MI>
|
||||
et*WGX:[q2k>/S8r%?PY_4_;BT,]Q0?cG"1Wa'>.^8\5?_l$^ECANqXVfQdPBmP5bV*R9;ba26q
|
||||
VJ+[X]q1Rdl1%=q-(^U(>$G+]gT5SLO@'.J`kS8Ic_%!LMSD].Sh9Ik*Og^\r4<ia3.;U`E7n6-
|
||||
Y9i/m=NKZ*B9m)Wbc"<#c!q_N$pAueBpe%NN>f4*d@l)84>dCUR=C4UD[^1S0E$ZYbASq#=u`MA
|
||||
CXe\7,7umr&QNVhSE#=!Y2p"8H8oY>+JCj(j\g5ckOtPG'8uibn);%[K=lF.!2q9$X8#l%m[*nZ
|
||||
`W#ocGOXMh_;79R!7V\#<W"FMMtD`'!0j)7rrDpOrXOGD?fQ_'E6%m<\QA`o]M8D+Wr<_t^:tQ`
|
||||
0(CU5ce''5#uMLo2*Zk"CM<_JZ.Hlr0$hHHN#r@T'1Xh8Hl2VeY`1,NMOl`qA6S;m[?TN<U->7t
|
||||
Sulh\lYO%rAq-45iK_,)J'cU?2u`m;A:DULr;:?frZUKl*[^i?rrCu?4r^iXoF3#9>lBY0%q01!
|
||||
iY/5t]%hePQMmDX@uA:_n>4t/WB%CA>$:'Q>ADV;bDWEL4`q'4j<':$#J0Co]4E#;Be^WC`@aTF
|
||||
Rs,!p%J>^`T+8Cbfcl$l>?Tcs2a^EG==c#)TsW;lZ@^ZWg:aRP@It/lr!b:_HoUWd)9,s9cS;u&
|
||||
N-UEg"c:BC$q0C.VrJSLR$SVIN^!c%SSFCfAej>uPB3Qf#2N;(;@WQmMccLPO!!C9FfWjc9,3_2
|
||||
r[Np;c8;A%%7c1/Wc]i=k+bl/_OIH;\@HWO<;)p0pI_pe&cVh6fXgT"L%)u[p`nd8'B,jL]M7>;
|
||||
26RX;@/(u?SG5PC6L8qE=hHNUCDV^()>LPt,PZ<6_gWl\j1:EIo$Yh@<P.d,^Y-NL@skV2hr/j'
|
||||
g#:I<>Fd;&:PWJcfC);X4B&FZiQi?hRod;5eEqBqCdIb@](>S&I9OM>;hd;%ZZ"gU[5cUS,],T_
|
||||
q!@cqnH["i$G:B;YD?Kp]1XdhpfC?f7o#@LGqGlt3GksAqrhOQ)(3mU>s@9:9[rIXBNjRp]X`T)
|
||||
N6/b_DYua!!!Q<rA)\M=_8BUKa8@'(hBIj#9DF:D61De.hC%g\JGQq0?e[N.FP$B6a,-tkI5^rQ
|
||||
*C;mCh+_sc/D>3W/D?r/RB,'A!#b_nIY+.;A%Yph4AYIEKdlP`8]Qt5BDbDfA9^ch)]=cX:*02s
|
||||
dh=:I32rB;1;W.@W79++HPohe4Pq*G@%i7M9je]cdel/r,:'%GdE-Ib@`u"o>bd%hi\>Jl<Mt\i
|
||||
=.Q*^g0pZc@dpY1(;67uqZp)iWm/\\O5D#u4;Zu"T8&ppQW^ZE%[Z-M(3fr@^:rG>nMBruiEhH$
|
||||
m1[Fl'V6H!jI=)6V:N&Opk%6enG`KEmX1D^[!>Qu:;>.-/gn1!(!ZL7&,[3TidZo7=o2.]h[fB^
|
||||
oh@ZeIgj%3G^ePdp+reskk`9UM.F6Kr))J`1+&GlDC*!HET'RVf[_f)n7VHAWKtP<B)R/I:Q@UP
|
||||
r*N%0,PX(6rXejYDrJceYqKERnEuX9>@0gs2RP0)4:U5`,5t71(<XpL%7A&m\rMDWVo>T(Z>)FC
|
||||
hh^7)nB]f!i#fe=g,HoU)Xrg-W'2AL2oHdGoK1;:_&jL4hnms92Xp0iD7hl=W`eO-'eSkHCS(t"
|
||||
Ih"'<98gE#%Ss0NY=85;VWq?,\k"dVY-[-6&pT3-Vs&EcVG6],nWt]Nr*@FNCm,<Z_f6/^Rc*_+
|
||||
5E<PAgcpY>15lAF/oM.&3h?Ph3clf^Z,9Y<=4q#YKu`5Y=Blj;8pGYaO0.HtNtK?Y3DtT!M4om-
|
||||
.bJQ3)O,5=X[<akMfY1)e:akQ3FY.Q.Q&-9ee!O,W\U1oaXik[!.n3^RT>E^';Cj&:pm9c5E*d*
|
||||
*:2NZQgI?6-HBhDWhKYn_+f2^r"2$M:Q0ZQqc<"]!n&=DocFG:9_`Pc)c%8af"Z!e8CMJS3B`,%
|
||||
iI;YYE8/VO:g@`2U:5i`m7(@&*544m::=]*;iTDr=oJ_PEc9V[5A-,K-><<44?[WA^\CpWi>WYP
|
||||
^<[>0W7^G!_2[Ig?n<0qMR`2enrU!%:1oGDa)1;Vi*X=hfpBU*-1F.8gHUM.0C^.&rA)hknb:"X
|
||||
[d^*l2=V33%YJu)C,uU;)gJc]/&Jk._pNmN)L.g[Nu@7*'"&\76>[Xk/N&M$_Ytb+^KS^mP9(?J
|
||||
*XI0Hp`:<<9_XA@@I_CV/FS4q1iePtQ6)Y/kP1R%Q<hI3]"$NJ&Q<f3$J"Y!J$Z8:=PP5EL383n
|
||||
o))1dEU^5\)oO_+rrBsLEht<F)^+)<*l6u:Fl=c>&V*uO@^&[..TPV0p55D4WBq)bV`HW(itVGV
|
||||
i1G[E.)$RD.J/F6iNhulMEW>6:[llJ,M&d^\&+\G_tr8Kr)Igs^Ct7tR^?8\X5[jk2r\`a7k(r(
|
||||
ft7i<W,!;pRm6fqPM1@:MAod.[aXl<>pJ97M']mfXCZeb_HQ'IM*,13\i&gjpNj9/*3ih;,`bd3
|
||||
d.I3p<^i!)>Ak*X?bBJ+1?l9>FlP+pHmJJQ)Z3>"LPpO#nFeLNgVKW<8n%57V5)@W2"oNQ1fN>9
|
||||
)o11H^$LALe8Fpe]`S36:XH7\mk#cM9fGeQnD0t6q;L=opaVoR0+I5r1/AGUANYHfiRPTiINE7=
|
||||
n>s8GiP,e:EbVi8Iq7AB:MHq8pn$51]Y:tCnon2EQ5phee#g!@WEe^,eaN&>"8s>>C@SJ^cLID.
|
||||
iQcqk3IVn]kD%<ZQ;bs^\Q$W32;qT;1VD`U)E=1-WabK.VAgo'g6NdBeM+5FdJ_t[k$1j&3=KTL
|
||||
bqj_W'!/dBB8#uDCLUc\G3+XUKUkOGe0@^EX.u/.R['DVS,NaXIGu8_iD#r[rr<C>?OXRVidVkO
|
||||
kaLCc:QI_SO+_ulY(,C4dBAl-9R&Z_nLMX%%V4-,?h%HaW>46tQ`4-PLVk%D]u5*#h.\GOiMZT/
|
||||
\&@b3)F%j6!;oNOfan)_T8e+<`*\<A./9_#IhI,pnX]1!HqWIi6+%.oi?Jn!KjoqjcH=Gg9.dTE
|
||||
VH@'Vl+1`3ZRr;5V7!gF&HZS>D;ep`0,SE7.goLR:j"kc.J5*2frqd+4.AdDmHio!dRbgT9=ntY
|
||||
[f6?A;*OYd[eYj]!(>ZDGWg`V.!Q>XiS)u!8JdWMEI:j-q5#(''ieic7>et@emS!Qrn,%<9ft!9
|
||||
-3k^:,k0GYfZY[LJXpNinQ"kPr/\kQ=\"<)SARP17]d(F3c\2JXsO^7(G<S)PnTXP)R>9dlJein
|
||||
<N>([[7J/TJq?3UIpk!\IQ?mVm5Ns!'5Le?_->_V_SaAB4h$(D!,4[NfA[m.,WD;*f.<UR?5)f5
|
||||
`BP#\X&;oci]"Gs4%?eS)b$4por[RtXtCpu!'^hiqEJG=$>Q.?rNj3UkaKMdiGCpWXSsM\P-9Vl
|
||||
9nDXI;=J4SA;7uu["?<8;n)=*N[ZMRe[<,V4;,$4*L<:OqT9o<?GDUb:?#MC(jPYEE@)22LW3`.
|
||||
:BgYBWJ%I/_IG9!j\$-)5!.]a(IK3'@T>tM_c9X"UBn?*36DRcCAs(-PJPc,Cn@e:>$.:8D#XK"
|
||||
YD:%fEiSc4jZFhm'qlE\[7YG-PrBtYi8Z_jc-%4$'`Ff>+TDEN5@ra*VT6SddoOrt!+I%/IieUi
|
||||
@=)_d6QB9pc]"4aBD@8B+5*D]pl2:fE*5J:UGn7@rrC`W]Q%qa/]Gr*&%qG(SYKo1hhYW4O2RAl
|
||||
$@H=XLMQE(:C:l<g(p;l/33nl3i2W"mhYoO?A;U#[9j?qCY+kqZ"dH#T,mp%W%?YGj*N,LD#1`^
|
||||
HXd5]YOp0@!!NK'T9"gm-%=M(ZbDnUNGUVn%3rYQ[?&/+-VX"nKAi@/_`-F#M7bq157Q<2G#m=F
|
||||
^9ut8)#SIM47O!D?c:8->m^3!Ac8CPo2i]V:852ir2T"i(Xk[Kl&aV6J(g)k%5;M-D4Tb!^8H'@
|
||||
[kVSUZ/'.5Ar1)p>3[#;]uI$qW_FK0>cS((jP3qkh6im)I1.:7b:hlA*e-4RG8:&t4AOoD(cj/`
|
||||
?eNlslbsimA]FWuO2n8bh/#e(=PbIcG[Y?r?G(8[$rh3]B8<NWXY1p;mN8-`i[u20fhtT\RW+Ic
|
||||
L!=@6VhKdYfkqFo=.\@8b&`:Td!0@B)RS'=d&2VC\Df48,<&qh,FP:0C-#t'Ug6-DXf#N?GHh-Y
|
||||
Zdc)E/8jJWpIpn);8k9p""IFR@E?Ni2?'3+YrI,C*el<SLnfjEib;>pL;`&Ne$"PF:ob<l<N&rp
|
||||
.9!9>Ua2j5V)_-]Mc,IIVLD4-P)Q-aN2%7[8_luo8l:gVdDf$u;/5?mRVajWn@spp>Mu&A/R-(5
|
||||
-.b78W5E[hG*dM%Vg#%2f,B&:!,8a%DmIP)g^@if/4hnE)RDBD6a/eZ5Ht.fLqd\Sg1&+^mG4]-
|
||||
6`]ul>giOsi@c.>%i"dt_k&UPc\VKnWPRS`bsM/)P?@>cLMT(;D02'Jb>>RTd^>Pr<X[n.`mRL!
|
||||
H-bKpFabA$kDhYJ"l6A8r+4m&$eo%Dg>:^kpijY[^53$Tjbt#,[PrDLl*lu+gg&OeC3l/QXRdsc
|
||||
D[)n`$nd[ucE_mJj-PDJ4B(1nj"&4?r"#$3VD_RLbP8],\-IdKiYW">/Di)"j!`I$1Y`HiL,KmM
|
||||
((,:YFR/NrUK2Ie\4c,WM=_cNS]`A(E4DA-bU[)"\ur1L".A0>ajbC.;A!ld@4FU?2]@j=8TM6+
|
||||
'O2r/ae.,nT>?SH2ZEa_P3-,0*tMrQlKOVchsd+!QlEmIa0GF%IhbPV80[R5[A:B3ldA47"mD6[
|
||||
;&W#Fp'iRTUT`dgmDZ:.eK;+S56u21rr?d3:W5B_X5f6Wps\TD(@Ysl4<NPN%X=1/O2?3tQZJtK
|
||||
U\KV_G!7%R[2PjleeV=J<f(=^7q`$OIGEHKQPJb6.JT%b%6OOqDrD4_13el!qJX=nCVp`tOSH(C
|
||||
9r2NLk-^r&nUaOF8M"r?hJ<*AnI&K6[Pl^'=#q%a!Lh&*CR`M7Y,o#:,5aOm(QQ.HiqR@B]NaDL
|
||||
'mQJ0_WL:W_@I6'LKE'cZFeU/YdV<X[#7hp\P$_-gMJT;\%A4H8T%qbX<O((4$.SGr7LiYI2KJG
|
||||
>]&IJ'QG0E_X,I"3'5/V'6m$'3,9,bD[khgh#@?fQ=TL.@p^P-o,8J$B+*f8nX5[b'h^"!-\oOg
|
||||
UIqs5Xqh>`1&Yb'DD&fP0$:DC8pSZ$AmrTF/isN#rnYSo=DARdb+k_i_UG#(jqtYVV,Ek#?6r?E
|
||||
Pj)/&/>7)+'DTVeIPoWPei[=!4`A9MSG*hD;I4-bQ/88iT)R]OY8SX./:n&8\9=0/i"<r<N$&*$
|
||||
c-\t0Z1pEs%kb`H_.EC82?sJBLU4nW0Q\aPE3pd4/kS*L&;;T1k&'\+&Q`i'm@T'WF/^T`Unp)n
|
||||
[jfTt;NlI<8[dB%>A](?Qbi\%(KpMT`\@1K:ss0`Chts,9\jH(BfC?uVkU<<PkGlPVb^f6HS)$S
|
||||
`iF<]BKC^V=L<W#UBU@b1iK8F1ARcSXjugW<gHe<(RJ(1NXK&nA@T.@6hb)F#Z]uOgTi"Z*l-At
|
||||
W+jtGO/5RJCDq)gVs4h!_)(>em?XM[5+MB)BaoE`RpAMD8@X:LZd\R1FdLWqXYkH0fPU87ZB"6C
|
||||
eNV7JI!pb.Xs;+;^cD*LPr\AO38rh_d)FJ/S(>GQ`F5cJ`o(N%\N"!_rE7[h</\ZAF,rG''dZKX
|
||||
M5]>\AlsGu#E!MGCADIM7h\P]&]<,#L9H<1LTaICPBE@c3mr`Gd]/Pp#hDtRc?6,cOFP)2ogh2d
|
||||
qaYnkj/7nogCF[:Hf8VSIh;C-;V/#*=Emob(Gi]bHu7k[G31<"/m\B(F5qW9\*C/229Zsj`U4nU
|
||||
dJhI1r2fnu_ioT.Ttg4hD>sV*](gXP!6o))B&BiEm+M)nJUSU6H`t>.-]#NUhh_7;peuIsL%,cE
|
||||
VRpj;)X:%+Iu6:RKWa-@]!q3YNVbf8a"N>h/to2NgI\=-SfbLtgO5m7J*hQsa]u_?b4pn7rr<sY
|
||||
%M,U7n371f3&e[F'qOXLB[qlmGud,<&lccuQ6Q"$Xt\k\+JSCjjZ494kfXn_9"f%7V>Kro.Y^7*
|
||||
>SiV&?8u-Z_;fU*QrlL*pjCA3>Wu4Yf9E#)P\$4"-rb)c'\$kUd_FrE!;mOhiF\pbr&jJ(m4$uj
|
||||
$1Ie-q_)=BIN\.jT4tk(r(m2NGf_dX:YHW&0LYXDO)s:9+2aZaq":Cbl'bYLikH6'Vr1@+IN/'1
|
||||
XWm;lXOI1L,JUVKJSdV`O,c`iDhR6'0"qL:BXNW8)A]7/S(fMr9Tr;E89Og#0&>A4oNagZ\Xlsl
|
||||
1j`nS(cR(08MlkgUFkl&M#RJ%$GW)!g?\H%n;"ktIfBE+5EGG\eGfMZ^Q)L:`S^%Vi[\db5=gG#
|
||||
Ie\ZF_iNLCC<5ibOX&[eC0i@fRe<K*f1XUU0`ETt'<UNMl/80=-cOu+i]PXq(NF9(<M!'TBD`(+
|
||||
nFudCj*qL!'2(1&E+C]Qo*h+IZ:mCB*&W0ji#L-;1;_3GV!I-K`8IOp%>8t`o_W9b?o[>)1#*5+
|
||||
b(M9S.Sgesp$l;1%ifFiDO)q+`)VJc<gFOZU8%lAD>Pkh.9GT0;D<d=R\,Z4pg;#Z5D4J6G]MtS
|
||||
]GgDskt]^lmgbOmD/P],OBQ"Jj]d]L?M!6iJM]g)P1o:S2-\.uK\@;d+.'%cIqTqWho;:p=2\P+
|
||||
T,Qt&g9lR?f7"D'6<i85U3OjH9:-W-D_s8jG@PTgD/K2>U.9[!qGk^*a`Tb;`f[=ZGuRi<qY7`^
|
||||
[WcMe%G+Y7IZL:0lFN"XHZ<m9h8^P%Pnf%AVJ)9^<gPSq6)WtnIqEh=>s2TGm@\7.48i[Y@hllV
|
||||
+,*r[NoA8<V8jW!ic)EOk9K"\1hao7%%Aul<Q%_/>*UT1nM0m"C:K]mPtJE^:G'LO[2a?+!jL=g
|
||||
GVA6M2[e3qapWtZ'epPQIS'3k,d<]LThcN(dB/8/:),KicAiBa<kulh7YOnnCE$$0[%a(j@GtR[
|
||||
W?R4&Rq+6F/)r]87Zjs;1UR6CaTFNB80,Zn*\I/8YBXsb!)[N;-cF_oL+PeHBB$$\_O@rhD6K[s
|
||||
da$ueP>0QC^XJ1;hSj7dh5I]Dl">UrmcJ:HkcI!\i31.+/&8_^nD:bQLY6Q&)5hiVX>HZ6g0?f-
|
||||
he&1&,0N[1=t<`gKL7qu+,VoX'"eTl%C0-QAaee',Lj\OPqFKSf-XfK_QG=rl;5YYo^J'[do:']
|
||||
WF$BoX\)`TlVa1F:$%UY?XB)M.FjY3:f==+S5i729Y]mR()I.D@d5Eu_;R*dXUM(e1,W65jNOkc
|
||||
l<l#8P*0r4NN7c2#,_g9WD4(`l9%B08Gm5Q5A+70p2-/5qMpQo%4SC<]YCc"FmBA,r<=9MCYDL;
|
||||
Ve4:.R3X"aHV<>!_\,VA>et1pb9YPA[GT(B(AAT.8SrSQf%1J<8RT&biL2,7<_0#dFCF!.5ou<c
|
||||
DR8kG^m_[4_SbEKNI3='5+u[?c_C2<ep/gRfHBbQD/A1_qubpd5ke2\8UCeN2PGP;IB2+urZo)'
|
||||
/K[ZlnfNei!#Y@c([1Jc=&+%KQn7n9(=QU'ZF9c59='@4XsL`fP3U'-;:F]spq=G+*hQq(fg6V>
|
||||
l:C@kYYW6N,gZ7t,L3VhY:]5ZY7,!T>K&Si/)kro#t$SkeQhi3XbU':&7[2&nYq;`ihZu]k<(%A
|
||||
:)2'?*]3AkK2A<7YF+jG2Ps:KYEe$0X%Nm1^3/PV=`-#-P@1WBp695X!J$r(qUHB`&NEThCg5tb
|
||||
/%X-)9A*=Eo2QOUpi!ut,k3bBL\?1PY2!_M(Y8;hqVIj=hs.Y]?*or!p=D7O6Y.4lhMX;&M<;4p
|
||||
dc0L9068sh=Bf+gg=b"u9fp7:\$05WXBr]RKuK=a3j+=@GW/[:dc&\gq`_Wg8#\jtQBGM,=MgD*
|
||||
qSeH8ZqY+A[C+L2Ks_:!kkE+;0.d,'&]2%_f+3r%>V-fEYEE:hX5dnmEeIYsmi42&;cP&?Zn#T7
|
||||
cAa0N<D\@CjkE69XbiVai\:">d_eQm=uE=Y\l`[g7\*-"MOeAE\O"]B$?N=I'e.[e2bJ(Zo`"pE
|
||||
k>0I"nJ87e0+cq(qL+]^Cf:*m:'b#D#2\ZDK2AjE24[bs7Dq-K^pc6@7Z@SaZ>7QnW^j^uP?D8h
|
||||
hh<o1hqK[A=+S(+GX;7@^($]3)Y]/de8=T[PjnF$lrq]\>1P7sk\YGZFLSa-eD'2R3qCH?c\jn\
|
||||
\l>q<g0NE#h^E_^_EK=AVrN1E_]B0S^\69<Hqe^oG*/N_G*,&=grg%!Il(V;A$XN>o!WT))U61E
|
||||
VtbU-Za[KYP\F;JS->PWOo$a0adS!>DnJ+--2\%9ks$.MH/N?uC&:AKd(3MBO,@fR"S`ksQUkI!
|
||||
8@m'ZXdhHHN-mu7M***]/pK%f)E`1L1"L_"j8T+8)R"q/=lKA\K>/3RO75Zfdu?%F'_->c4NR'#
|
||||
poEW[i\jXbPJU'"K>L,3nG\,(V<.N.Lg3ML2="^$A@t-`rm]/tlpJWgViK&-n<e#TFb7VCZMsp1
|
||||
i%GNpmNUXor*u3r`;]gGnFdcd',ce2h(0i@nANq]ZHTW`TTs?F20J0#X\/9AYaAUO.M82Tm]Yk6
|
||||
r"FkE28>#t-2<P][ZZa+HkQ3)i@RRn@JucS]g#GBbpQ`c5*)i!l/*SqE;#LLhcnrAGRIC<5D4Ie
|
||||
Hp?6Mot+QCkaj!fkNt:&CO1-KO5^TV;S2msXtSbS_nQBQ,k)V'4rF2Ycu$EMi,8YkIn]@HKle8:
|
||||
Y:ekaFDW5Q4%hPE^XTE)F\PX$UQ<^8e[92Ym9`o.P2fHjDm+:&X.-)89)`tk?4t-E576KL1PN#:
|
||||
)_A`7.:]\89UtWu[VLf%4C2fm@k(3qV+ap"Qrh48lHZ3j9ff9aE`#O/:H$F3B%_nd+&W]ImA?-u
|
||||
'[fsbfQqOs/2eE2;G&dMoH?th32D^r(7KqsIh@,MGTYr&Jc&73gYu"`FMA[f)oapDqDX6n2lsf-
|
||||
Ygfa%.c:r!*Q>/:Xi,0cBtBRgp=bgrWEWP@H=bp0TkS@b(MQ<dA>:#3;3Y%T,i^;p-Q,@R36=7Z
|
||||
RVan3RaI^QD)B^UVOD5PVR9,UWbLhGk0s%GrK,Le=+Ku$"b+kn)Mc7,fhU?SY.Q"V:gW#2g\B7U
|
||||
rhFP9h.\o>O7B[;ijb1?^!Lluh&\-mp5"aSj1ntTZ]i=2B?$JuiVoNhV;?T*qucnl5@P.^J$[Fq
|
||||
F5lWl^8'_,L>q2sr@>kd(5h,G<7,fT-A(g>594H=p1Dl;EiQ*aE$<a/,HP(ebGbkoYGBR0r=Eiu
|
||||
mI'B)[CUr/Rp27k\%/rWM'f^A\!\-pTUm#9UQud-Ar]uh<_3mk*D2J*jp/h3pa1KFoS`LW7Je<S
|
||||
o`!,_.3NEpJog^10,ac5>2>u-W(h8ITmSbYrr>=94pl%KB(/6#J+-gaSe^`PNRFA=`8:m8+CBkX
|
||||
DhI!2i_P*Wr8/=K[="H*i#X&DN5b="J@oSoXEZBWYE,Lu=cP"co-i)+<8e83+%@<sV$UT#=UloZ
|
||||
KJBu=i:-Mh4YLk3Q:&YOC05@+Vd>BrL8>e*/h,!.;lbq4(u8-.k1EhHe'0S.k*'iJN[cbY0U/J9
|
||||
XQTLTlQ<JtM62"s]FEl8KmKYSoK>iA[^4P&mJKUkrLk7M(G\X#F/DO/hV)>5p6#&S.oXjgq/qDC
|
||||
XgRqXlrPlHl.4S%kC@7"IK';'V0KB'4ftlGQ9-q(h*XkrnIk]CV(3"nQS;V.L=8u.^=20Bc$?I@
|
||||
cC/XMH"EmDWf((Wl7_jrrJ+pp\(%R1B`A(bZc@B@Z#d#AB#sm_rK)+q?hT,WnL'1k;epHRhT;VH
|
||||
Hm\?5rLe9R5<t-%\^LCait%+kZTj.+)5ghH>MJB<m\OoOU?WO:R/[0U_LJlSNP6n;_r5ON^Y<D;
|
||||
Y^$0J^sd&gGdH>jYl5%#:W>$hc/EM7a2:(iO2cVbe,3q<Y7bMiG^m^(SI\k/=2B2EBNi[2[tcgu
|
||||
O'&lQh#>RWT@2W4h[aGa(&4,N]NP(kk.'Zn&Y.sQ9u:&bM1-LI`*egT+d?X;+dV9#luj#1a4-po
|
||||
<@XCM]GrX869&Z.p_`cXMnqn"7tYHlq=YIU`CCfhJ^6%f$sLYG0r8(enpLH;1K\J%Xs/lI&]EY4
|
||||
$5e)G@AO<OqRe%Go)`8)Gd7_)VTn(\&4`\*`=c:eNMru6a`+?Tka(Acc$#Wih>jKJaK3eW:eas@
|
||||
F<+T'VDZrkV6QHVX<9DJ><-h&QR5;,jF&^fXj*VD=BjQRSQKTlF(u.qUp]m/e_t1+9o&WZHfIQ-
|
||||
=#O*O&Uk5gL/jPp/'m3WSa@J,1IP)f,<+;=iRMJL[Xr[[8'8p%%'rIa?hc"h_4Q?$*RO^Mn`TW#
|
||||
peC78_Z&Q<5VdSqe&+?bd3eBWRUsIkn@+0qmhYgpcj$n)&o%+/VclNag?Q80T;PIGB\$`@L>2Dq
|
||||
?dn3%jSb)[[uS*S&$8fQE:MkX%.OR\Zg;1$iDT;eFEh"D_rT@FrM3o-p^Gl/:,,aK7,2a:KNrbj
|
||||
S)M"JC!r",b;%#u)0H>C,sQ6J1kk2ZSP""bl>fIpe;TW(r\jOsnb^5\#4T3KB0uAfXQZj0c`([U
|
||||
Xl"pk9A?Mn&mo@Z*CEi:\r,M<j&>NV.t&p=Ynq@Fp-/mgg0<2sAHmdbG^e\&i:lTqn\b'qf<2"?
|
||||
L64<=$s*X+Y8);RpA37T3Yf<1D5+DGe0g.Eo2W;S/CrZkFK97_=Lsq+e9.XSmX*2J?e`>GhlpJ*
|
||||
br\a_rY1F[QgqiaL"<?n4>3d%nK6c2LFp.LnE/UsnYV=(?Ocds5k1Jd=?[II2#*9n><P104[SU9
|
||||
p`JJp!/j#gd-e'=)Y[#gQ+`D_^THB(^YkZT&q">7UMCsYho4>U#K+!N"SY-ep[$X]Y%YNfT'"3n
|
||||
[?_7``a?)"Z)@A0ieNRO)/]$0k;GL)n42j6)1tu>4>5\BHtB*XIBulOBO=<3`Yk(dM>B+)-_BGq
|
||||
`d[6rYDo,<iZ;<"!jT/!,8l?Z\-iT]g!44=HtQ?k',+9H;+@E-fY#N<Lr",YI]ci47gik;S5s@B
|
||||
=hY5fb^M%=0/1On?PSr@(sKjn=ZV\CMU+(PAg7bOiTSNU$O;6B8ee6MkX%/1-2CL:*WF'bBH#3Q
|
||||
^)I!m<jqu_pm6)cBR^f4CEJ?r*1pF047I4R\,'>jVh0;U$Wtd5`EkWWSo54[n-?dY.Yks+?/"MO
|
||||
58q6Yr&X?7rrBs-DWgjprLUc:YD9m!:W(]O%tISZe7[9R>E9MDqo@PF]!U":,5bU=KrEX<\o,"I
|
||||
+6$&1AZ+cnR`C;.9+;h1dHp7BXXcg/O+P"dT_MUIYJY8dpab<QJp\<kY7CDIK=i)[rr@h'(XW'j
|
||||
nG`L*Sf7)WK)@@$_5)<k_B'36[(d%E?c1StYUaRfBRV&ND/?SM-Vq3L6l&f=QM/]-6uaV4dauT[
|
||||
f*9dJo5*TK31l!_:-A%kMEQmWSj)-U@e4E]1a>a4I(oc=Tbu`D4GO.K<,#`\9XYZ)R!M^cn<^QZ
|
||||
]a%?uZQ.M)W+!!u%MFe!Ol/6c?^'F'Sf\KegRW*0-2Ynm196Y9>8LSfUua&5bKhIYMC>[;4Fj/`
|
||||
-ig!!-ig!!-j0AJlhuopi7q]86?hc*rr?Ti`r?&8\c*mP70%ekd7"`L;+20!;+20"s4IAP~>
|
||||
endstream
|
||||
endobj
|
||||
13 0 obj
|
||||
21809
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/Type /Page
|
||||
/MediaBox [0 0 763 595]
|
||||
/Parent 3 0 R
|
||||
/Resources <</ProcSet [ /PDF /Text /ImageC ] /Font << /F0 7 0 R /F1 8 0 R /F2 9 0 R >> /XObject << /im1 12 0 R >> >>
|
||||
/Contents 5 0 R
|
||||
/CropBox [0 0 763 595]
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/Type /Catalog
|
||||
/Pages 3 0 R
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/Type /Pages
|
||||
/Kids [
|
||||
4 0 R ]
|
||||
/Count 1
|
||||
>>
|
||||
endobj
|
||||
xref
|
||||
0 14
|
||||
0000000000 65535 f
|
||||
0000000009 00000 n
|
||||
0000027218 00000 n
|
||||
0000027267 00000 n
|
||||
0000026991 00000 n
|
||||
0000000199 00000 n
|
||||
0000003224 00000 n
|
||||
0000003244 00000 n
|
||||
0000003377 00000 n
|
||||
0000003495 00000 n
|
||||
0000003715 00000 n
|
||||
0000004721 00000 n
|
||||
0000004960 00000 n
|
||||
0000026969 00000 n
|
||||
trailer
|
||||
<<
|
||||
/Size 14
|
||||
/Root 2 0 R
|
||||
/Info 1 0 R
|
||||
>>
|
||||
startxref
|
||||
27327
|
||||
%%EOF
|
||||
Reference in New Issue
Block a user